[P-unit-devel] SF.net SVN: p-unit: [29] trunk/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-05-12 22:14:11
|
Revision: 29
http://p-unit.svn.sourceforge.net/p-unit/?rev=29&view=rev
Author: zhanghuangzhu
Date: 2007-05-12 15:14:09 -0700 (Sat, 12 May 2007)
Log Message:
-----------
Andrew Zhang: Implemented logging system based on event.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/TestMethodRunner.java
trunk/punit/src/org/punit/type/PUnitTest.java
trunk/punit/src/org/punit/util/LoggerUtil.java
trunk/punit/src/org/punit/watcher/MemoryWatcher.java
trunk/punit/src/org/punit/watcher/TimeWatcher.java
trunk/punit/src/org/punit/watcher/Watcher.java
trunk/punit.test/src/tests/api/org/punit/logger/PUnitLoggerTest.java
trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestSample.java
trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java
trunk/punit.test/src/tests/sample/testcase/ConcurrentParameterizableTestSample.java
trunk/punit.test/src/tests/sample/testcase/ConcurrentTestSample.java
trunk/punit.test/src/tests/sample/testcase/JUnitTestSample.java
trunk/punit.test/src/tests/sample/testcase/PUnitTestCaseSample.java
trunk/punit.test/src/tests/sample/testcase/ParameterizableTestSample.java
trunk/punit.test/src/tests/sample/testcase/SimpleTestSample.java
Added Paths:
-----------
trunk/punit/src/org/punit/events/
trunk/punit/src/org/punit/events/ClassEvent.java
trunk/punit/src/org/punit/events/ClassEventListener.java
trunk/punit/src/org/punit/events/MethodEvent.java
trunk/punit/src/org/punit/events/MethodEventListener.java
trunk/punit/src/org/punit/events/RunnerEvent.java
trunk/punit/src/org/punit/events/RunnerEventListener.java
trunk/punit/src/org/punit/events/WatcherEvent.java
trunk/punit/src/org/punit/events/WatcherEventListener.java
trunk/punit/src/org/punit/logger/LogListener.java
Removed Paths:
-------------
trunk/punit/src/org/punit/logger/PUnitLogger.java
Added: trunk/punit/src/org/punit/events/ClassEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/ClassEvent.java (rev 0)
+++ trunk/punit/src/org/punit/events/ClassEvent.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,10 @@
+package org.punit.events;
+
+
+
+public interface ClassEvent {
+
+ public void addClassEventListener(ClassEventListener listener);
+
+ public void removeClassEventListener(ClassEventListener listener);
+}
Added: trunk/punit/src/org/punit/events/ClassEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/ClassEventListener.java (rev 0)
+++ trunk/punit/src/org/punit/events/ClassEventListener.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,11 @@
+package org.punit.events;
+
+import java.util.*;
+
+public interface ClassEventListener extends EventListener {
+
+ public void onClassStart(Class clazz);
+
+ public void onClassEnd(Class clazz);
+
+}
Added: trunk/punit/src/org/punit/events/MethodEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/MethodEvent.java (rev 0)
+++ trunk/punit/src/org/punit/events/MethodEvent.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,10 @@
+package org.punit.events;
+
+
+
+public interface MethodEvent {
+
+ public void addMethodEventListener(MethodEventListener listener);
+
+ public void removeMethodEventListener(MethodEventListener listener);
+}
Added: trunk/punit/src/org/punit/events/MethodEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/MethodEventListener.java (rev 0)
+++ trunk/punit/src/org/punit/events/MethodEventListener.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,12 @@
+package org.punit.events;
+
+import java.lang.reflect.*;
+import java.util.*;
+
+public interface MethodEventListener extends EventListener {
+
+ public void onMethodStart(Method method);
+
+ public void onMethodEnd(Method method, Throwable t);
+
+}
Added: trunk/punit/src/org/punit/events/RunnerEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/RunnerEvent.java (rev 0)
+++ trunk/punit/src/org/punit/events/RunnerEvent.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,10 @@
+package org.punit.events;
+
+
+
+public interface RunnerEvent {
+
+ public void addRunnerEventListener(RunnerEventListener listener);
+
+ public void removeRunnerEventListener(RunnerEventListener listener);
+}
Added: trunk/punit/src/org/punit/events/RunnerEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/RunnerEventListener.java (rev 0)
+++ trunk/punit/src/org/punit/events/RunnerEventListener.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,11 @@
+package org.punit.events;
+
+import java.util.*;
+
+public interface RunnerEventListener extends EventListener {
+
+ public void onRunnerStart(Class clazz);
+
+ public void onRunnerEnd(Class clazz);
+
+}
Added: trunk/punit/src/org/punit/events/WatcherEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/WatcherEvent.java (rev 0)
+++ trunk/punit/src/org/punit/events/WatcherEvent.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,8 @@
+package org.punit.events;
+
+public interface WatcherEvent {
+
+ public void addWatcherEventListener(WatcherEventListener listener);
+
+ public void removeWatcherEventListener(WatcherEventListener listener);
+}
Added: trunk/punit/src/org/punit/events/WatcherEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/WatcherEventListener.java (rev 0)
+++ trunk/punit/src/org/punit/events/WatcherEventListener.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,16 @@
+package org.punit.events;
+
+import java.util.*;
+
+import org.punit.watcher.*;
+
+public interface WatcherEventListener extends EventListener {
+ public void onWatchersStart();
+
+ public void onWatcherStart(Watcher watch);
+
+ public void onWatcherEnd(Watcher watch);
+
+ public void onWatchersEnd();
+
+}
Copied: trunk/punit/src/org/punit/logger/LogListener.java (from rev 28, trunk/punit/src/org/punit/logger/PUnitLogger.java)
===================================================================
--- trunk/punit/src/org/punit/logger/LogListener.java (rev 0)
+++ trunk/punit/src/org/punit/logger/LogListener.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -0,0 +1,151 @@
+package org.punit.logger;
+
+import java.io.*;
+import java.lang.reflect.*;
+import java.util.*;
+import java.util.logging.*;
+
+import org.punit.events.*;
+import org.punit.util.*;
+import org.punit.watcher.*;
+
+public class LogListener implements RunnerEventListener, ClassEventListener,
+ MethodEventListener, WatcherEventListener {
+
+ Summary _summary = new Summary();
+
+ private boolean _watchersStart;
+
+ public void onRunnerStart(Class clazz) {
+ _summary.start();
+ }
+
+ public void onRunnerEnd(Class clazz) {
+ _summary.stop();
+ _summary.log(this);
+ ;
+ }
+
+ public void onClassStart(Class clazz) {
+ log(clazz.getName() + "\n", Level.INFO);
+ }
+
+ public void onClassEnd(Class clazz) {
+
+ }
+
+ public void onMethodStart(Method method) {
+ log(LoggerUtil.simpleMethodName(method), Level.INFO);
+ }
+
+ public void onMethodEnd(Method method, Throwable t) {
+ _summary.countMethod();
+ log("\n", Level.INFO);
+ if (t != null) {
+ log(t.toString() + "\n", Level.INFO);
+ _summary.addThrowable(t);
+ }
+ }
+
+ public void onWatchersStart() {
+ _watchersStart = true;
+ log(" - [", Level.FINE);
+ }
+
+ public void onWatcherStart(Watcher watch) {
+ }
+
+ public void onWatchersEnd() {
+ log("]", Level.FINE);
+ }
+
+ public void onWatcherEnd(Watcher watch) {
+ String watchValue = watch.stringValue();
+ String s = _watchersStart ? watchValue : "," + watch.stringValue();
+ _watchersStart = false;
+ log(s, Level.FINE);
+ }
+
+ public PrintStream _ps = System.err;
+
+ public Level _level = Level.FINE;
+
+ public void setLogLevel(Level level) {
+ _level = level;
+ }
+
+ public void setOutputStream(PrintStream ps) {
+ _ps = ps;
+ }
+
+ public void log(String message, Level level) {
+ if (_ps == null) {
+ return;
+ }
+ if (level.intValue() < _level.intValue()) {
+ return;
+ }
+ _ps.print(message);
+ _ps.flush();
+ }
+
+ static class Summary {
+ private int _methodCount;
+
+ private TimeWatcher _timeWatcher = new TimeWatcher();
+
+ private List _throwableList = new ArrayList();
+
+ public void countMethod() {
+ ++_methodCount;
+ }
+
+ public void start() {
+ _timeWatcher.start();
+ }
+
+ public void stop() {
+ _timeWatcher.stop();
+ }
+
+ /*
+ * The format is:
+ *
+ * Total: 4 (GREEN) - 156ms
+ *
+ * or:
+ *
+ * Total: 2 (RED) - 120ms
+ * 1)java.lang.IllegalArgumentException
+ * at tests.SimpleTestSample.test1(SimpleTestSample.java:20)
+ * 2)java.lang.NullPointerException
+ * at tests.SimpleTestSample.test2(SimpleTestSample.java:24)
+ *
+ */
+ public void log(final LogListener logger) {
+ StringBuffer sb = new StringBuffer("Total: ");
+ sb.append(_methodCount);
+ int failures = _throwableList.size();
+ if (failures == 0) {
+ sb.append(" (GREEN) - ");
+ } else {
+ sb.append(" (RED) - ");
+ }
+ sb.append(_timeWatcher.stringValue());
+ sb.append("\n");
+ logger.log(sb.toString(), Level.INFO);
+ VisitorUtil.traverse(_throwableList.iterator(), new Visitor() {
+ int count = 0;
+
+ public void visit(Object obj) {
+ logger.log(++count + ")", Level.INFO);
+ ((Throwable) obj).printStackTrace(logger._ps);
+ }
+ });
+ }
+
+ public void addThrowable(Throwable t) {
+ _throwableList.add(t);
+ }
+ }
+}
Deleted: trunk/punit/src/org/punit/logger/PUnitLogger.java
===================================================================
--- trunk/punit/src/org/punit/logger/PUnitLogger.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/logger/PUnitLogger.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,39 +0,0 @@
-package org.punit.logger;
-
-import java.io.*;
-import java.util.logging.*;
-
-public class PUnitLogger {
-
- public static PrintStream _ps;
-
- public static Level _level;
-
- static {
- reset();
- }
-
- public static void reset() {
- _ps = System.err;
- _level = Level.FINE;
- }
-
- public static void setLogLevel(Level level) {
- _level = level;
- }
-
- public static void setOutputStream(PrintStream ps) {
- _ps = ps;
- }
-
- public static void log(String message, Level level) {
- if(_ps == null) {
- return;
- }
- if(level.intValue() < _level.intValue()) {
- return;
- }
- _ps.print(message);
- _ps.flush();
- }
-}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,8 +1,11 @@
package org.punit.runner;
import java.lang.reflect.*;
+import java.util.*;
import org.punit.builder.*;
+import org.punit.events.*;
+import org.punit.logger.*;
import org.punit.result.*;
import org.punit.runner.method.*;
import org.punit.type.*;
@@ -14,32 +17,76 @@
private TestMethodBuilder _testMethodBuilder;
private TestMethodRunner _testMethodRunner;
+
+ private List _runnerEventListeners = new ArrayList();
+
+ private List _classEventListeners = new ArrayList();
+
+ private LogListener _logger = new LogListener();
public PUnitAbstractRunner(TestSuiteBuilder testSuiteBuiler, TestMethodBuilder testMethodBuilder, TestMethodRunner testMethodRunner) {
_testSuiteBuiler = testSuiteBuiler;
_testMethodBuilder = testMethodBuilder;
_testMethodRunner = testMethodRunner;
+ registerLogListener();
}
public Result run(Class clazz) {
+ onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
for (int i = 0; i < testClasses.length; ++i) {
runTestClass((Class)testClasses[i]);
}
+ onRunnerEnd(clazz);
return null;
}
+ private void onRunnerStart(final Class clazz) {
+ VisitorUtil.traverse(_runnerEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((RunnerEventListener)obj).onRunnerStart(clazz);
+ }
+ });
+ }
+
+ private void onRunnerEnd(final Class clazz) {
+ VisitorUtil.traverse(_runnerEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((RunnerEventListener)obj).onRunnerEnd(clazz);
+ }
+ });
+ }
+
private void runTestClass(Class clazz) {
if(!accept(clazz)) {
return;
}
+ onClassStart(clazz);
Object[] testMethods = buildTestMethod(clazz);
for(int i = 0; i < testMethods.length; ++i) {
Method method = (Method) testMethods[i];
runTestMethod(clazz, method);
}
+ onClassEnd(clazz);
}
+ private void onClassStart(final Class clazz) {
+ VisitorUtil.traverse(_classEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((ClassEventListener)obj).onClassStart(clazz);
+ }
+ });
+ }
+
+ private void onClassEnd(final Class clazz) {
+ VisitorUtil.traverse(_classEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((ClassEventListener)obj).onClassEnd(clazz);
+ }
+ });
+ }
+
+
private void runTestMethod(Class clazz, Method method) {
// TODO: add run result to the test result
Object testInstance = ReflectionUtil.newInstance(clazz);
@@ -78,4 +125,48 @@
public abstract boolean accept(Class testClass);
+ public TestMethodBuilder testMethodBuilder() {
+ return _testMethodBuilder;
+ }
+
+ public TestMethodRunner testMethodRunner() {
+ return _testMethodRunner;
+ }
+
+ public TestSuiteBuilder testSuiteBuiler() {
+ return _testSuiteBuiler;
+ }
+
+ public void addRunnerEventListener(RunnerEventListener listener) {
+ _runnerEventListeners.add(listener);
+ }
+
+ public void removeRunnerEventListener(RunnerEventListener listener) {
+ _runnerEventListeners.remove(listener);
+ }
+
+ public void addClassEventListener(ClassEventListener listener) {
+ _classEventListeners.add(listener);
+ }
+
+ public void removeClassEventListener(ClassEventListener listener) {
+ _classEventListeners.remove(listener);
+ }
+
+ private void registerLogListener() {
+ addRunnerEventListener(_logger);
+ addClassEventListener(_logger);
+ _testMethodRunner.addMethodEventListener(_logger);
+ _testMethodRunner.addWatcherEventListener(_logger);
+ }
+
+ public void removeLogListener() {
+ removeClassEventListener(_logger);
+ _testMethodRunner.removeMethodEventListener(_logger);
+ _testMethodRunner.removeWatcherEventListener(_logger);
+ }
+
+ public LogListener logListener() {
+ return _logger;
+ }
}
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,7 +1,8 @@
package org.punit.runner;
+import org.punit.events.*;
import org.punit.result.*;
-public interface Runner {
+public interface Runner extends RunnerEvent, ClassEvent {
public Result run(Class clazz);
}
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,10 +1,10 @@
package org.punit.runner.method;
import java.lang.reflect.*;
-import java.util.logging.*;
+import java.util.*;
+import org.punit.events.*;
import org.punit.exception.*;
-import org.punit.logger.*;
import org.punit.type.*;
import org.punit.util.*;
import org.punit.watcher.*;
@@ -16,7 +16,7 @@
protected Object _testInstance;
protected Method _method;
-
+
protected Object[] _params;
protected Class _class;
@@ -25,33 +25,66 @@
protected Method _setUpMethod;
+ private List _methodEventListeners = new ArrayList();
+
+ private List _watcherEventListeners = new ArrayList();
+
public AbstractTestMethodRunner() {
- _watchers = new Watcher[] {new MemoryWatcher(), new TimeWatcher()};
+ _watchers = new Watcher[] { new MemoryWatcher(), new TimeWatcher() };
}
-
+
public void setWatchers(Watcher[] watchers) {
_watchers = watchers;
}
- public Object[] run(Object testInstance, Method method, Object[] params) throws Throwable {
- LoggerUtil.logMethod(method);
+ public void run(Object testInstance, Method method, Object[] params) {
+ Throwable throwable = null;
try {
+ onMethodStart(method);
init(testInstance, method, params);
setUpBeforeWatchers();
startWatchers();
setUpAfterWatchers();
runImpl();
+ } catch (Throwable t) {
+ throwable = t;
} finally {
- tearDownBeforeWatchers();
- stopWatchers();
- tearDownAfterWatchers();
+ try {
+ tearDownBeforeWatchers();
+ } catch (Throwable t) {
+ throwable = t;
+ } finally {
+ try {
+ stopWatchers();
+ tearDownAfterWatchers();
+ } catch (Throwable t) {
+ throwable = t;
+ }
+ }
+ onMethodEnd(method, throwable);
}
- return watchersValues();
}
+ private void onMethodStart(final Method method) {
+ VisitorUtil.traverse(_methodEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((MethodEventListener) obj).onMethodStart(method);
+ }
+ });
+ }
+
+ private void onMethodEnd(final Method method, final Throwable t) {
+ VisitorUtil.traverse(_methodEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((MethodEventListener) obj).onMethodEnd(method, t);
+ }
+ });
+ }
+
protected abstract void runImpl() throws Throwable;
- protected final void init(Object testInstance, Method method, Object[] params) {
+ protected final void init(Object testInstance, Method method,
+ Object[] params) {
_testInstance = testInstance;
_class = testInstance.getClass();
_params = params;
@@ -63,11 +96,11 @@
}
/**
- * This method might be overriden by subclass.
- * The runner may do some more things during this step.
- *
+ * This method might be overriden by subclass. The runner may do some more
+ * things during this step.
+ *
*/
- protected void setUpBeforeWatchers() {
+ protected void setUpBeforeWatchers() throws Throwable {
if (isPUnitTest()) {
((PUnitTest) _testInstance).setUpBeforeWatchers();
}
@@ -89,7 +122,7 @@
}
}
- private void tearDownAfterWatchers() {
+ private void tearDownAfterWatchers() throws Throwable {
if (isPUnitTest()) {
((PUnitTest) _testInstance).tearDownAfterWatchers();
}
@@ -118,17 +151,53 @@
}
protected final void startWatchers() {
+ onWatchersStart();
for (int i = 0; i < _watchers.length; ++i) {
+ onWatcherStart(_watchers[i]);
_watchers[i].start();
}
}
+ private void onWatchersStart() {
+ VisitorUtil.traverse(_watcherEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((WatcherEventListener) obj).onWatchersStart();
+ }
+ });
+ }
+
+ private void onWatcherStart(final Watcher watcher) {
+ VisitorUtil.traverse(_watcherEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((WatcherEventListener) obj).onWatcherStart(watcher);
+ }
+ });
+ }
+
protected final void stopWatchers() {
for (int i = 0; i < _watchers.length; ++i) {
_watchers[i].stop();
+ onWatcherEnd(_watchers[i]);
}
+ onWatchersEnd();
}
+ private void onWatcherEnd(final Watcher watcher) {
+ VisitorUtil.traverse(_methodEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((WatcherEventListener) obj).onWatcherEnd(watcher);
+ }
+ });
+ }
+
+ private void onWatchersEnd() {
+ VisitorUtil.traverse(_methodEventListeners.iterator(), new Visitor() {
+ public void visit(Object obj) {
+ ((WatcherEventListener) obj).onWatchersEnd();
+ }
+ });
+ }
+
protected final Object[] watchersValues() {
Object[] values = new Object[_watchers.length];
for (int i = 0; i < _watchers.length; ++i) {
@@ -140,4 +209,21 @@
private boolean isPUnitTest() {
return PUnitTest.class.isAssignableFrom(_class);
}
+
+ public void addMethodEventListener(MethodEventListener listener) {
+ _methodEventListeners.add(listener);
+ }
+
+ public void removeMethodEventListener(MethodEventListener listener) {
+ _methodEventListeners.remove(listener);
+ }
+
+ public void addWatcherEventListener(WatcherEventListener listener) {
+ _watcherEventListeners.add(listener);
+ }
+
+ public void removeWatcherEventListener(WatcherEventListener listener) {
+ _watcherEventListeners.remove(listener);
+ }
+
}
Modified: trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -38,7 +38,7 @@
}
}
- protected void setUpBeforeWatchers() {
+ protected void setUpBeforeWatchers() throws Throwable {
super.setUpBeforeWatchers();
Concurrent concurrentTestInstance = (Concurrent) _testInstance;
int threadCount = concurrentTestInstance.concurrentCount();
Modified: trunk/punit/src/org/punit/runner/method/TestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -2,13 +2,16 @@
import java.lang.reflect.*;
-public interface TestMethodRunner {
+import org.punit.events.*;
+
+public interface TestMethodRunner extends MethodEvent, WatcherEvent {
/**
* Runs the test method, and returns the watcher values.
* @param clazz
* @param method
* @return
*/
- public Object[] run(Object testInstance, Method method, Object[] params) throws Throwable;
+ public void run(Object testInstance, Method method, Object[] params);
+
}
Modified: trunk/punit/src/org/punit/type/PUnitTest.java
===================================================================
--- trunk/punit/src/org/punit/type/PUnitTest.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/type/PUnitTest.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,13 +1,13 @@
package org.punit.type;
public interface PUnitTest {
-
- public void setUpBeforeWatchers();
-
- public void setUpAfterWatchers();
- public void tearDownBeforeWatchers();
-
- public void tearDownAfterWatchers();
-
+ public void setUpBeforeWatchers() throws Exception;
+
+ public void setUpAfterWatchers() throws Exception;
+
+ public void tearDownBeforeWatchers() throws Exception;
+
+ public void tearDownAfterWatchers() throws Exception;
+
}
Modified: trunk/punit/src/org/punit/util/LoggerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -1,19 +1,11 @@
package org.punit.util;
import java.lang.reflect.*;
-import java.util.logging.*;
-import org.punit.logger.*;
-
public class LoggerUtil {
- public static void logMethod(Method method) {
- PUnitLogger.log(simpleMethodName(method), Level.FINE);
- }
public static String simpleMethodName(Method method) {
StringBuffer sb = new StringBuffer();
- sb.append(method.getDeclaringClass().getName());
- sb.append(".");
sb.append(method.getName());
sb.append("(");
Class[] params = method.getParameterTypes();
Modified: trunk/punit/src/org/punit/watcher/MemoryWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -32,6 +32,7 @@
_maxUsedMemory = usedMemory;
}
}
+
private class MemoryWatcherThread extends Thread {
public void run() {
while(!_stop) {
@@ -40,4 +41,8 @@
}
}
}
+
+ public String stringValue() {
+ return value() + "bytes";
+ }
}
Modified: trunk/punit/src/org/punit/watcher/TimeWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -36,4 +36,8 @@
public Object value() {
return (_endTime - _startTime)/1000000;
}
+
+ public String stringValue() {
+ return value() + "ms";
+ }
}
Modified: trunk/punit/src/org/punit/watcher/Watcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/Watcher.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit/src/org/punit/watcher/Watcher.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -8,4 +8,6 @@
public Object value();
+ public String stringValue();
+
}
Modified: trunk/punit.test/src/tests/api/org/punit/logger/PUnitLoggerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/logger/PUnitLoggerTest.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/api/org/punit/logger/PUnitLoggerTest.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -8,45 +8,37 @@
import org.punit.logger.*;
public class PUnitLoggerTest extends TestCase {
- private static MockPrintStream _mockPrintStream = new MockPrintStream(
- System.err);
+ LogListener _logger = new LogListener();
- static {
- PUnitLogger.setOutputStream(_mockPrintStream);
- }
+ private MockPrintStream _mockPrintStream;
protected void setUp() throws Exception {
- reset();
+ _mockPrintStream = new MockPrintStream(System.err);
+ _logger.setOutputStream(_mockPrintStream);
}
-
- protected void tearDown() {
- PUnitLogger.reset();
- }
- public void test() {
- PUnitLogger.setLogLevel(Level.ALL);
- PUnitLogger.log(null, Level.INFO);
+ public void test1() {
+ _logger.setLogLevel(Level.ALL);
+ _logger.log(null, Level.INFO);
assertPrinted();
-
- PUnitLogger.setLogLevel(Level.INFO);
- reset();
- PUnitLogger.log(null, Level.SEVERE);
+ }
+
+ public void test2() {
+ _logger.setLogLevel(Level.INFO);
+ _logger.log(null, Level.SEVERE);
assertPrinted();
-
- reset();
- PUnitLogger.log(null, Level.FINE);
+ }
+
+ public void test3() {
+ _logger.setLogLevel(Level.FINE);
+ _logger.log(null, Level.FINER);
assertNotPrinted();
-
}
- private void reset() {
- _mockPrintStream._printed = false;
- }
-
private void assertPrinted() {
assertTrue(_mockPrintStream._printed);
}
-
+
private void assertNotPrinted() {
assertFalse(_mockPrintStream._printed);
}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestSample.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -11,11 +11,9 @@
}
public void test1(Parameter param) {
- System.out.println("test1 " + param);
}
public void test2() {
- System.out.println("test2");
}
public Parameter[] parameters() {
Modified: trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -9,28 +9,26 @@
public class LoggerUtilTest extends TestCase {
- private static final String CLASS_NAME = LoggerUtilTest.class.getName();
-
public void testSimpleMethodName() {
Method method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f",
new Class[] {});
String simpleMethodName = LoggerUtil.simpleMethodName(method);
- assertEquals(CLASS_NAME + ".f()", simpleMethodName);
+ assertEquals("f()", simpleMethodName);
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f",
new Class[] { Parameter.class });
simpleMethodName = LoggerUtil.simpleMethodName(method);
- assertEquals(CLASS_NAME + ".f(Parameter)", simpleMethodName);
+ assertEquals("f(Parameter)", simpleMethodName);
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f",
new Class[] { int.class });
simpleMethodName = LoggerUtil.simpleMethodName(method);
- assertEquals(CLASS_NAME + ".f(int)", simpleMethodName);
+ assertEquals("f(int)", simpleMethodName);
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f",
new Class[] { int[].class });
simpleMethodName = LoggerUtil.simpleMethodName(method);
- assertEquals(CLASS_NAME + ".f(int[])", simpleMethodName);
+ assertEquals("f(int[])", simpleMethodName);
}
public void f() {
Modified: trunk/punit.test/src/tests/sample/testcase/ConcurrentParameterizableTestSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/ConcurrentParameterizableTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/ConcurrentParameterizableTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -15,11 +15,9 @@
}
public void test1(Parameter param) {
- System.out.println("test1 " + param);
}
public void test2() {
- System.out.println("test2");
}
public Parameter[] parameters() {
Modified: trunk/punit.test/src/tests/sample/testcase/ConcurrentTestSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/ConcurrentTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/ConcurrentTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -10,11 +10,9 @@
}
public void test1() {
- System.out.println("test1");
}
public void test2() {
- System.out.println("test2");
}
public int concurrentCount() {
Modified: trunk/punit.test/src/tests/sample/testcase/JUnitTestSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/JUnitTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/JUnitTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -19,11 +19,9 @@
}
public void test1() {
- System.out.println("test1");
}
public void test2() {
- System.out.println("test2");
}
}
Modified: trunk/punit.test/src/tests/sample/testcase/PUnitTestCaseSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/PUnitTestCaseSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/PUnitTestCaseSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -4,41 +4,37 @@
import org.punit.type.*;
public class PUnitTestCaseSample implements PUnitTest {
-
+
public static void main(String[] args) {
new PUnitSoloRunner().run(PUnitTestCaseSample.class);
}
public void setUpAfterWatchers() {
- System.out.println("setUpAfterWatchers");
}
public void setUpBeforeWatchers() {
- System.out.println("setUpBeforeWatchers");
}
public void tearDownBeforeWatchers() {
- System.out.println("tearDownBeforeWatchers");
}
-
+
public void tearDownAfterWatchers() {
- System.out.println("tearDownAfterWatchers");
}
-
+
public void setUp() {
- System.out.println("setUp");
}
-
+
public void tearDown() {
- System.out.println("tearDown");
}
-
+
public void test1() {
- System.out.println("test1");
+ byte[] array = new byte[1024 * 1024];
+ for (int i = 0, j = 0; i < array.length; ++i) {
+ ++j;
+ }
}
-
+
public void test2() {
- System.out.println("test2");
}
}
Modified: trunk/punit.test/src/tests/sample/testcase/ParameterizableTestSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/ParameterizableTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/ParameterizableTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -13,11 +13,9 @@
}
public void test1(Parameter param) {
- System.out.println("test1 " + param);
}
public void test2() {
- System.out.println("test2");
}
public Parameter[] parameters() {
Modified: trunk/punit.test/src/tests/sample/testcase/SimpleTestSample.java
===================================================================
--- trunk/punit.test/src/tests/sample/testcase/SimpleTestSample.java 2007-05-12 13:13:40 UTC (rev 28)
+++ trunk/punit.test/src/tests/sample/testcase/SimpleTestSample.java 2007-05-12 22:14:09 UTC (rev 29)
@@ -9,19 +9,19 @@
}
public void setUp() {
-
+
}
-
+
public void tearDown() {
-
+
}
-
+
public void test1() {
-
+ throw new IllegalArgumentException();
}
public void test2() {
+ throw new NullPointerException();
+ }
- }
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|