From 9f71c862fec680ba3ed0e062f85981dbc8eaf0a6 Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Mon, 8 Apr 2002 06:56:41 +0000 Subject: [PATCH] New depend checks git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272286 13f79535-47bb-0310-9956-ffa450edef68 --- .../taskdefs/optional/depend/depend.xml | 43 ++++++++++++++++--- .../taskdefs/optional/depend/src2/A.java | 5 +++ .../taskdefs/optional/depend/src2/B.java | 3 ++ .../taskdefs/optional/depend/src3/A.java | 7 +++ .../taskdefs/optional/depend/src3/B.java | 3 ++ .../taskdefs/optional/depend/DependTest.java | 35 +++++++++++++++ 6 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 src/etc/testcases/taskdefs/optional/depend/src2/A.java create mode 100644 src/etc/testcases/taskdefs/optional/depend/src2/B.java create mode 100644 src/etc/testcases/taskdefs/optional/depend/src3/A.java create mode 100644 src/etc/testcases/taskdefs/optional/depend/src3/B.java diff --git a/src/etc/testcases/taskdefs/optional/depend/depend.xml b/src/etc/testcases/taskdefs/optional/depend/depend.xml index a35662d88..7a77e516f 100644 --- a/src/etc/testcases/taskdefs/optional/depend/depend.xml +++ b/src/etc/testcases/taskdefs/optional/depend/depend.xml @@ -2,6 +2,8 @@ + + @@ -18,7 +20,19 @@ - + + + + + + + + + + + + + @@ -28,7 +42,7 @@ - + @@ -36,7 +50,7 @@ - + @@ -44,21 +58,21 @@ - + - + - + - + @@ -67,4 +81,19 @@ + + + + + + + + + + + + + + + diff --git a/src/etc/testcases/taskdefs/optional/depend/src2/A.java b/src/etc/testcases/taskdefs/optional/depend/src2/A.java new file mode 100644 index 000000000..9e635d976 --- /dev/null +++ b/src/etc/testcases/taskdefs/optional/depend/src2/A.java @@ -0,0 +1,5 @@ +public class A { + static private class Inner extends B { + } +} + diff --git a/src/etc/testcases/taskdefs/optional/depend/src2/B.java b/src/etc/testcases/taskdefs/optional/depend/src2/B.java new file mode 100644 index 000000000..b4e908f59 --- /dev/null +++ b/src/etc/testcases/taskdefs/optional/depend/src2/B.java @@ -0,0 +1,3 @@ +public class B { +} + diff --git a/src/etc/testcases/taskdefs/optional/depend/src3/A.java b/src/etc/testcases/taskdefs/optional/depend/src3/A.java new file mode 100644 index 000000000..74e47421c --- /dev/null +++ b/src/etc/testcases/taskdefs/optional/depend/src3/A.java @@ -0,0 +1,7 @@ +public class A { + static private class Inner { + static private class Inner2 extends B { + } + } +} + diff --git a/src/etc/testcases/taskdefs/optional/depend/src3/B.java b/src/etc/testcases/taskdefs/optional/depend/src3/B.java new file mode 100644 index 000000000..b4e908f59 --- /dev/null +++ b/src/etc/testcases/taskdefs/optional/depend/src3/B.java @@ -0,0 +1,3 @@ +public class B { +} + diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java index 68d54906d..ac4c012d4 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java @@ -125,4 +125,39 @@ public class DependTest extends BuildFileTest { assertTrue("Result did not contain D.class", files.containsKey("D.class")); } + + /** + * Test that inner class dependencies trigger deletion of the outer class + */ + public void testInner() { + Project project = getProject(); + executeTarget("testinner"); + FileSet resultFileSet = (FileSet)project.getReference(RESULT_FILESET); + DirectoryScanner scanner = resultFileSet.getDirectoryScanner(project); + String[] scannedFiles = scanner.getIncludedFiles(); + Hashtable files = new Hashtable(); + for (int i = 0; i < scannedFiles.length; ++i) { + files.put(scannedFiles[i], scannedFiles[i]); + } + assertEquals("Depend did not leave correct number of files", 0, + files.size()); + } + + /** + * Test that multi-leve inner class dependencies trigger deletion of + * the outer class + */ + public void testInnerInner() { + Project project = getProject(); + executeTarget("testinnerinner"); + FileSet resultFileSet = (FileSet)project.getReference(RESULT_FILESET); + DirectoryScanner scanner = resultFileSet.getDirectoryScanner(project); + String[] scannedFiles = scanner.getIncludedFiles(); + Hashtable files = new Hashtable(); + for (int i = 0; i < scannedFiles.length; ++i) { + files.put(scannedFiles[i], scannedFiles[i]); + } + assertEquals("Depend did not leave correct number of files", 0, + files.size()); + } }