bodewig 2005/03/24 00:29:42
Modified: . build.xml
src/etc/testcases/taskdefs/optional junit.xml
src/testcases/org/apache/tools/ant/taskdefs/optional/junit
JUnitTaskTest.java
Added: src/testcases/org/apache/tools/ant/taskdefs/optional/junit
TestFormatter.java
Log:
Unit Test for PR 32973
Revision Changes Path
1.466 +1 -0 ant/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/ant/build.xml,v
retrieving revision 1.465
retrieving revision 1.466
diff -u -r1.465 -r1.466
--- build.xml 23 Mar 2005 17:44:06 -0000 1.465
+++ build.xml 24 Mar 2005 08:29:42 -0000 1.466
@@ -1522,6 +1522,7 @@
<!-- helper classes, not testcases -->
<exclude name="org/example/**"/>
<exclude name="${taskdefs.package}/TaskdefTest*Task.java"/>
+ <exclude name="${optional.package}/junit/TestFormatter.java"/>
<!-- interactive tests -->
<exclude name="${taskdefs.package}/TestProcess.java"/>
1.5 +51 -0 ant/src/etc/testcases/taskdefs/optional/junit.xml
Index: junit.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/junit.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- junit.xml 6 Oct 2004 15:01:55 -0000 1.4
+++ junit.xml 24 Mar 2005 08:29:42 -0000 1.5
@@ -9,6 +9,7 @@
<target name="cleanup">
<delete file="testlog.txt"/>
+ <delete dir="out"/>
</target>
<target name="testForkedOutput">
@@ -92,4 +93,54 @@
<classpath refid="test"/>
</junit>
</target>
+
+ <target name="testBatchTestForkOnceToDir">
+ <mkdir dir="out"/>
+ <junit fork="true" forkmode="once">
+ <formatter type="xml"/>
+ <classpath refid="test"/>
+ <batchtest todir="out">
+ <fileset dir="../../../../testcases">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <!-- Bugzilla Report 32973 -->
+ <target name="testBatchTestForkOnceExtension">
+ <mkdir dir="out"/>
+ <junit fork="true" forkmode="once">
+ <formatter type="xml" extension=".foo"/>
+ <classpath refid="test"/>
+ <batchtest todir="out">
+ <fileset dir="../../../../testcases">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="testBatchTestForkOnceCustomFormatter">
+ <mkdir dir="out"/>
+ <junit fork="true" forkmode="once">
+ <formatter extension="foo"
+ classname="org.apache.tools.ant.taskdefs.optional.junit.TestFormatter"/>
+ <classpath refid="test"/>
+ <batchtest todir="out">
+ <fileset dir="../../../../testcases">
+ <include
+ name="org/apache/tools/ant/taskdefs/optional/junit/*Test.java"/>
+ <exclude name="**/JUnitTaskTest.java"/>
+ <exclude name="**/JUnitReportTest.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
</project>
\ No newline at end of file
1.3 +29 -1 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
Index: JUnitTaskTest.java
===================================================================
RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JUnitTaskTest.java 6 Oct 2004 15:01:55 -0000 1.2
+++ JUnitTaskTest.java 24 Mar 2005 08:29:42 -0000 1.3
@@ -1,5 +1,5 @@
/*
- * Copyright 2004 The Apache Software Foundation
+ * Copyright 2004-2005 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -77,6 +77,34 @@
assertOutput();
}
+ public void testBatchTestForkOnceToDir() {
+ assertResultFilesExist("testBatchTestForkOnceToDir", ".xml");
+ }
+
+ /** Bugzilla Report 32973 */
+ public void testBatchTestForkOnceExtension() {
+ assertResultFilesExist("testBatchTestForkOnceExtension", ".foo");
+ }
+
+ public void testBatchTestForkOnceCustomFormatter() {
+ assertResultFilesExist("testBatchTestForkOnceCustomFormatter", "foo");
+ }
+
+ private void assertResultFilesExist(String target, String extension) {
+ executeTarget(target);
+ assertResultFileExists("JUnitClassLoader", extension);
+ assertResultFileExists("JUnitTestRunner", extension);
+ assertResultFileExists("JUnitVersionHelper", extension);
+ }
+
+ private void assertResultFileExists(String classNameFragment, String ext) {
+ assertTrue("result for " + classNameFragment + "Test" + ext + " exists",
+ getProject().resolveFile("out/TEST-org.apache.tools.ant."
+ + "taskdefs.optional.junit."
+ + classNameFragment + "Test" + ext)
+ .exists());
+ }
+
private void assertNoPrint(String result, String where) {
assertTrue(where + " '" + result + "' must not contain print statement",
result.indexOf("print to System.") == -1);
1.1 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/TestFormatter.java
Index: TestFormatter.java
===================================================================
/*
* Copyright 2005 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.IOException;
import java.io.OutputStream;
import java.text.NumberFormat;
import junit.framework.AssertionFailedError;
import junit.framework.Test;
import org.apache.tools.ant.BuildException;
public class TestFormatter implements JUnitResultFormatter {
private static final byte[] grafitto = new byte[] {
(byte) 'T', (byte) 'e', (byte) 's', (byte) 't', (byte) 'F', (byte) 'o',
(byte) 'r', (byte) 'm', (byte) 'a', (byte) 't', (byte) 't', (byte) 'e',
(byte) 'r', (byte) ' ', (byte) 'w', (byte) 'a', (byte) 's', (byte) ' ',
(byte) 'h', (byte) 'e', (byte) 'r', (byte) 'e', 10
};
/**
* Where to write the log to.
*/
private OutputStream out;
/**
* Empty
*/
public TestFormatter() {
}
/**
* Empty
*/
public void startTestSuite(JUnitTest suite) {
}
/**
* Empty
*/
public void startTest(Test t) {
}
/**
* Empty
*/
public void endTest(Test test) {
}
/**
* Empty
*/
public void addFailure(Test test, Throwable t) {
}
/**
* Empty
*/
public void addFailure(Test test, AssertionFailedError t) {
}
/**
* Empty
*/
public void addError(Test test, Throwable t) {
}
/**
* Empty
*/
public void setSystemOutput(String out) {
}
/**
* Empty
*/
public void setSystemError(String err) {
}
public void setOutput(OutputStream out) {
this.out = out;
}
public void endTestSuite(JUnitTest suite) throws BuildException {
if (out != null) {
try {
out.write(grafitto);
out.flush();
} catch (IOException ioex) {
throw new BuildException("Unable to write output", ioex);
} finally {
if (out != System.out && out != System.err) {
try {
out.close();
} catch (IOException e) {
// ignore
}
}
}
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
|