From: David S. <ds...@us...> - 2006-11-21 18:53:54
|
Update of /cvsroot/junit/junit/src/junit/tests/runner In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv19867/src/junit/tests/runner Added Files: package-info.java TextRunnerTest.java AllTests.java StackFilterTest.java BaseTestRunnerTest.java TextRunnerSingleMethodTest.java TextFeedbackTest.java Log Message: Created a separate src folder for sources, and adjusted Eclipse classpath and build file accordingly --- NEW FILE: package-info.java --- /** * Tests for the JUnit v3.x runner functionality. */ package junit.tests.runner; --- NEW FILE: TextRunnerTest.java --- package junit.tests.runner; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import junit.framework.TestCase; import junit.framework.TestResult; import junit.framework.TestSuite; public class TextRunnerTest extends TestCase { public void testFailure() throws Exception { execTest("junit.tests.framework.Failure", false); } public void testSuccess() throws Exception { execTest("junit.tests.framework.Success", true); } public void testError() throws Exception { execTest("junit.tests.BogusDude", false); } void execTest(String testClass, boolean success) throws Exception { String java= System.getProperty("java.home")+File.separator+"bin"+File.separator+"java"; String cp= System.getProperty("java.class.path"); //use -classpath for JDK 1.1.7 compatibility String [] cmd= { java, "-classpath", cp, "junit.textui.TestRunner", testClass}; Process p= Runtime.getRuntime().exec(cmd); InputStream i= p.getInputStream(); while((i.read()) != -1) ; //System.out.write(b); assertTrue((p.waitFor() == 0) == success); if (success) assertTrue(p.exitValue() == 0); else assertFalse(p.exitValue() == 0); } public void testRunReturnsResult() { PrintStream oldOut= System.out; System.setOut(new PrintStream ( new OutputStream() { @Override public void write(int arg0) throws IOException { } } )); try { TestResult result= junit.textui.TestRunner.run(new TestSuite()); assertTrue(result.wasSuccessful()); } finally { System.setOut(oldOut); } } } --- NEW FILE: AllTests.java --- package junit.tests.runner; import junit.framework.Test; import junit.framework.TestSuite; /** * TestSuite that runs all the sample tests * */ public class AllTests { public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static Test suite() { // Collect tests manually because we have to test class collection code TestSuite suite= new TestSuite("Framework Tests"); suite.addTestSuite(StackFilterTest.class); suite.addTestSuite(BaseTestRunnerTest.class); suite.addTestSuite(TextFeedbackTest.class); suite.addTestSuite(TextRunnerSingleMethodTest.class); suite.addTestSuite(TextRunnerTest.class); return suite; } static boolean isJDK11() { String version= System.getProperty("java.version"); return version.startsWith("1.1"); } } --- NEW FILE: StackFilterTest.java --- package junit.tests.runner; import java.io.PrintWriter; import java.io.StringWriter; import junit.framework.TestCase; import junit.runner.BaseTestRunner; public class StackFilterTest extends TestCase { String fFiltered; String fUnfiltered; @Override protected void setUp() { StringWriter swin= new StringWriter(); PrintWriter pwin= new PrintWriter(swin); pwin.println("junit.framework.AssertionFailedError"); pwin.println(" at junit.framework.Assert.fail(Assert.java:144)"); pwin.println(" at junit.framework.Assert.assert(Assert.java:19)"); pwin.println(" at junit.framework.Assert.assert(Assert.java:26)"); pwin.println(" at MyTest.f(MyTest.java:13)"); pwin.println(" at MyTest.testStackTrace(MyTest.java:8)"); pwin.println(" at java.lang.reflect.Method.invoke(Native Method)"); pwin.println(" at junit.framework.TestCase.runTest(TestCase.java:156)"); pwin.println(" at junit.framework.TestCase.runBare(TestCase.java:130)"); pwin.println(" at junit.framework.TestResult$1.protect(TestResult.java:100)"); pwin.println(" at junit.framework.TestResult.runProtected(TestResult.java:118)"); pwin.println(" at junit.framework.TestResult.run(TestResult.java:103)"); pwin.println(" at junit.framework.TestCase.run(TestCase.java:121)"); pwin.println(" at junit.framework.TestSuite.runTest(TestSuite.java:157)"); pwin.println(" at junit.framework.TestSuite.run(TestSuite.java, Compiled Code)"); pwin.println(" at junit.swingui.TestRunner$17.run(TestRunner.java:669)"); fUnfiltered= swin.toString(); StringWriter swout= new StringWriter(); PrintWriter pwout= new PrintWriter(swout); pwout.println("junit.framework.AssertionFailedError"); pwout.println(" at MyTest.f(MyTest.java:13)"); pwout.println(" at MyTest.testStackTrace(MyTest.java:8)"); fFiltered= swout.toString(); } public void testFilter() { assertEquals(fFiltered, BaseTestRunner.getFilteredTrace(fUnfiltered)); } } --- NEW FILE: BaseTestRunnerTest.java --- package junit.tests.runner; import junit.framework.Test; import junit.framework.TestCase; import junit.runner.BaseTestRunner; public class BaseTestRunnerTest extends TestCase { public static class MockRunner extends BaseTestRunner { @Override protected void runFailed(String message) { } @Override public void testEnded(String testName) { } @Override public void testFailed(int status, Test test, Throwable t) { } @Override public void testStarted(String testName) { } } public static class NonStatic { public Test suite() { return null; } } public void testInvokeNonStaticSuite() { BaseTestRunner runner= new MockRunner(); runner.getTest("junit.tests.runner.BaseTestRunnerTest$NonStatic"); // Used to throw NullPointerException } } --- NEW FILE: TextRunnerSingleMethodTest.java --- package junit.tests.runner; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import junit.framework.TestCase; import junit.textui.ResultPrinter; import junit.textui.TestRunner; /** * Test invoking a single test method of a TestCase. */ public class TextRunnerSingleMethodTest extends TestCase { static boolean fgWasInvoked; public static class InvocationTest extends TestCase { public void testWasInvoked() { TextRunnerSingleMethodTest.fgWasInvoked= true; } public void testNotInvoked() { fail("Shouldn't get here."); } } public void testSingle() throws Exception { TestRunner t= new TestRunner(); t.setPrinter(new ResultPrinter(new PrintStream(new ByteArrayOutputStream()))); String[] args= { "-m", "junit.tests.runner.TextRunnerSingleMethodTest$InvocationTest.testWasInvoked" }; fgWasInvoked= false; t.start(args); assertTrue(fgWasInvoked); } } --- NEW FILE: TextFeedbackTest.java --- package junit.tests.runner; import java.io.ByteArrayOutputStream; import java.io.OutputStream; import java.io.PrintStream; import junit.framework.AssertionFailedError; import junit.framework.TestCase; import junit.framework.TestResult; import junit.framework.TestSuite; import junit.textui.ResultPrinter; import junit.textui.TestRunner; public class TextFeedbackTest extends TestCase { OutputStream output; TestRunner runner; static class TestResultPrinter extends ResultPrinter { TestResultPrinter(PrintStream writer) { super(writer); } /* Spoof printing time so the tests are deterministic */ @Override protected String elapsedTimeAsString(long runTime) { return "0"; } } public static void main(String[] args) { TestRunner.run(TextFeedbackTest.class); } @Override public void setUp() { output= new ByteArrayOutputStream(); runner= new TestRunner(new TestResultPrinter(new PrintStream(output))); } public void testEmptySuite() { String expected= expected(new String[]{"", "Time: 0", "", "OK (0 tests)", ""}); runner.doRun(new TestSuite()); assertEquals(expected, output.toString()); } public void testOneTest() { String expected= expected(new String[]{".", "Time: 0", "", "OK (1 test)", ""}); TestSuite suite = new TestSuite(); suite.addTest(new TestCase() { @Override public void runTest() {}}); runner.doRun(suite); assertEquals(expected, output.toString()); } public void testTwoTests() { String expected= expected(new String[]{"..", "Time: 0", "", "OK (2 tests)", ""}); TestSuite suite = new TestSuite(); suite.addTest(new TestCase() { @Override public void runTest() {}}); suite.addTest(new TestCase() { @Override public void runTest() {}}); runner.doRun(suite); assertEquals(expected, output.toString()); } public void testFailure() { String expected= expected(new String[]{".F", "Time: 0", "Failures here", "", "FAILURES!!!", "Tests run: 1, Failures: 1, Errors: 0", ""}); ResultPrinter printer= new TestResultPrinter(new PrintStream(output)) { @Override public void printFailures(TestResult result) { getWriter().println("Failures here"); } }; runner.setPrinter(printer); TestSuite suite = new TestSuite(); suite.addTest(new TestCase() { @Override public void runTest() {throw new AssertionFailedError();}}); runner.doRun(suite); assertEquals(expected, output.toString()); } public void testError() { String expected= expected(new String[]{".E", "Time: 0", "Errors here", "", "FAILURES!!!", "Tests run: 1, Failures: 0, Errors: 1", ""}); ResultPrinter printer= new TestResultPrinter(new PrintStream(output)) { @Override public void printErrors(TestResult result) { getWriter().println("Errors here"); } }; runner.setPrinter(printer); TestSuite suite = new TestSuite(); suite.addTest(new TestCase() { @Override public void runTest() throws Exception {throw new Exception();}}); runner.doRun(suite); assertEquals(expected, output.toString()); } private String expected(String[] lines) { OutputStream expected= new ByteArrayOutputStream(); PrintStream expectedWriter= new PrintStream(expected); for (int i= 0; i < lines.length; i++) expectedWriter.println(lines[i]); return expected.toString(); } } |