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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]