blob: 0644ac57bf5a41ba9daa96d0744e248c6db5e8a5 [file] [log] [blame]
<?xml version="1.0"?>
<project name="selectors-test" basedir="." default="setupfiles">
<property name="etc.dir" value=".."/>
<property name="test.dir"
value="selectortest"/>
<property name="testregexpsrc.dir"
value="regexpseltestsrc"/>
<property name="testregexpdest.dir"
value="regexpseltestdest"/>
<property name="mirror.dir"
value="selectortest2"/>
<target name="setupfiles">
<mkdir dir="${test.dir}" />
<mkdir dir="${test.dir}/zip" />
<mkdir dir="${test.dir}/tar" />
<mkdir dir="${test.dir}/tar/gz" />
<mkdir dir="${test.dir}/tar/bz2" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.md5"
tofile="${test.dir}/asf-logo.gif.md5" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.bz2"
tofile="${test.dir}/asf-logo.gif.bz2" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.gz"
tofile="${test.dir}/asf-logo.gif.gz" />
<copy file="${etc.dir}/taskdefs/expected/copy.filterset.filtered"
tofile="${test.dir}/copy.filterset.filtered" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.zip"
tofile="${test.dir}/zip/asf-logo.gif.zip" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar"
tofile="${test.dir}/tar/asf-logo.gif.tar" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo-huge.tar.gz"
tofile="${test.dir}/tar/asf-logo-huge.tar.gz" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar.gz"
tofile="${test.dir}/tar/gz/asf-logo.gif.tar.gz" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo.gif.tar.bz2"
tofile="${test.dir}/tar/bz2/asf-logo.gif.tar.bz2" />
<copy file="${etc.dir}/taskdefs/expected/asf-logo-huge.tar.bz2"
tofile="${test.dir}/tar/bz2/asf-logo-huge.tar.bz2" />
<!-- Make linefeeds consistent between platforms -->
<fixcrlf srcdir="${test.dir}" includes="*.filtered" eol="lf"/>
<!-- Set a known base time for all files -->
<touch datetime="11/21/2001 4:55 AM">
<fileset dir="${test.dir}">
<include name="**/*"/>
</fileset>
</touch>
<!-- Then adjust individual ones -->
<touch file="${test.dir}/asf-logo.gif.bz2"
datetime="01/01/2001 12:00 AM"/>
<touch file="${test.dir}/asf-logo.gif.gz"
datetime="04/15/2002 2:30 PM"/>
<touch file="${test.dir}/zip/asf-logo.gif.zip"
datetime="05/10/2002 2:30 PM"/>
<touch file="${test.dir}/tar/asf-logo.gif.tar"
datetime="05/10/2002 2:29 PM"/>
<touch file="${test.dir}/tar/asf-logo-huge.tar.gz"
datetime="05/10/2002 2:29 AM"/>
</target>
<target name="cleanup">
<delete dir="${test.dir}" />
</target>
<target name="mirrorfiles">
<mkdir dir="${mirror.dir}" />
<mkdir dir="${mirror.dir}/zip" />
<mkdir dir="${mirror.dir}/tar" />
<mkdir dir="${mirror.dir}/tar/gz" />
<mkdir dir="${mirror.dir}/tar/bz2" />
<touch file="${mirror.dir}/asf-logo.gif.md5"/>
<touch file="${mirror.dir}/asf-logo.gif.bz2"/>
<sleep seconds="2"/>
<touch file="${mirror.dir}/zip/asf-logo.gif.zip"/>
<sleep seconds="3"/>
<touch file="${mirror.dir}/tar/asf-logo.gif.tar"/>
<sleep seconds="2"/>
<touch file="${mirror.dir}/tar/asf-logo-huge.tar.gz"/>
<touch file="${mirror.dir}/tar/gz/asf-logo.gif.tar.gz"/>
<touch file="${mirror.dir}/tar/bz2/asf-logo.gif.tar.bz2"/>
<touch file="${mirror.dir}/tar/bz2/asf-logo-huge.tar.bz2"/>
</target>
<target name="cleanup.mirrorfiles">
<delete dir="${mirror.dir}" />
</target>
<target name="cleanupregexp">
<delete dir="${testregexpsrc.dir}" />
<delete dir="${testregexpdest.dir}" />
</target>
<target name="containsregexp">
<mkdir dir="${testregexpsrc.dir}" />
<mkdir dir="${testregexpdest.dir}" />
<!-- Make two test files, shouldcopy.txt will get selected if everything works
shouldnotcopy.txt will not get selected for copy. The test looks to see
that only one file is copied
-->
<echo message="Some testregexp text 2.0" file="${testregexpsrc.dir}/shouldcopy.txt" />
<echo message="Some testregexp text 20" file="${testregexpsrc.dir}/shouldnotcopy.txt" />
<copy todir="${testregexpdest.dir}">
<fileset dir="${testregexpsrc.dir}">
<include name="*.txt" />
<containsregexp expression="[0-9]\.[0,1,2]" />
</fileset>
</copy>
</target>
<!-- ========== Test for ModifiedSelector ========== -->
<target name="modifiedselectortest-makeDirty">
<!-- Load propertyfile generated by SelectorTest-class -->
<property file="ModifiedSelectorTest.properties"/>
<!-- Modify only timestamp -->
<touch file="${test.dir}/${f2name}" datetime="02/28/2003 9:55 AM"/>
<!-- Change content but keep timestamp -->
<echo file="${test.dir}/${f3name}" append="true" message="new content"/>
<touch file="${test.dir}/${f3name}" datetime="11/21/2001 4:55 AM"/>
<!-- Change content and timestamp -->
<echo file="${test.dir}/${f4name}" append="true" message="new content"/>
</target>
<target name="modifiedselectortest-scenario-clean">
<delete dir="${test.dir}"/>
</target>
<target name="modifiedselectortest-scenario-prepare">
<mkdir dir="${test.dir}/src"/>
<copy todir="${test.dir}/src">
<fileset dir="${ant.home}/lib" includes="ant.jar">
<type type="file"/>
</fileset>
<fileset dir="${ant.home}/bin">
<type type="file"/>
</fileset>
</copy>
<touch datetime="12/24/2002 4:00 pm">
<fileset dir="${test.dir}"/>
</touch>
<mkdir dir="${test.dir}/to-1"/>
<mkdir dir="${test.dir}/to-2"/>
<mkdir dir="${test.dir}/to-3"/>
</target>
<target name="modifiedselectortest-scenario-makeDirty">
<touch file="${test.dir}/src/ant.jar"/>
<echo file="${test.dir}/src/ant.bat" append="true" message="new-content"/>
<echo file="${test.dir}/src/antRun.pl" append="true" message="new-content"/>
<touch file="${test.dir}/src/antRun.pl" datetime="12/24/2002 4:00 pm"/>
</target>
<target name="modifiedselectortest-scenario-coreselector-defaults" depends="modifiedselectortest-scenario-prepare">
<!-- copy first time and create cachefile -->
<copy todir="${test.dir}/to-1">
<fileset dir="${test.dir}/src">
<modified/>
</fileset>
</copy>
<!-- copy second time: nothing should be copied -->
<copy todir="${test.dir}/to-2">
<fileset dir="${test.dir}/src">
<modified/>
</fileset>
</copy>
<!-- 'modify' the source files -->
<antcall target="modifiedselectortest-scenario-makeDirty"/>
<!-- copy third time: only the files with new CONTENT should be copied -->
<copy todir="${test.dir}/to-3">
<fileset dir="${test.dir}/src">
<modified/>
</fileset>
</copy>
</target>
<target name="modifiedselectortest-scenario-coreselector-settings" depends="modifiedselectortest-scenario-prepare">
<!-- copy first time and create cachefile -->
<copy todir="${test.dir}/to-1">
<fileset dir="${test.dir}/src">
<modified cache="propertyfile" algorithm="hashvalue" update="true">
<param name="cache.cachefile" value="core.cache.properties" />
</modified>
</fileset>
</copy>
<!-- copy second time: nothing should be copied -->
<copy todir="${test.dir}/to-2">
<fileset dir="${test.dir}/src">
<modified cache="propertyfile" algorithm="hashvalue" update="true">
<param name="cache.cachefile" value="core.cache.properties" />
</modified>
</fileset>
</copy>
<!-- 'modify' the source files -->
<antcall target="modifiedselectortest-scenario-makeDirty"/>
<!-- copy third time: only the files with new CONTENT should be copied -->
<copy todir="${test.dir}/to-3">
<fileset dir="${test.dir}/src">
<modified cache="propertyfile" algorithm="hashvalue" update="true">
<param name="cache.cachefile" value="core.cache.properties" />
</modified>
</fileset>
</copy>
</target>
<target name="modifiedselectortest-scenario-customselector-settings" depends="modifiedselectortest-scenario-prepare">
<!-- copy first time and create cachefile -->
<copy todir="${test.dir}/to-1">
<fileset dir="${test.dir}/src">
<custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector">
<param name="cache" value="propertyfile"/>
<param name="algorithm" value="hashvalue"/>
<param name="update" value="true"/>
<param name="cache.cachefile" value="core.cache.properties"/>
</custom>
</fileset>
</copy>
<!-- copy second time: nothing should be copied -->
<copy todir="${test.dir}/to-2">
<fileset dir="${test.dir}/src">
<custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector">
<param name="cache" value="propertyfile"/>
<param name="algorithm" value="hashvalue"/>
<param name="update" value="true"/>
<param name="cache.cachefile" value="core.cache.properties"/>
</custom>
</fileset>
</copy>
<!-- 'modify' the source files -->
<antcall target="modifiedselectortest-scenario-makeDirty"/>
<!-- copy third time: only the files with new CONTENT should be copied -->
<copy todir="${test.dir}/to-3">
<fileset dir="${test.dir}/src">
<custom classname="org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector">
<param name="cache" value="propertyfile"/>
<param name="algorithm" value="hashvalue"/>
<param name="update" value="true"/>
<param name="cache.cachefile" value="core.cache.properties"/>
</custom>
</fileset>
</copy>
</target>
</project>