blob: 3de6f608d44c6f25f4a5b23d0ee2b9df94264c4c [file] [log] [blame]
<?xml version="1.0"?>
<project name="copy-test" basedir="." default="test1">
<target name="test1">
<copy file="copy.xml" tofile="copytest1.tmp" />
</target>
<target name="test2">
<copy file="copy.xml" todir="copytest1dir" overwrite="true"/>
</target>
<target name="filtertest">
<!-- check fix for bugzilla 23154 -->
<delete quiet="yes" file="copy.filter.out"/>
<delete quiet="yes" file="copy.filter.inp"/>
<concat destfile="copy.filter.inp">
PRODUCT_VERSION=6.2.1.4
PRODUCT_BUILD=6.5 (BLD_65036)
PRODUCT_VERSION=6.2.1.4
PRODUCT_BUILD=6.5 (BLD_65036)
</concat>
<copy file="copy.filter.inp" tofile="copy.filter.out">
<filterset begintoken="6" endtoken="4">
<filter token=".2.1." value="2.6.4" />
</filterset>
</copy>
<concat><path path="copy.filter.out"/></concat>
</target>
<target name="infinitetest">
<delete quiet="yes" file="copy.filter.out"/>
<delete quiet="yes" file="copy.filter.inp"/>
<concat destfile="copy.filter.inp">
a=b=
</concat>
<copy file="copy.filter.inp" tofile="copy.filter.out">
<filterset begintoken="=" endtoken="=">
<filter token="b" value="=b="/>
</filterset>
</copy>
<concat><path path="copy.filter.out"/></concat>
</target>
<target name="test3">
<!-- create an empty file -->
<touch file="copytest3.tmp"/>
<!--wait -->
<sleep seconds="4"/>
<!-- copy a different file to two places -->
<copy file="copy.xml" tofile="copytest3a.tmp" overwrite="true"/>
<copy file="copy.xml" tofile="copytest3b.tmp" overwrite="true"/>
<!--wait -->
<sleep seconds="4"/>
<!-- copy an old file onto a newer file (should not work) -->
<copy file="copytest3.tmp" tofile="copytest3b.tmp" />
<!-- copy an older file onto a new one, should succeed -->
<copy file="copytest3.tmp" tofile="copytest3c.tmp"
overwrite="true"
preservelastmodified="true" />
<!-- copy a newer file onto an older one (should work) -->
<copy file="copytest3a.tmp" tofile="copytest3.tmp"
preservelastmodified="true" />
<!-- expected state :
3a.tmp==3.tmp==copy.xml
timeof(3a.tmp)==timeof(3.tmp)==now()-4
sizeof(3c)==0
timeof(3c.tmp)<timeof(3a.tmp);
3b.tmp==copy.xml
-->
</target>
<target name="test_single_file_fileset">
<copy tofile="copytest_single_file_fileset.tmp">
<fileset dir="." includes="copy.xml"/>
</copy>
</target>
<target name="test_single_file_path">
<copy tofile="copytest_single_file_path.tmp">
<path>
<pathelement location="copy.xml"/>
</path>
</copy>
</target>
<target name="testFilterSet">
<copy file="copy.filterset" tofile="copy.filterset.tmp">
<filterset>
<filter token="TITLE" value="Apache Ant Project"/>
</filterset>
</copy>
</target>
<target name="testFilterChain">
<copy file="copy.filterset" tofile="copy.filterchain.tmp">
<filterchain>
<replacetokens>
<token key="TITLE" value="Apache Ant Project"/>
</replacetokens>
</filterchain>
</copy>
</target>
<target name="testTranscoding">
<copy file="copy/input/iso8859-1" tofile="copytest1.tmp"
encoding="ISO8859_1" outputencoding="UTF8"/>
</target>
<target name="testMissingFileIgnore">
<copy file="not-there" tofile="copytest1.tmp"
failonerror="false"/>
</target>
<target name="testMissingFileBail">
<copy file="not-there" tofile="copytest1.tmp"
failonerror="true"/>
</target>
<target name="testMissingDirIgnore">
<copy todir="copytest1dir" failonerror="false">
<fileset dir="not-there"/>
</copy>
</target>
<target name="testMissingDirBail">
<copy todir="copytest1dir" failonerror="true">
<fileset dir="not-there"/>
</copy>
</target>
<property name="to.dir" value="copy-todir-tmp"/>
<property name="from.dir" value="copy-fromdir-tmp"/>
<target name="testResource.prepare">
<mkdir dir="${from.dir}"/>
<concat destfile="${from.dir}/file1.txt">This is file 1</concat>
<concat destfile="${from.dir}/file2.txt">This is file 2</concat>
<concat destfile="${from.dir}/file3.txt">This is file 3</concat>
<concat destfile="${from.dir}/fileNR.txt">This is file @NR@</concat>
</target>
<target name="testFileResourcePlain" depends="testResource.prepare">
<copy todir="${to.dir}" flatten="true">
<resources>
<file file="${from.dir}/file1.txt"/>
<file file="${from.dir}/file2.txt"/>
<file file="${from.dir}/file3.txt"/>
</resources>
</copy>
</target>
<target name="testFileResourceWithMapper" depends="testResource.prepare">
<copy todir="${to.dir}" flatten="true">
<resources>
<file file="${from.dir}/file1.txt"/>
<file file="${from.dir}/file2.txt"/>
<file file="${from.dir}/file3.txt"/>
</resources>
<regexpmapper from="^(.*)\.txt$$" to="\1.txt.bak"/>
</copy>
</target>
<target name="testFileResourceWithFilter" depends="testResource.prepare">
<copy todir="${to.dir}" flatten="true">
<resources>
<file file="${from.dir}/fileNR.txt"/>
</resources>
<filterset>
<filter token="NR" value="42"/>
</filterset>
</copy>
</target>
<target name="testResourcePlain">
</target>
<target name="testResourcePlainWithMapper">
</target>
<target name="testResourcePlainWithFilter">
</target>
<target name="testOnlineResources">
</target>
<target name="testPathAsResource" depends="testResource.prepare">
<copy todir="${to.dir}">
<path>
<fileset dir="${from.dir}"/>
</path>
</copy>
</target>
<target name="testZipfileset" depends="testResource.prepare">
<zip destfile="${from.dir}/test.zip" roundup="false">
<fileset dir="${from.dir}" excludes="*.zip"/>
</zip>
<copy todir="${to.dir}">
<zipfileset src="${from.dir}/test.zip"/>
</copy>
</target>
<target name="prepareDirset">
<touch mkdirs="true">
<filelist dir="${from.dir}/dirset">
<file name="a/x/foo" />
<file name="a/y/foo" />
<file name="a/z/foo" />
<file name="b/x/foo" />
<file name="b/y/foo" />
<file name="b/z/foo" />
</filelist>
</touch>
<fail>
<condition>
<or>
<resourcecount when="ne" count="9">
<dirset id="dirset" dir="${from.dir}/dirset" />
</resourcecount>
<resourcecount when="ne" count="6">
<fileset dir="${from.dir}/dirset" />
</resourcecount>
</or>
</condition>
</fail>
<delete dir="${to.dir}/dirset" />
<fail>
<condition>
<available file="${to.dir}/dirset" />
</condition>
</fail>
</target>
<target name="testDirset" depends="prepareDirset">
<copy todir="${to.dir}/dirset">
<resources refid="dirset" />
</copy>
<fail>
<condition>
<or>
<resourcecount when="ne" count="9">
<dirset dir="${to.dir}/dirset" />
</resourcecount>
<resourcecount when="ne" count="0">
<fileset dir="${to.dir}/dirset" />
</resourcecount>
</or>
</condition>
</fail>
</target>
<target name="cleanup">
<delete file="copytest1.tmp"/>
<delete file="copytest3.tmp"/>
<delete file="copytest3a.tmp"/>
<delete file="copytest3b.tmp"/>
<delete file="copytest3c.tmp"/>
<delete file="copytest_single_file_fileset.tmp"/>
<delete file="copytest_single_file_path.tmp"/>
<delete file="copy.filterset.tmp"/>
<delete file="copy.filterchain.tmp"/>
<delete dir="copytest1dir"/>
<delete quiet="yes" file="copy.filter.out"/>
<delete quiet="yes" file="copy.filter.inp"/>
<delete dir="${from.dir}"/>
<delete dir="${to.dir}"/>
</target>
</project>