From b47a31a21065882b7b6279ed634fc340448feeef Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 24 Mar 2005 08:35:49 +0000 Subject: [PATCH] Don't ignore the extension attribute for formatters when forking multiple JUnit tests in a single VM. PR: 32973 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278057 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 3 +++ .../ant/taskdefs/optional/junit/JUnitTask.java | 6 +++++- .../taskdefs/optional/junit/JUnitTestRunner.java | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/WHATSNEW b/WHATSNEW index 44ba59253..ebe5c8d5f 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -450,6 +450,9 @@ Fixed bugs: * failed to process file-hierarchies of more than one level if scanincludeddirectories was true. Bugzilla Report 24866. +* forkmode="perBatch" or "once" would ignore extension attributes that + had been specified for s. Bugzilla Report 32973. + Changes from Ant 1.6.1 to Ant 1.6.2 =================================== 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 6e97f6dbe..38f68858f 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 @@ -1183,7 +1183,11 @@ public class JUnitTask extends Task { */ protected File getOutput(FormatterElement fe, JUnitTest test) { if (fe.getUseFile()) { - String filename = test.getOutfile() + fe.getExtension(); + String base = test.getOutfile(); + if (base == null) { + base = JUnitTestRunner.IGNORED_FILE_NAME; + } + String filename = base + fe.getExtension(); File destFile = new File(test.getTodir(), filename); String absFilename = destFile.getAbsolutePath(); return getProject().resolveFile(absFilename); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java index 1c022a971..5262b661e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java @@ -79,6 +79,15 @@ public class JUnitTestRunner implements TestListener { */ public static final int ERRORS = 2; + /** + * Used in formatter arguments as a placeholder for the basename + * of the output file (which gets replaced by a test specific + * output file name later). + * + * @since Ant 1.6.3 + */ + public static final String IGNORED_FILE_NAME = "IGNORETHIS"; + /** * Holds the registered formatters. */ @@ -599,6 +608,13 @@ public class JUnitTestRunner implements TestListener { fe.setUseFile(true); if (!multipleTests) { fe.setOutfile(new File(line.substring(pos + 1))); + } else { + int fName = line.indexOf(IGNORED_FILE_NAME); + if (fName > -1) { + fe.setExtension(line + .substring(fName + + IGNORED_FILE_NAME.length())); + } } } fromCmdLine.addElement(fe);