From b36b5456d78cf204ed670b6a04a491d4e16beb34 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 16 Jul 2003 13:34:14 +0000 Subject: [PATCH] Demonstrate symlink problem. With includes="alpha/beta/gamma", gamma must not be scanned if beta is a symlink. Fix is in the works. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274832 13f79535-47bb-0310-9956-ffa450edef68 --- src/etc/testcases/core/directoryscanner.xml | 10 +++++-- .../tools/ant/DirectoryScannerTest.java | 28 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/etc/testcases/core/directoryscanner.xml b/src/etc/testcases/core/directoryscanner.xml index 96af29fb8..90a6dca7f 100644 --- a/src/etc/testcases/core/directoryscanner.xml +++ b/src/etc/testcases/core/directoryscanner.xml @@ -1,9 +1,6 @@ - - - @@ -11,4 +8,11 @@ + + + + + + + \ No newline at end of file diff --git a/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java b/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java index 6889ee3d7..b8e28c51e 100644 --- a/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java +++ b/src/testcases/org/apache/tools/ant/DirectoryScannerTest.java @@ -144,6 +144,34 @@ public class DirectoryScannerTest extends BuildFileTest { 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",