Browse Source

New depend checks

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272286 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 23 years ago
parent
commit
9f71c862fe
6 changed files with 89 additions and 7 deletions
  1. +36
    -7
      src/etc/testcases/taskdefs/optional/depend/depend.xml
  2. +5
    -0
      src/etc/testcases/taskdefs/optional/depend/src2/A.java
  3. +3
    -0
      src/etc/testcases/taskdefs/optional/depend/src2/B.java
  4. +7
    -0
      src/etc/testcases/taskdefs/optional/depend/src3/A.java
  5. +3
    -0
      src/etc/testcases/taskdefs/optional/depend/src3/B.java
  6. +35
    -0
      src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java

+ 36
- 7
src/etc/testcases/taskdefs/optional/depend/depend.xml View File

@@ -2,6 +2,8 @@


<project name="depend" basedir="." default="help"> <project name="depend" basedir="." default="help">
<property name="src1.dir" value="src1"/> <property name="src1.dir" value="src1"/>
<property name="src2.dir" value="src2"/>
<property name="src3.dir" value="src3"/>
<property name="tempsrc.dir" value="working"/> <property name="tempsrc.dir" value="working"/>
<property name="classes.dir" value="classes"/> <property name="classes.dir" value="classes"/>
<target name="help"> <target name="help">
@@ -18,7 +20,19 @@
</copy> </copy>
</target> </target>
<target name="src1compile" depends="src1setup">
<target name="src2setup" depends="basesetup">
<copy todir="${tempsrc.dir}">
<fileset dir="${src2.dir}"/>
</copy>
</target>

<target name="src3setup" depends="basesetup">
<copy todir="${tempsrc.dir}">
<fileset dir="${src3.dir}"/>
</copy>
</target>

<target name="compile">
<mkdir dir="${classes.dir}"/> <mkdir dir="${classes.dir}"/>
<javac srcdir="${tempsrc.dir}" destdir="${classes.dir}"/> <javac srcdir="${tempsrc.dir}" destdir="${classes.dir}"/>
</target> </target>
@@ -28,7 +42,7 @@
<delete dir="${tempsrc.dir}"/> <delete dir="${tempsrc.dir}"/>
</target> </target>


<target name="testdirect" depends="src1compile">
<target name="testdirect" depends="src1setup, compile">
<sleep seconds="3"/> <sleep seconds="3"/>
<delete file="${tempsrc.dir}/C.java"/> <delete file="${tempsrc.dir}/C.java"/>
<copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/> <copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/>
@@ -36,7 +50,7 @@
<fileset id="result" dir="${classes.dir}"/> <fileset id="result" dir="${classes.dir}"/>
</target> </target>


<target name="testclosure" depends="src1compile">
<target name="testclosure" depends="src1setup, compile">
<sleep seconds="3"/> <sleep seconds="3"/>
<delete file="${tempsrc.dir}/C.java"/> <delete file="${tempsrc.dir}/C.java"/>
<copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/> <copy file="${src1.dir}/C.java" tofile="${tempsrc.dir}/C.java"/>
@@ -44,21 +58,21 @@
<fileset id="result" dir="${classes.dir}"/> <fileset id="result" dir="${classes.dir}"/>
</target> </target>


<target name="testbasicset" depends="src1compile">
<target name="testbasicset" depends="src1setup, compile">
<classfileset id="result" dir="${classes.dir}" rootclass="A"/> <classfileset id="result" dir="${classes.dir}" rootclass="A"/>
</target> </target>


<target name="testsmallset" depends="src1compile">
<target name="testsmallset" depends="src1setup, compile">
<classfileset id="result" dir="${classes.dir}" rootclass="B"/> <classfileset id="result" dir="${classes.dir}" rootclass="B"/>
</target> </target>


<target name="testcomboset" depends="src1compile">
<target name="testcomboset" depends="src1setup, compile">
<classfileset id="result" dir="${classes.dir}" rootclass="B"> <classfileset id="result" dir="${classes.dir}" rootclass="B">
<include name="**/C.class"/> <include name="**/C.class"/>
</classfileset> </classfileset>
</target> </target>
<target name="testbyreference" depends="src1compile">
<target name="testbyreference" depends="src1setup, compile">
<classfileset id="classSet" dir="${classes.dir}" rootclass="A"> <classfileset id="classSet" dir="${classes.dir}" rootclass="A">
<include name="**/C.class"/> <include name="**/C.class"/>
</classfileset> </classfileset>
@@ -67,4 +81,19 @@
</jar> </jar>
</target> </target>
<target name="testinner" depends="src2setup, compile">
<sleep seconds="3"/>
<delete file="${tempsrc.dir}/B.java"/>
<copy file="${src2.dir}/B.java" tofile="${tempsrc.dir}/B.java"/>
<depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
<fileset id="result" dir="${classes.dir}"/>
</target>

<target name="testinnerinner" depends="src3setup, compile">
<sleep seconds="3"/>
<delete file="${tempsrc.dir}/B.java"/>
<copy file="${src3.dir}/B.java" tofile="${tempsrc.dir}/B.java"/>
<depend srcdir="${tempsrc.dir}" destdir="${classes.dir}" closure="yes"/>
<fileset id="result" dir="${classes.dir}"/>
</target>
</project> </project>

+ 5
- 0
src/etc/testcases/taskdefs/optional/depend/src2/A.java View File

@@ -0,0 +1,5 @@
public class A {
static private class Inner extends B {
}
}


+ 3
- 0
src/etc/testcases/taskdefs/optional/depend/src2/B.java View File

@@ -0,0 +1,3 @@
public class B {
}


+ 7
- 0
src/etc/testcases/taskdefs/optional/depend/src3/A.java View File

@@ -0,0 +1,7 @@
public class A {
static private class Inner {
static private class Inner2 extends B {
}
}
}


+ 3
- 0
src/etc/testcases/taskdefs/optional/depend/src3/B.java View File

@@ -0,0 +1,3 @@
public class B {
}


+ 35
- 0
src/testcases/org/apache/tools/ant/taskdefs/optional/depend/DependTest.java View File

@@ -125,4 +125,39 @@ public class DependTest extends BuildFileTest {
assertTrue("Result did not contain D.class", assertTrue("Result did not contain D.class",
files.containsKey("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());
}
} }

Loading…
Cancel
Save