You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2018/04/13 19:54:31 UTC
ant git commit: fix incorrect warning in the junit task when
includeAntRuntime="no"
Repository: ant
Updated Branches:
refs/heads/master 285af3dbb -> 102623615
fix incorrect warning in the junit task when includeAntRuntime="no"
fixed by making the classloader used by checkForkedPath behave like a real forked classpath, thus completely isolated from the launching jvm
Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/10262361
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/10262361
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/10262361
Branch: refs/heads/master
Commit: 10262361546354f81ede051c656a2125c8918d6f
Parents: 285af3d
Author: Nicolas Lalevée <ni...@hibnet.org>
Authored: Fri Apr 13 21:54:19 2018 +0200
Committer: Nicolas Lalevée <ni...@hibnet.org>
Committed: Fri Apr 13 21:54:19 2018 +0200
----------------------------------------------------------------------
WHATSNEW | 3 ++
src/etc/testcases/taskdefs/optional/junit.xml | 15 ++++++++++
.../ant/taskdefs/optional/junit/JUnitTask.java | 7 +++--
.../taskdefs/optional/junit/JUnitTaskTest.java | 30 ++++++++++++++++++++
4 files changed, 52 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ant/blob/10262361/WHATSNEW
----------------------------------------------------------------------
diff --git a/WHATSNEW b/WHATSNEW
index 0c91829..a017dfd 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -10,6 +10,9 @@ Fixed bugs:
is 'true'.
Bugzilla Report 60062
+ * The junit task when used with includeantruntime="no" was incorrectly
+ printing a warning about multiple versions of ant detected in path
+
Changes from Ant 1.10.2 TO Ant 1.10.3
=====================================
http://git-wip-us.apache.org/repos/asf/ant/blob/10262361/src/etc/testcases/taskdefs/optional/junit.xml
----------------------------------------------------------------------
diff --git a/src/etc/testcases/taskdefs/optional/junit.xml b/src/etc/testcases/taskdefs/optional/junit.xml
index 314ba87..40bfda6 100644
--- a/src/etc/testcases/taskdefs/optional/junit.xml
+++ b/src/etc/testcases/taskdefs/optional/junit.xml
@@ -354,4 +354,19 @@
</junit>
</target>
+ <target name="testCheckForkedPath">
+ <property name="includeantruntime" value="yes" />
+ <!-- duplicate the Ant classes into a jar -->
+ <jar destfile="${output}/ant.jar" basedir="${antclasses}" />
+ <junit fork="yes" haltonerror="true" haltonfailure="true"
+ showoutput="${showoutput}" includeantruntime="${includeantruntime}">
+ <test name="org.example.junit.Output" />
+ <classpath>
+ <pathelement location="../../../../../build/testcases" />
+ <pathelement location="${junitjar}" />
+ <pathelement location="${output}/ant.jar" />
+ </classpath>
+ </junit>
+ </target>
+
</project>
http://git-wip-us.apache.org/repos/asf/ant/blob/10262361/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
index 235cc7d..7d8eb6a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
@@ -1368,9 +1368,10 @@ public class JUnitTask extends Task {
return;
}
try (AntClassLoader loader =
- AntClassLoader.newAntClassLoader(null, getProject(),
- cmd.createClasspath(getProject()),
- true)) {
+ AntClassLoader.newAntClassLoader(null, getProject(),
+ cmd.createClasspath(getProject()),
+ false)) {
+ loader.setIsolated(true);
final String projectResourceName =
LoaderUtils.classNameToResource(Project.class.getName());
URL previous = null;
http://git-wip-us.apache.org/repos/asf/ant/blob/10262361/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
index 616e6a0..6a9a9af 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
@@ -577,6 +577,36 @@ public class JUnitTaskTest {
}
}
+ private void setupCheckDuplicateTest() {
+ final String projectResourceName =
+ LoaderUtils.classNameToResource(Project.class.getName());
+ final File antclasses = LoaderUtils.getResourceSource(
+ Project.class.getClassLoader(), projectResourceName);
+ final String testResourceName =
+ LoaderUtils.classNameToResource(junit.framework.Test.class.getName());
+ final File junitJar = LoaderUtils.getResourceSource(
+ Project.class.getClassLoader(), testResourceName);
+ buildRule.getProject().setProperty("antclasses", antclasses.getAbsolutePath());
+ buildRule.getProject().setProperty("junitjar", junitJar.getAbsolutePath());
+ }
+
+ @Test
+ public void testCheckDuplicateAntJar() throws Exception {
+ setupCheckDuplicateTest();
+ buildRule.executeTarget("testCheckForkedPath");
+ assertTrue("Expecting the warning about the duplicate ant jar",
+ buildRule.getLog().contains("WARNING: multiple versions of ant detected in path for junit"));
+ }
+
+ @Test
+ public void testCheckNonDuplicateAntJar() throws Exception {
+ setupCheckDuplicateTest();
+ buildRule.getProject().setProperty("includeantruntime", "no");
+ buildRule.executeTarget("testCheckForkedPath");
+ assertFalse("Unexpected warning about the duplicate ant jar",
+ buildRule.getLog().contains("WARNING: multiple versions of ant detected in path for junit"));
+ }
+
private void delete(File f) {
if (f.isDirectory()) {
final File[] clds = f.listFiles();