git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271041 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -56,6 +56,9 @@ package org.apache.tools.ant.taskdefs.optional.junit; | |||||
| import java.util.Properties; | import java.util.Properties; | ||||
| import java.util.Vector; | import java.util.Vector; | ||||
| import org.apache.tools.ant.taskdefs.optional.junit.remote.TestRunEvent; | |||||
| import org.apache.tools.ant.taskdefs.optional.junit.remote.TestRunListener; | |||||
| /** | /** | ||||
| * A TestRunListener that stores all events for later check. | * A TestRunListener that stores all events for later check. | ||||
| * | * | ||||
| @@ -68,73 +71,46 @@ import java.util.Vector; | |||||
| */ | */ | ||||
| public class TestRunRecorder implements TestRunListener { | public class TestRunRecorder implements TestRunListener { | ||||
| /** wrapper around failure info */ | |||||
| public static class TestFailedInfo { | |||||
| public int status; | |||||
| public String testname; | |||||
| public String trace; | |||||
| } | |||||
| /** wrapper around output info */ | |||||
| public static class TestOutputInfo { | |||||
| public String testname; | |||||
| public String line; | |||||
| } | |||||
| // all these are public in order for testcases to have access quickly | // all these are public in order for testcases to have access quickly | ||||
| public Vector testStarted = new Vector(); | public Vector testStarted = new Vector(); | ||||
| public Vector testEnded = new Vector(); | public Vector testEnded = new Vector(); | ||||
| public Vector testFailed = new Vector(); | public Vector testFailed = new Vector(); | ||||
| public Vector testStdout = new Vector(); | |||||
| public Vector testStderr = new Vector(); | |||||
| public Vector sysprops = new Vector(); | |||||
| public Vector testError = new Vector(); | |||||
| public Vector runStarted = new Vector(); | public Vector runStarted = new Vector(); | ||||
| public Vector runEnded = new Vector(); | public Vector runEnded = new Vector(); | ||||
| public Vector runStopped = new Vector(); | public Vector runStopped = new Vector(); | ||||
| public void onTestStarted(String testname) { | |||||
| testStarted.addElement(testname); | |||||
| public void onTestStarted(TestRunEvent evt) { | |||||
| testStarted.addElement(evt); | |||||
| } | } | ||||
| public void onTestEnded(String testname) { | |||||
| testEnded.addElement(testname); | |||||
| public void onTestEnded(TestRunEvent evt) { | |||||
| testEnded.addElement(evt); | |||||
| } | } | ||||
| public void onTestFailed(int status, String testname, String trace) { | |||||
| TestFailedInfo info = new TestFailedInfo(); | |||||
| info.status = status; | |||||
| info.testname = testname; | |||||
| info.trace = trace; | |||||
| testFailed.addElement(info); | |||||
| public void onTestFailure(TestRunEvent evt) { | |||||
| testFailed.addElement(evt); | |||||
| } | } | ||||
| public void onTestStdOutLine(String testname, String line) { | |||||
| TestOutputInfo info = new TestOutputInfo(); | |||||
| info.testname = testname; | |||||
| info.line = line; | |||||
| testStdout.addElement(info); | |||||
| public void onRunStarted(TestRunEvent evt) { | |||||
| runStarted.addElement(evt); | |||||
| } | } | ||||
| public void onTestStdErrLine(String testname, String line) { | |||||
| TestOutputInfo info = new TestOutputInfo(); | |||||
| info.testname = testname; | |||||
| info.line = line; | |||||
| testStderr.addElement(info); | |||||
| public void onRunEnded(TestRunEvent evt) { | |||||
| runEnded.addElement(evt); | |||||
| } | } | ||||
| public void onTestRunSystemProperties(Properties props) { | |||||
| sysprops.addElement(props); | |||||
| public void onRunStopped(TestRunEvent evt) { | |||||
| runStopped.addElement(evt); | |||||
| } | } | ||||
| public void onTestRunStarted(int testcount) { | |||||
| runStarted.addElement(new Integer(testcount)); | |||||
| public void onSuiteStarted(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestRunEnded(long elapsedtime) { | |||||
| runEnded.addElement(new Long(elapsedtime)); | |||||
| public void onSuiteEnded(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestRunStopped(long elapsedtime) { | |||||
| runStopped.addElement(new Long(elapsedtime)); | |||||
| public void onTestError(TestRunEvent evt) { | |||||
| testError.addElement( evt ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -62,7 +62,7 @@ import java.util.Properties; | |||||
| import junit.framework.TestCase; | import junit.framework.TestCase; | ||||
| import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener; | |||||
| import org.apache.tools.ant.taskdefs.optional.junit.remote.TestRunListener; | |||||
| import org.apache.tools.ant.taskdefs.optional.junit.TestRunRecorder; | import org.apache.tools.ant.taskdefs.optional.junit.TestRunRecorder; | ||||
| /** | /** | ||||
| @@ -72,11 +72,7 @@ import org.apache.tools.ant.taskdefs.optional.junit.TestRunRecorder; | |||||
| */ | */ | ||||
| public class MessageReaderTest extends TestCase { | public class MessageReaderTest extends TestCase { | ||||
| protected ByteArrayOutputStream out; | |||||
| protected MessageReader reader; | |||||
| protected MessageWriter writer; | |||||
| private EventDispatcher dispatcher; | |||||
| protected TestRunRecorder recorder; | protected TestRunRecorder recorder; | ||||
| @@ -85,65 +81,57 @@ public class MessageReaderTest extends TestCase { | |||||
| } | } | ||||
| protected void setUp() { | protected void setUp() { | ||||
| out = new ByteArrayOutputStream(); | |||||
| writer = new MessageWriter(out); | |||||
| reader = new MessageReader(); | |||||
| dispatcher = new EventDispatcher(); | |||||
| recorder = new TestRunRecorder(); | recorder = new TestRunRecorder(); | ||||
| reader.addListener( recorder ); | |||||
| dispatcher.addListener( recorder ); | |||||
| } | } | ||||
| public void testTestRunStarted() throws Exception { | public void testTestRunStarted() throws Exception { | ||||
| writer.notifyTestRunStarted(9999); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals(new Integer(9999), recorder.runStarted.elementAt(0)); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.RUN_STARTED); | |||||
| dispatcher.fireRunStarted( evt ); | |||||
| assertEquals(evt, recorder.runStarted.elementAt(0)); | |||||
| } | } | ||||
| public void testTestStarted() throws Exception { | public void testTestStarted() throws Exception { | ||||
| writer.notifyTestStarted("xxxxxx"); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals("xxxxxx", recorder.testStarted.elementAt(0)); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.TEST_STARTED, "xxxx"); | |||||
| dispatcher.fireTestStarted( evt ); | |||||
| assertEquals(evt, recorder.testStarted.elementAt(0)); | |||||
| } | } | ||||
| public void testTestEnded() throws Exception { | public void testTestEnded() throws Exception { | ||||
| writer.notifyTestEnded("xxxxxx"); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals("xxxxxx", recorder.testEnded.elementAt(0)); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.TEST_ENDED, "xxxx"); | |||||
| dispatcher.fireTestEnded( evt ); | |||||
| assertEquals(evt, recorder.testEnded.elementAt(0)); | |||||
| } | } | ||||
| public void testTestFailedError() throws Exception { | public void testTestFailedError() throws Exception { | ||||
| writer.notifyTestFailed(TestRunListener.STATUS_ERROR, "xxxxxx", "1\n2\n3\n4\n5"); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| TestRunRecorder.TestFailedInfo info = (TestRunRecorder.TestFailedInfo)recorder.testFailed.elementAt(0); | |||||
| assertEquals("xxxxxx", info.testname); | |||||
| assertEquals(TestRunListener.STATUS_ERROR, info.status); | |||||
| assertEquals("1\n2\n3\n4\n5", info.trace); | |||||
| Exception e = new Exception("error"); | |||||
| e.fillInStackTrace(); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.TEST_ERROR, "xxxx", e); | |||||
| dispatcher.fireTestError( evt ); | |||||
| assertEquals(evt, recorder.testError.elementAt(0)); | |||||
| } | } | ||||
| public void testTestFailedFailure() throws Exception { | public void testTestFailedFailure() throws Exception { | ||||
| writer.notifyTestFailed(TestRunListener.STATUS_FAILURE, "xxxxxx", "1\n2\n3\n4\n5"); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| TestRunRecorder.TestFailedInfo info = (TestRunRecorder.TestFailedInfo)recorder.testFailed.elementAt(0); | |||||
| assertEquals("xxxxxx", info.testname); | |||||
| assertEquals(TestRunListener.STATUS_FAILURE, info.status); | |||||
| assertEquals("1\n2\n3\n4\n5", info.trace); | |||||
| Exception e = new Exception("error"); | |||||
| e.fillInStackTrace(); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.TEST_FAILURE, "xxxx", e); | |||||
| dispatcher.fireTestFailure( evt ); | |||||
| assertEquals(evt, recorder.testFailed.elementAt(0)); | |||||
| } | } | ||||
| public void testTestRunEnded() throws Exception { | public void testTestRunEnded() throws Exception { | ||||
| writer.notifyTestRunEnded(999999); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals(new Long(999999), recorder.runEnded.elementAt(0)); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.RUN_ENDED); | |||||
| dispatcher.fireRunEnded( evt ); | |||||
| assertEquals(evt, recorder.runEnded.elementAt(0)); | |||||
| } | } | ||||
| public void testTestRunStopped() throws Exception { | public void testTestRunStopped() throws Exception { | ||||
| writer.notifyTestRunStopped(999999); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals(new Long(999999), recorder.runStopped.elementAt(0)); | |||||
| TestRunEvent evt = new TestRunEvent(new Integer(99), TestRunEvent.RUN_STOPPED); | |||||
| dispatcher.fireRunStopped( evt ); | |||||
| assertEquals(evt, recorder.runStopped.elementAt(0)); | |||||
| } | } | ||||
| public void testTestRunSystemProperties() throws Exception { | |||||
| writer.notifySystemProperties(); | |||||
| reader.process( new ByteArrayInputStream(out.toByteArray()) ); | |||||
| assertEquals(System.getProperties(), recorder.sysprops.elementAt(0)); | |||||
| } | |||||
| } | } | ||||
| @@ -61,7 +61,7 @@ import junit.framework.TestSuite; | |||||
| import junit.framework.TestListener; | import junit.framework.TestListener; | ||||
| import org.apache.tools.ant.taskdefs.optional.junit.formatter.PlainFormatter; | import org.apache.tools.ant.taskdefs.optional.junit.formatter.PlainFormatter; | ||||
| import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener; | |||||
| import org.apache.tools.ant.taskdefs.optional.junit.remote.TestRunListener; | |||||
| import org.apache.tools.ant.taskdefs.optional.junit.TestRunRecorder; | import org.apache.tools.ant.taskdefs.optional.junit.TestRunRecorder; | ||||
| /** | /** | ||||
| @@ -117,7 +117,7 @@ public class TestRunnerTest extends TestCase | |||||
| // server.addListener( new PlainFormatter() ); | // server.addListener( new PlainFormatter() ); | ||||
| runner.run(); | runner.run(); | ||||
| synchronized(this){ while (!done){ wait(); } } | synchronized(this){ while (!done){ wait(); } } | ||||
| assertEquals(new Integer(3), recorder.runStarted.elementAt(0)); | |||||
| assertEquals(1, recorder.runStarted.size()); | |||||
| /* | /* | ||||
| assertTrue(recorder.runStarted.elementAt(0).toSt("testSuccess")); | assertTrue(recorder.runStarted.elementAt(0).toSt("testSuccess")); | ||||
| assertTrue(started.contains("testFailure")); | assertTrue(started.contains("testFailure")); | ||||
| @@ -148,32 +148,33 @@ public class TestRunnerTest extends TestCase | |||||
| } | } | ||||
| // TestRunListener implementation | // TestRunListener implementation | ||||
| public void onTestStarted(String testname) { | |||||
| public void onTestStarted(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestEnded(String testname) { | |||||
| public void onTestEnded(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestFailed(int status, String testname, String trace) { | |||||
| public void onTestFailure(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestRunStarted(int count) { | |||||
| public void onRunStarted(TestRunEvent count) { | |||||
| } | } | ||||
| public void onTestRunEnded(long elapsedtime) { | |||||
| public void onRunEnded(TestRunEvent evt) { | |||||
| synchronized(this){ | synchronized(this){ | ||||
| done = true; | done = true; | ||||
| notify(); | notify(); | ||||
| } | } | ||||
| } | } | ||||
| public void onTestRunStopped(long elapsedtime) { | |||||
| public void onRunStopped(TestRunEvent evt) { | |||||
| synchronized(this){ | synchronized(this){ | ||||
| done = true; | done = true; | ||||
| notify(); | notify(); | ||||
| } | } | ||||
| } | } | ||||
| public void onTestRunSystemProperties(Properties props) { | |||||
| public void onSuiteStarted(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestStdOutLine(String testname, String line) { | |||||
| public void onSuiteEnded(TestRunEvent evt) { | |||||
| } | } | ||||
| public void onTestStdErrLine(String testname, String line) { | |||||
| public void onTestError(TestRunEvent evt) { | |||||
| } | } | ||||
| } | } | ||||