| <?xml version="1.0"?> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <project name="msvss-test" basedir="../../../" |
| default="test-all" xmlns:vss="antlib:org.apache.ant.vss"> |
| |
| <property name="file" value="build.xml"/> |
| <property name="vss-project" value="antlib"/> |
| <property name="testcase-dir" value="${basedir}/src/etc/testcases"/> |
| <property name="testing-dir" value="${basedir}/testing"/> |
| <property environment="env" /> |
| |
| <presetdef name="sscreate"> |
| <vss:create |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| login="Guest," |
| /> |
| </presetdef> |
| |
| <presetdef name="sscp"> |
| <vss:cp |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| login="Guest," |
| /> |
| </presetdef> |
| |
| <presetdef name="ssadd"> |
| <vss:add |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| login="Guest," |
| /> |
| </presetdef> |
| |
| <macrodef name="create-tempfile"> |
| <attribute name="property" /> |
| <attribute name="directory" default="${testing-dir}" /> |
| <attribute name="message" default="Testing VSS"/> |
| <sequential> |
| <mkdir dir="@{directory}" /> |
| <tempfile property="@{property}" destdir="@{directory}" |
| suffix=".java" /> |
| <echo file="${@{property}}" message="// @{message}" /> |
| </sequential> |
| </macrodef> |
| |
| <target name="setup" depends="find-ss-server-dir, find-ss-dir"> |
| <fail unless="vss-ss-dir">Could not find ss.exe. |
| Add to Path environment variable |
| or add vss-ss-dir=[path to ss.exe] to build.properties |
| or add -Dvss-ss-dir=[path to ss.exe] to command line.</fail> |
| <fail unless="vss-server-dir">Could not find SourceSafe Database. |
| Add SSDIR to environment |
| or add vss-server-dir=[path to database] to build.properties |
| or add -Dvss-server-dir=[path to database] to command line.</fail> |
| <sscreate |
| vsspath="$/${vss-project}" |
| /> |
| <sscp |
| vsspath="$/${vss-project}" |
| /> |
| </target> |
| |
| <target name="find-ss-server-dir" unless="vss-server-dir"> |
| <available property="vss-server-dir" file="srcsafe.ini" |
| filepath="${env.SSDIR}" value="${env.SSDIR}" /> |
| <available property="vss-server-dir" file="srcsafe.ini" |
| filepath="${env.Ssdir}" value="${env.Ssdir}" /> |
| <available property="vss-server-dir" file="srcsafe.ini" |
| filepath="${env.ssdir}" value="${env.ssdir}" /> |
| </target> |
| |
| <target name="find-ss-dir" depends="find-ss-exe" if="vss-ss-exe" |
| unless="vss-ss-dir"> |
| <dirname property="vss-ss-dir" file="${vss-ss-exe}" /> |
| </target> |
| |
| <target name="find-ss-exe" unless="vss-ss-exe"> |
| <available property="vss-ss-exe" file="ss.exe" filepath="${env.Path}" |
| value="ss.exe" /> |
| <available property="vss-ss-exe" |
| file="C:\Program Files\Microsoft Visual Sourcesafe\ss.exe" |
| value="C:\Program Files\Microsoft Visual Sourcesafe\ss.exe" /> |
| <available property="vss-ss-exe" |
| file="C:\Program Files (x86)\Microsoft Visual Sourcesafe\ss.exe" |
| value="C:\Program Files (x86)\Microsoft Visual Sourcesafe\ss.exe"/> |
| </target> |
| |
| |
| <target name="test-all" depends="setup, test-delete-recover, test-add, |
| test-move, test-cloak, test-locate, test-status, test-checkout, test-checkin" |
| description="Test all VSS tasks other than destroy (use cleanup for that)" |
| /> |
| |
| <target name="test-add" depends="setup"> |
| <create-tempfile property="vss-temp-file" message="Testing Add for VSS" /> |
| <ssadd |
| vsspath="$/${vss-project}" |
| localpath="${vss-temp-file}" |
| comment="Testing Add for VSS" |
| /> |
| </target> |
| |
| <target name="test-move" depends="setup"> |
| <!-- create sub projects --> |
| <sscreate |
| vsspath="$/${vss-project}/sub1" |
| /> |
| |
| <sscreate |
| vsspath="$/${vss-project}/sub2" |
| /> |
| |
| <!-- perform move operation --> |
| <vss:move |
| vsspath="$/${vss-project}/sub2" |
| destination="$/${vss-project}/sub1" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| </target> |
| |
| <target name="test-cloak" depends="setup"> |
| <vss:cloak |
| vsspath="$/${vss-project}" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| <vss:decloak |
| vsspath="$/${vss-project}" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| </target> |
| |
| <target name="test-delete-recover" depends="setup"> |
| <vss:delete |
| vsspath="$/${vss-project}" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| <vss:recover |
| vsspath="$/${vss-project}" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| <!-- should be able to change to project as it has been 'recovered' --> |
| <sscp |
| vsspath="$/${vss-project}" |
| /> |
| </target> |
| |
| <target name="test-locate" depends="setup"> |
| <vss:locate |
| vsspath="$/${vss-project}" |
| login="Guest," |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| </target> |
| |
| <target name="test-status" depends="setup"> |
| <vss:status |
| vsspath="$/${vss-project}" |
| login="Guest," |
| user="Guest" |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| </target> |
| |
| <target name="test-checkout" depends="setup, test-add"> |
| <vss:checkout |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| vsspath="$/${vss-project}" |
| localpath="${testing-dir}" |
| login="Guest," |
| /> |
| </target> |
| |
| <target name="test-checkin" depends="setup, test-checkout"> |
| <echo file="${vss-temp-file}" message="Testing Checkin with VSS" /> |
| <vss:checkin |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| vsspath="$/${vss-project}" |
| localpath="${testing-dir}" |
| login="Guest," |
| comment="Testing Checkin with VSS" |
| /> |
| </target> |
| |
| <target name="cleanup" depends="find-ss-server-dir, find-ss-dir"> |
| <vss:destroy |
| vsspath="$/${vss-project}" |
| login="Guest," |
| autoresponse="Y" |
| ssdir="${vss-ss-dir}" |
| serverPath="${vss-server-dir}" |
| /> |
| <delete dir="${testing-dir}" /> |
| </target> |
| </project> |