bodewig 2003/07/16 06:34:14 Modified: src/etc/testcases/core directoryscanner.xml src/testcases/org/apache/tools/ant DirectoryScannerTest.java Log: Demonstrate symlink problem. With includes="alpha/beta/gamma", gamma must not be scanned if beta is a symlink. Fix is in the works. Revision Changes Path 1.2 +7 -3 ant/src/etc/testcases/core/directoryscanner.xml Index: directoryscanner.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/core/directoryscanner.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- directoryscanner.xml 11 Jul 2003 12:59:29 -0000 1.1 +++ directoryscanner.xml 16 Jul 2003 13:34:14 -0000 1.2 @@ -1,14 +1,18 @@ <project name="directoryscanner-test" basedir="."> <property name="tmp.dir" location="tmp"/> <target name="setup"> - <mkdir dir="${tmp.dir}"/> - <mkdir dir="${tmp.dir}/alpha"/> - <mkdir dir="${tmp.dir}/alpha/beta"/> <mkdir dir="${tmp.dir}/alpha/beta/gamma"/> <touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/> <touch file="${tmp.dir}/alpha/beta/beta.xml"/> </target> <target name="cleanup"> <delete dir="${tmp.dir}" quiet="true"/> + </target> + + <target name="symlink-setup" depends="setup"> + <mkdir dir="${tmp.dir}/epsilon/gamma"/> + <delete dir="${tmp.dir}/alpha/beta"/> + <symlink link="${tmp.dir}/alpha/beta" resource="${tmp.dir}/epsilon"/> + <touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/> </target> </project> 1.15 +28 -0 ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java Index: DirectoryScannerTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- DirectoryScannerTest.java 16 Jul 2003 11:09:19 -0000 1.14 +++ DirectoryScannerTest.java 16 Jul 2003 13:34:14 -0000 1.15 @@ -144,6 +144,34 @@ new String[] {"alpha", "alpha/beta", "alpha/beta/gamma"}); } + public void testAllowSymlinks() { + if (!supportsSymlinks) { + return; + } + + getProject().executeTarget("symlink-setup"); + DirectoryScanner ds = new DirectoryScanner(); + ds.setBasedir(new File(getProject().getBaseDir(), "tmp")); + ds.setIncludes(new String[] {"alpha/beta/gamma/"}); + ds.scan(); + compareFiles(ds, new String[] {"alpha/beta/gamma/gamma.xml"}, + new String[] {"alpha/beta/gamma"}); + } + + public void testProhibitSymlinks() { + if (!supportsSymlinks) { + return; + } + + getProject().executeTarget("symlink-setup"); + DirectoryScanner ds = new DirectoryScanner(); + ds.setBasedir(new File(getProject().getBaseDir(), "tmp")); + ds.setIncludes(new String[] {"alpha/beta/gamma/"}); + ds.setFollowSymlinks(false); + ds.scan(); + compareFiles(ds, new String[] {}, new String[] {}); + } + // father and child pattern test public void testOrderOfIncludePatternsIrrelevant() { String [] expectedFiles = {"alpha/beta/beta.xml",
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]