Skip to content
Snippets Groups Projects
Commit b676cc54 authored by david_williams's avatar david_williams
Browse files

303564 - Run performance tests against the WTP

parent a41bf308
No related branches found
No related tags found
No related merge requests found
<project
name="Build specific targets and properties"
default="runTest">
<!--
Note to be cross-platform, "environment variables" are only
appropriate for some variables, e.g. ones we set, since
properties are case sensitive, even if the environment variables
on your operating system are not, e.g. it will be ${env.Path}
not ${env.PATH} on Windows
-->
<!-- Note to be cross-platform, "environment variables" are only appropriate
for some variables, e.g. ones we set, since properties are case sensitive,
even if the environment variables on your operating system are not, e.g.
it will be ${env.Path} not ${env.PATH} on Windows -->
<property environment="env"/>
<fail
message="testRoot must be set for this task"
unless="testRoot"/>
<!-- required to get proper value of dropinsFolder -->
<!-- required to get proper value of dropinsFolder -->
<property
name="keyCfgFile"
value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg"/>
......@@ -20,18 +17,13 @@
level="info"
message="keyCfgFile: ${keyCfgFile}"/>
<property file="${keyCfgFile}"/>
<!--
typcially already set, but in case of standalone tests, may not
be
-->
<!-- typcially already set, but in case of standalone tests, may not be -->
<property
name="buildLabel"
value="${buildType}-${buildId}-${timestamp}"/>
<!--
Steps to do after the build is done.
-->
<!-- Steps to do after the build is done. -->
<target name="test">
<dirname
file="${ant.file}"
......@@ -42,9 +34,7 @@
dir="${currentDirectory}"/>
</target>
<!--
Steps to do to test the build results
-->
<!-- Steps to do to test the build results -->
<target name="runTest">
<dirname
file="${ant.file}"
......@@ -57,9 +47,8 @@
unless="testRoot"/>
<mkdir dir="${testRoot}"/>
<!-- if results already exist, delete them -->
<!-- if results already exist, delete them -->
<delete
quiet="true"
dir="${testRoot}/results"
failOnError="false"/>
<mkdir dir="${testRoot}/results"/>
......@@ -80,77 +69,161 @@
<fail
message="dependency file not found: ${dependency.properties}"
unless="dependency.properties.exists"/>
<property
name="test.dependency"
value="${wtp.builder.home}/scripts/dependency/dependency.xml"/>
<available
file="${test.dependency}"
property="test.dependency.exists"/>
<fail
message="test dependency file not found: ${test.dependency}"
unless="test.dependency.exists"/>
<echo message="test.dependency file: ${test.dependency}"/>
<ant
antfile="${test.component.dir}/testdependency.xml"
antfile="${test.dependency}"
target="get">
<property
name="base.install.dir"
value="${testRoot}"/>
<property
name="tobeinstalled.properties"
value="${wtp.builder.home}/distribution/${build.distribution}.tests/tobeInstalled.properties"/>
<property
name="installWorkingDirectory"
value="${testRoot}"/>
</ant>
<antcall target="unzipTests"/>
<antcall target="runTestEclipse">
<param
name="testTarget"
value="all"/>
</antcall>
<antcall target="postRunTestEclipse">
<param
name="testTarget"
value="all"/>
<echo message="Done setting up WTP"/>
<!--We use the eclipse performance framework to run and install tests.
This is no longer needed but it should stay just in case it is needed later.
<antcall target="installTests"/> <antcall target="runTestEclipse"> <param
name="testTarget" value="all"/> </antcall> <antcall target="postRunTestEclipse">
<param name="testTarget" value="all"/> </antcall> -->
</target>
<target name="installTests">
<!-- hard code for now <antcall target="installTestsFromZips"> <param name="compName"
value="patches32x"/> </antcall> -->
<antcall target="installTestsFromRepo">
</antcall>
</target>
<target name="unzipTests">
<!--
unzip the builds and junit tests we use 'unzip' here, so we
can continue on error, if desired. (such as if zip was not
created, due to other failures or options).
-->
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
failonerror="true">
<arg line="-o -qq wtp-sdk-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
<target
name="installTestsFromZips"
depends="init">
<!-- a bit hard coded here, will need work for general case -->
<property
name="zipFile"
value="${compName}-${buildLabel}.zip"/>
<!-- We use the exec method for unzip, so we won't fail if a prereq can
not be unzipped for some reason. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=283968 -->
<mkdir dir="${install.destination}"/>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
failonerror="false">
<arg line="-o -qq wtp-wst-Automated-Tests-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
dir="."
executable="unzip">
<arg line="-o -qq ${buildDirectory}/${buildLabel}/${zipFile} -d ${install.destination}/${compName}"/>
</exec>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
</target>
<target name="installTestsFromRepo">
<java
taskname="p2Director Install"
fork="true"
resultProperty="p2DirectorInstallResult"
failonerror="false"
timeout="${testTimeLimit}"
dir="${testRoot}"
jvm="${env.JAVA_6_HOME}/bin/java"
classname="org.eclipse.equinox.launcher.Main">
<classpath>
<fileset dir="${testRoot}/eclipse/plugins">
<include name="org.eclipse.equinox.launcher_*.jar"/>
</fileset>
</classpath>
<jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
<jvmarg value="-Dwtp.builder.home=${wtp.builder.home}"/>
<jvmarg value="-Dbuild.distribution=${build.distribution}"/>
<arg value="-nosplash"/>
<arg value="-debug"/>
<arg value="-consolelog"/>
<arg value="-data"/>
<arg value="${testRoot}/p2DirectorInstall"/>
<arg value="-application"/>
<arg value="org.eclipse.equinox.p2.director"/>
<arg value="-destination"/>
<arg value="${testRoot}/eclipse"/>
<arg value="-repository"/>
<arg value="file://${buildDirectory}/${buildLabel}/repository/,file://${buildDirectory}/${buildLabel}/repositoryunittests/"/>
<arg value="-installIU"/>
<arg value="${wtpFeatureIUs},${testFeatureIUs}"/>
<!-- make sure our forked env has a DISPLAY -->
<env
key="DISPLAY"
value="${env.DISPLAY}"/>
<redirector
output="${testRoot}/results/fullOutput.txt"
error="${testRoot}/results/fullErrorLog.txt"/>
</java>
<!-- If the task succeeds, this ouput log won't be that relevent ... (can
be make better in future ... but for now we'll make a copy, just in case
we need it -->
<echo message="p2DirectorInstallResult: ${p2DirectorInstallResult}"/>
<condition property="p2DirectorInstallFailed">
<not>
<equals
arg1="0"
arg2="${p2DirectorInstallResult}"/>
</not>
</condition>
<!-- always copy to test results, even when successful -->
<copy
file="${testRoot}/results/fullOutput.txt"
tofile="${buildDirectory}/${buildLabel}/testResults/p2DirectorInstall.log.txt"
overwrite="false"
failonerror="false">
<arg line="-o -qq wtp-jst-Automated-Tests-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
</copy>
<antcall target="handleFailedInstall"/>
</target>
<target
name="handleFailedInstall"
if="p2DirectorInstallFailed">
<!-- copy to direct location, as a signal (to web pages) it failed and
link should be provided -->
<copy
file="${testRoot}/results/fullOutput.txt"
tofile="${buildDirectory}/${buildLabel}/p2DirectorInstall.log.txt"
overwrite="false"
failonerror="false">
<arg line="-o -qq wtp-jpt-sdk-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
failonerror="true">
<arg line="-o -qq wtp-jpt-Automated-Tests-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
</copy>
<fail
message="installation of tests failed. See p2DirectorInstall.log.txt."
if="p2DirectorInstallResult"/>
</target>
<!--
time out may need to be set/adjust for api or performance tests?
This testTimeLimit is the whole, overall limit on tests. There's
a shorter one for individual suites. some common values, of
milliseconds to more recognizable units:
18000000: 5 hours
14400000: 4 hours
7200000: 2 hours
3600000: 1 hour
1800000: 30 minutes
600000: 10 minutes
-->
<!-- time out may need to be set/adjust for api or performance tests? This
testTimeLimit is the whole, overall limit on tests. There's a shorter one
for individual suites. some common values, of milliseconds to more recognizable
units: 18000000: 5 hours 14400000: 4 hours 7200000: 2 hours 3600000: 1 hour
1800000: 30 minutes 600000: 10 minutes -->
<property
name="testTimeLimit"
value="36000000"/>
value="28800000"/>
<property
name="testFailOnError"
value="false"/>
......@@ -160,18 +233,14 @@
<property
name="test-vm"
value="${env.JAVA_6_HOME}/bin/java"/>
<!--
set path to eclipse folder. If local folder, use '.';
otherwise, use c:\path\to\eclipse or /path/to/eclipse/
-->
<!-- set path to eclipse folder. If local folder, use '.'; otherwise, use
c:\path\to\eclipse or /path/to/eclipse/ -->
<property
name="eclipse.home"
value="${testRoot}"/>
<echo message="testTarget: ${testTarget}"/>
<!--
can not pass in empty values in jvmargs so if not testBundle
specified, we'll pass a junk (unused) value
-->
<!-- can not pass in empty values in jvmargs so if not testBundle specified,
we'll pass a junk (unused) value -->
<condition
property="testBundleParam"
value="-DtestBundle=${testBundle}"
......@@ -179,28 +248,19 @@
<isset property="testBundle"/>
</condition>
<echo message="Running junits"/>
<!--
If there is not exactly one launcher in the stack, we'd best
fail fast, since we are not expecting that, and may indicate
an installation that would produce unpredictable results
-->
<!--
requires ant 1.7, and at this point, we're running 1.6 from
eclipse ... <condition property="expectedNumberOfLaunchers">
<resourcecount when="equal" count="1" > <fileset
dir="${testRoot}/eclipse/plugins"> <include
name="org.eclipse.equinox.launcher_*.jar" /> </fileset>
</resourcecount> </condition> <fail message="Did not find
expected number of launcher jars. Check installation."
unless="expectedNumberOfLaunchers" />
-->
<condition
property="antQuietValue"
value="-quiet"
else="">
<istrue value="${env.USE_QUIET}"/>
</condition>
<!-- If there is not exactly one launcher in the stack, we'd best fail
fast, since we are not expecting that, and may indicate an installation that
would produce unpredictable results -->
<!-- requires ant 1.7, and at this point, we're running 1.6 from eclipse
... <condition property="expectedNumberOfLaunchers"> <resourcecount when="equal"
count="1" > <fileset dir="${testRoot}/eclipse/plugins"> <include name="org.eclipse.equinox.launcher_*.jar"
/> </fileset> </resourcecount> </condition> <fail message="Did not find expected
number of launcher jars. Check installation." unless="expectedNumberOfLaunchers"
/> -->
<!-- Remember: using dash 'debug' for org.eclipse.ant.core.antRunner produces
ant debug info to be output ... which is a TON of stuff. Even 'verbose' is
a bit too much. -->
<echo message="eclipse.launcher: ${eclipse.launcher}"/>
<java
taskname="unit-test-masterprocess"
fork="true"
......@@ -224,7 +284,6 @@
<jvmarg value="-DbuildBranch=${buildBranch}"/>
<jvmarg value="-DbuildType=${buildType}"/>
<jvmarg value="-DdependencyFileLocation=${dependencyFileLocation}"/>
<jvmarg value="-DbuildId=${buildId}"/>
<jvmarg value="-Dprojectname=${projectname}"/>
<jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/>
......@@ -238,14 +297,13 @@
<arg value="${testRoot}/overallTestWorkspace"/>
<arg value="-application"/>
<arg value="org.eclipse.ant.core.antRunner"/>
<arg value="${antQuietValue}"/>
<arg value="-logger"/>
<arg value="org.apache.tools.ant.DefaultLogger"/>
<arg value="-file"/>
<arg value="${testRoot}/perftest.xml"/>
<arg value="${testTarget}"/>
<!-- make sure our forked env has a DISPLAY -->
<!-- make sure our forked env has a DISPLAY -->
<env
key="DISPLAY"
value="${env.DISPLAY}"/>
......@@ -259,10 +317,8 @@
<jvmarg value="-DtestRoot=${testRoot}"/>
<jvmarg value="-DtestDir=${testRoot}"/>
<jvmarg value="-DeclipseBuilderDirectory=${pde.builder.path}"/>
<!-- IBM_JAVA_OPTIONS contains JIT work arounds for bug 284441 -->
<env
key="IBM_JAVA_OPTIONS"
value="-Xjit:{org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.primGetNextToken()Ljava/lang/String;}(disableLookahead),{org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.primGetNextToken()Ljava/lang/String;}(disableLookahead)"/>
<!-- IBM_JAVA_OPTIONS contains JIT work arounds for bug 284441 <env key="IBM_JAVA_OPTIONS"
value="-Xjit:{org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.primGetNextToken()Ljava/lang/String;}(disableLookahead),{org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.primGetNextToken()Ljava/lang/String;}(disableLookahead)"/> -->
</java>
<echo message="wtpmasterjunitresult ${wtpmasterjunitresult}"/>
</target>
......@@ -311,5 +367,26 @@
<include name="*.html"/>
</fileset>
</copy>
<copy
todir="${buildDirectory}/${buildLabel}/testResults/"
overwrite="true"
failonerror="false">
<fileset dir="${testRoot}/results/">
<include name="*.html"/>
</fileset>
</copy>
</target>
<target name="init">
<echo message="dropinsFolder: ${dropinsFolder} "/>
<condition
property="install.destination"
value="${testRoot}${dropinsFolder}/"
else="${testRoot}/eclipse">
<isset property="dropinsFolder"/>
</condition>
</target>
</project>
\ No newline at end of file
This diff is collapsed.
[Note to readers: please improve these instructions as you find things.]
The files in this folder are for installinging and runing unit tests and performance tests.
The files in this folder are for installing and running unit tests and performance tests.
Your machine must have the following software installed and update
the "runtest" scripts to point to their installation:
ant
java
java 6
Your machine must have the following software installed and available to
be executed from the path:
......
@echo off
REM default java executable for outer and test vm
set vmcmd=java
REM reset list of ant targets in test.xml to execute
set tests=
REM default switch to determine if eclipse should be reinstalled between running of tests
set installmode=clean
REM default values for os, ws and arch
set os=win32
set ws=win32
set arch=x86
REM reset ant command line args
set ANT_CMD_LINE_ARGS=
REM ****************************************************************
REM
REM Install Eclipse if it does not exist
REM
REM ****************************************************************
if NOT EXIST eclipseAnt unzip -qq -o %LOCAL_PREREQS_CACHE%/eclipse-SDK-*.zip -d eclipseAnt && unzip -qq -o -C eclipse-junit-tests*.zip plugins/org.eclipse.test* -d eclipseAnt/eclipse/dropins/
:processcmdlineargs
REM ****************************************************************
REM
REM Process command line arguments
REM
REM ****************************************************************
if x%1==x goto run
if x%1==x-ws set ws=%2 && shift && shift && goto processcmdlineargs
if x%1==x-os set os =%2 && shift && shift && goto processcmdlineargs
if x%1==x-arch set arch=%2 && shift && shift && goto processcmdlineargs
if x%1==x-noclean set installmode=noclean&& shift && goto processcmdlineargs
if x%1==x-vm set vmcmd="%2" && shift && shift && goto processcmdlineargs
set tests=%tests% %1 && shift && goto processcmdlineargs
:run
REM ***************************************************************************
REM Run tests by running Ant in Eclipse on the eclipsePerfTests.xml script
REM ***************************************************************************
REM get name of org.eclipse.equinox.launcher_*.jar with version label
dir /b eclipseAnt\eclipse\plugins\org.eclipse.equinox.launcher_*.jar>launcher-jar-name.txt
set /p launcher-jar=<launcher-jar-name.txt
%vmcmd% -Dosgi.os=%os% -Dosgi.ws=%ws% -Dosgi.arch=%arch% -jar eclipseAnt\eclipse\plugins\%launcher-jar% -data workspace -application org.eclipse.ant.core.antRunner -file eclipsePerfTests.xml %tests% -Dws=%ws% -Dos=%os% -Darch=%arch% -D%installmode%=true -logger org.apache.tools.ant.DefaultLogger
goto end
:end
REM Example script to run standalone test on Windows
REM -performance and -functional options both require releng data to be present (i.e. call with -checkout first)
REM Running performance or junit tests require releng data to be present (i.e. call with -checkout first)
@echo off
SETLOCAL
......@@ -65,49 +65,49 @@ REM timestamp Basically the "end" part of a download zip or build name,
REM build.stream (not sure if needed)
REM buildBranch Build branch used in various scripts ... usually the "middle" part of projectname, such as R3.2 in wtp-R3.2-I
REM testTarget The specific test suite(s) to run. These target names are from the test.xml file. Omit or use 'all' to run all tests.
REM testBundle The specific plugin to test, such as org.eclipse.jst.jsp. Will run the selected tests only on that bundle.
REM testBundle The specific plugin to test, such as org.eclipse.jst.jsp. Will run the selected tests only on that bundle.
REM -f antfile The name or path should not have to be changed, but the "releng.wtpbuilder" project must already be checked out from CVS
REM (or exported from Eclipse) into a directory named 'webtools.releng' which is immediately under the BUILD_HOME directory.
REM It is assume this batch file, then, is in the BUILD_HOME directory.
REM check to see what the user chose. Default is help.
if x%1==x-onesuite goto onesuite
if x%1==x-funcSuite goto funcSuite
if x%1==x-perfSuite goto perfSuite
if x%1==x-functional goto func
if x%1==x-checkout goto chk
if x%1==x-performance goto perf
goto hlp
:chk
echo Running standalonecheckout.xml
echo Running standalonecheckout.xml
call ant ^
-Dprojectname=wtp-M3.2.3 ^
-DbuildType=M ^
-Dprojectname=wtp-R3.2.3 ^
-DbuildType=R ^
-DbuildId=3.2.3 ^
-Dtimestamp=20110121005429 ^
-DmapVersionTag=vM20110121005429 ^
-Dtimestamp=20110217214612 ^
-DmapVersionTag=R3_2_3 ^
-Dbuild.stream=R3.2.3 ^
-DbuildBranch=R3.2.3 ^
-f standalonecheckout.xml
goto exit
:func
echo Running standaloneTest.xml
call ant ^
-Dprojectname=wtp-M3.2.3 ^
-DbuildType=M ^
call ant ^
-Dprojectname=wtp-R3.2.3 ^
-DbuildType=R ^
-DbuildId=3.2.3 ^
-Dtimestamp=20110121005429 ^
-Dtimestamp=20110217214612 ^
-Dbuild.stream=R3.2.3 ^
-DbuildBranch=R3.2.3 ^
-f standaloneTest.xml
goto exit
:onesuite
:funcSuite
echo Example Running standaloneTest.xml and running only one suite
call ant ^
......@@ -124,19 +124,35 @@ goto exit
:perf
echo Running standalonePerfTest.xml
call ant ^
-Dprojectname=wtp-M3.2.3 ^
-DbuildType=M ^
call ant ^
-Dprojectname=wtp-R3.2.3 ^
-DbuildType=R ^
-DbuildId=3.2.3 ^
-Dtimestamp=20110121005429 ^
-Dtimestamp=20110217214612 ^
-Dbuild.stream=R3.2.3 ^
-DbuildBranch=R3.2.3 ^
-f standalonePerfTest.xml
-f standalonePerfTest.xml
goto exit
:perfSuite
rem For a complete list of available test suites see the 'all' target in eclipsePerfTests.xml
rem testBundle can be one suite (-DtestBundle=antui) or multiple (-DtestBundle="jdtcompilertool antui")
echo Running standalonePerfTest.xml
call ant ^
-Dprojectname=wtp-R3.2.3 ^
-DbuildType=R ^
-DbuildId=3.2.3 ^
-Dtimestamp=20110217214612 ^
-Dbuild.stream=R3.2.3 ^
-DbuildBranch=R3.2.3 ^
-DtestBundle=antui ^
-f standalonePerfTest.xml
goto exit
:hlp
echo Use -performance for performance tests, -funtional for function tests, -checkout to (re)fetch releng data, or anything else for this message
echo Use -performance to run all performance tests, -perfSuite to run specific performance suites, -funtional for function tests, -funcSuite to run a specific junit test, -checkout to (re)fetch releng data, or anything else for this message
:exit
ENDLOCAL
......@@ -2,18 +2,12 @@
name="standalonePerfTest"
default="standalonePerfTest"
basedir=".">
<!--
Required inputs: build.home buildType buildId timestamp
build.stream [optional] build.committers [optional] testTarget
[optional]
-->
<!-- Required inputs: build.home buildType buildId timestamp build.stream
[optional] build.committers [optional] testTarget [optional] -->
<property environment="env"/>
<!--
Let users override standard properties, if desired. If
directory, file, or some properties do not exist, then standard
properties will be used.
-->
<!-- Let users override standard properties, if desired. If directory, file,
or some properties do not exist, then standard properties will be used. -->
<echo message="LOCAL_BUILD_PROPERTIES_DIR: ${env.LOCAL_BUILD_PROPERTIES_DIR}"/>
......@@ -31,7 +25,7 @@
<echo
level="info"
message="keyCfgFile: ${keyCfgFile}"/>
<!-- required to get proper value of dropinsFolder -->
<!-- required to get proper value of dropinsFolder -->
<property file="${keyCfgFile}"/>
<fail
message="testRoot must be set for this task"
......@@ -48,11 +42,7 @@
name="buildDirectory"
value="${env.PROJECT_PROJECTS}/${projectName}/workdir"/>
<!--
<property
name="dependency.properties"
value="${buildDirectory}/maps/${env.RELENG}/${dependencyFileLocation}"/>
-->
<!-- <property name="dependency.properties" value="${buildDirectory}/maps/${env.RELENG}/${dependencyFileLocation}"/> -->
<property
name="dependency.properties"
value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/${dependencyFileLocation}"/>
......@@ -70,13 +60,10 @@
<property
name="testRoot"
value="${build.home}/testRoot/"/>
<!-- don't delete automatically
<delete quiet="true"
dir="${testRoot}"
failonerror="false"/>
-->
<!-- don't delete automatically <delete quiet="true" dir="${testRoot}"
failonerror="false"/> -->
<mkdir dir="${testRoot}"/>
<condition property="installed">
<available
......@@ -189,7 +176,7 @@
<property
name="testRoot"
value="${testRoot}"/>
<!-- if not otherwise set, assume all tests -->
<!-- if not otherwise set, assume all tests -->
<property
name="testTarget"
value="all"/>
......@@ -206,7 +193,8 @@
<property
name="testRoot"
value="${build.home}/testRoot"/>
<delete quiet="true"
<delete
quiet="true"
dir="${testRoot}"
failonerror="false"/>
</target>
......
......@@ -150,7 +150,8 @@
<property
name="testRoot"
value="${build.home}/testRoot"/>
<delete quiet="true"
<delete
quiet="true"
dir="${testRoot}"
failonerror="false"/>
</target>
......
......@@ -86,7 +86,8 @@
deleting WTP builder project location: <BUILD
HOME>/projectBuilders/<project>/webtools.releng/releng.wtpbuilder
-->
<delete quiet="true"
<delete
quiet="true"
dir="${codir}/${env.RELENG_BUILDER}"
failonerror="true"/>
<!--
......@@ -127,7 +128,8 @@
if="doClean">
<echo message="Version tag for ${env.RELENG}: ${mapVersionTag}"/>
<delete quiet="true"
<delete
quiet="true"
dir="${codir}/${env.RELENG}"
failonerror="true"/>
<cvs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment