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) { | |||||
} | } | ||||
} | } |