Browse Source

Unit Test for PR 32973

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278056 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 20 years ago
parent
commit
53bcbf1d66
4 changed files with 191 additions and 1 deletions
  1. +1
    -0
      build.xml
  2. +51
    -0
      src/etc/testcases/taskdefs/optional/junit.xml
  3. +29
    -1
      src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java
  4. +110
    -0
      src/testcases/org/apache/tools/ant/taskdefs/optional/junit/TestFormatter.java

+ 1
- 0
build.xml View File

@@ -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"/>


+ 51
- 0
src/etc/testcases/taskdefs/optional/junit.xml View File

@@ -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>

+ 29
- 1
src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java View File

@@ -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 @@ public class JUnitTaskTest extends BuildFileTest {
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);


+ 110
- 0
src/testcases/org/apache/tools/ant/taskdefs/optional/junit/TestFormatter.java View File

@@ -0,0 +1,110 @@
/*
* 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
}
}
}
}
}
}

Loading…
Cancel
Save