Thread: [P-unit-devel] SF.net SVN: p-unit: [78] trunk/punit (Page 2)
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-05-15 08:25:21
|
Revision: 78
http://p-unit.svn.sourceforge.net/p-unit/?rev=78&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 01:25:22 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: began to implement vm competitive feature.
Modified Paths:
--------------
trunk/punit/src/org/punit/exception/ConcurrentException.java
trunk/punit/src/org/punit/exception/ReflectionException.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit/src/org/punit/type/VM.java
trunk/punit/src/org/punit/util/ReflectionUtil.java
trunk/punit/src/punit.properties
trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
trunk/punit.test/src/tests/api/org/punit/util/ReflectionUtilTest.java
Added Paths:
-----------
trunk/punit/src/org/punit/exception/PUnitException.java
trunk/punit/src/org/punit/exception/PUnitIOException.java
trunk/punit/src/org/punit/util/ArgUtil.java
trunk/punit/src/org/punit/util/IOUtil.java
trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
Modified: trunk/punit/src/org/punit/exception/ConcurrentException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -5,7 +5,7 @@
import org.punit.util.*;
-public class ConcurrentException extends RuntimeException {
+public class ConcurrentException extends PUnitException {
private static final long serialVersionUID = 1253114975237734895L;
private Vector _throwables = new Vector();
Added: trunk/punit/src/org/punit/exception/PUnitException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitException.java (rev 0)
+++ trunk/punit/src/org/punit/exception/PUnitException.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -0,0 +1,14 @@
+package org.punit.exception;
+
+public class PUnitException extends RuntimeException {
+
+ public PUnitException() {
+
+ }
+
+ public PUnitException(Throwable e) {
+ super(e);
+ }
+
+ private static final long serialVersionUID = -6845936853491862388L;
+}
Added: trunk/punit/src/org/punit/exception/PUnitIOException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitIOException.java (rev 0)
+++ trunk/punit/src/org/punit/exception/PUnitIOException.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -0,0 +1,10 @@
+package org.punit.exception;
+
+public class PUnitIOException extends PUnitException {
+
+ private static final long serialVersionUID = 7098221975109413569L;
+
+ public PUnitIOException(Throwable e) {
+ super(e);
+ }
+}
Modified: trunk/punit/src/org/punit/exception/ReflectionException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -1,6 +1,6 @@
package org.punit.exception;
-public class ReflectionException extends RuntimeException {
+public class ReflectionException extends PUnitException {
private static final long serialVersionUID = -5498831354775690972L;
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -1,5 +1,6 @@
package org.punit.runner;
+import java.io.*;
import java.lang.reflect.*;
import java.util.*;
@@ -7,7 +8,6 @@
import org.punit.events.*;
import org.punit.reporter.stream.console.*;
import org.punit.reporter.stream.file.*;
-import org.punit.result.*;
import org.punit.runner.method.*;
import org.punit.type.*;
import org.punit.util.*;
@@ -36,20 +36,49 @@
registerLoggerListeners();
}
- public Result run(Class clazz) {
+ public void 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;
}
+ public void run(String className, String resultFolder) {
+ Class clazz = ReflectionUtil.newClass(className);
+ run(clazz);
+ }
+
+ public void runVMs(Class clazz, VM[] vm) {
+ for (int i = 0; i < vm.length; ++i) {
+ String command = generateVMCommand(vm[i], clazz);
+ IOUtil.exec(command);
+ }
+ }
+
+ /*
+ * VM command: /path/java -classpath a.jar;path/lib/b.jar
+ * org.punit.runner.PUnitSoloRunner TestSuite1.class /output/
+ */
+ private String generateVMCommand(VM vm, Class testClass) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(vm.path());
+ sb.append(" -classpath "); //$NON-NLS-1$
+ sb.append(vm.classPath());
+ sb.append(" "); //$NON-NLS-1$
+ sb.append(this.getClass().getName());
+ sb.append(testClass.getName());
+ sb.append(" "); //$NON-NLS-1$
+ sb.append(IOUtil.getCurrentPath());
+ return sb.toString();
+ }
+
private void onRunnerStart(final Class clazz) {
VisitorUtil.traverse(_runnerEventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((RunnerEventListener) obj).onRunnerStart(clazz, PUnitAbstractRunner.this);
+ ((RunnerEventListener) obj).onRunnerStart(clazz,
+ PUnitAbstractRunner.this);
}
});
}
@@ -57,7 +86,8 @@
private void onRunnerEnd(final Class clazz) {
VisitorUtil.traverse(_runnerEventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((RunnerEventListener) obj).onRunnerEnd(clazz, PUnitAbstractRunner.this);
+ ((RunnerEventListener) obj).onRunnerEnd(clazz,
+ PUnitAbstractRunner.this);
}
});
}
@@ -190,9 +220,8 @@
public FileLoggerListener fileLogger() {
return _fileLogger;
}
-
+
public void addTestInterfaces(Class[] interfaces) {
_testMethodBuilder.addTestInterfaces(interfaces);
}
-
}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -6,9 +6,25 @@
public class PUnitSoloRunner extends PUnitAbstractRunner {
+ /**
+ *
+ * @param args
+ * args[0] test class; args[1] test result folder. uses current
+ * folder if it is not specified
+ */
+ public static void main(String[] args) {
+ if(args.length < 1 || args.length > 2) {
+ throw new IllegalArgumentException();
+ }
+ String className = args[0];
+ String resultFolder = args.length == 1 ? null : args[1];
+ new PUnitSoloRunner().run(className, resultFolder);
+ }
+
public PUnitSoloRunner() {
- super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(), new SoloTestMethodRunner());
-
+ super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(),
+ new SoloTestMethodRunner());
+
}
public boolean accept(Class clazz) {
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -7,7 +7,7 @@
import org.punit.type.*;
public interface Runner extends RunnerEvent, ClassEvent, PUnitName {
- public Result run(Class clazz);
+ public void run(Class clazz);
public TestMethodBuilder testMethodBuilder();
Modified: trunk/punit/src/org/punit/type/VM.java
===================================================================
--- trunk/punit/src/org/punit/type/VM.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/type/VM.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -1,21 +1,27 @@
package org.punit.type;
-public class VM {
- private String _vmPath;
+public class VM implements PUnitName {
+ private String _path;
+
+ private String _classPath;
- private String _vmName;
+ private String _name;
- public VM(String path, String name) {
- super();
- _vmPath = path;
- _vmName = name;
+ public VM(String path, String classPath, String name) {
+ _path = path;
+ _classPath = classPath;
+ _name = name;
}
- public String vmName() {
- return _vmName;
+ public String punitName() {
+ return _name;
}
- public String vmPath() {
- return _vmPath;
+ public String path() {
+ return _path;
}
+
+ public String classPath() {
+ return _classPath;
+ }
}
Added: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java (rev 0)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -0,0 +1,25 @@
+package org.punit.util;
+
+import org.punit.message.*;
+
+public class ArgUtil {
+ public static class PUnitArgs {
+ public PUnitArgs(String className, String folder) {
+ testClassName = className;
+ resultFolder = folder;
+ }
+
+ public String testClassName;
+
+ public String resultFolder;
+ }
+
+ public static PUnitArgs getPUnitArgs(String[] args) {
+ if (args.length < 1 || args.length > 2) {
+ throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
+ }
+ String className = args[0];
+ String resultFolder = args.length == 1 ? null : args[1];
+ return new PUnitArgs(className, resultFolder);
+ }
+}
Added: trunk/punit/src/org/punit/util/IOUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/IOUtil.java (rev 0)
+++ trunk/punit/src/org/punit/util/IOUtil.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -0,0 +1,23 @@
+package org.punit.util;
+
+import java.io.*;
+
+import org.punit.exception.*;
+
+public class IOUtil {
+ public static String getCurrentPath() {
+ try {
+ return new File(".").getCanonicalPath(); //$NON-NLS-1$
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ }
+ }
+
+ public static Process exec(String command) {
+ try {
+ return Runtime.getRuntime().exec(command);
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ }
+ }
+}
Modified: trunk/punit/src/org/punit/util/ReflectionUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ReflectionUtil.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/org/punit/util/ReflectionUtil.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -16,6 +16,14 @@
}
}
+ public static Class newClass(String className) {
+ try {
+ return Class.forName(className);
+ } catch (Exception e) {
+ throw new ReflectionException(e);
+ }
+ }
+
public static Method getMethod(Class clazz, String methodName, Class[] params) {
try {
Method method = clazz.getDeclaredMethod(methodName, params);
Modified: trunk/punit/src/punit.properties
===================================================================
--- trunk/punit/src/punit.properties 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit/src/punit.properties 2007-05-15 08:25:22 UTC (rev 78)
@@ -8,6 +8,7 @@
runner.02=solo.param
runner.03=concurrent
runner.04=concurrent.param
+runner.05=PUnitXXXRunner className [result path]
watcher.01=bytes
watcher.02=ms
watcher.03=memory
Modified: trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -23,6 +23,7 @@
public static Class[] testCases() {
return new Class[] {
+ ArgUtilTest.class,
ConcurrentExceptionTest.class,
LoggerUtilTest.class,
MemoryWatcherTest.class,
Added: trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -0,0 +1,40 @@
+package tests.api.org.punit.util;
+
+import junit.framework.*;
+
+import org.punit.util.*;
+import org.punit.util.ArgUtil.*;
+
+import tests.util.*;
+
+public class ArgUtilTest extends TestCase {
+ private static String CLASS_NAME = "a"; //$NON-NLS-1$
+
+ private static String RESULT_FOLDER = "b"; //$NON-NLS-1$
+
+ public void testGetPUnitArgs() {
+
+ PUnitArgs parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME });
+ assertEquals(CLASS_NAME, parg.testClassName);
+ assertNull(parg.resultFolder);
+
+ parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER });
+ assertEquals(CLASS_NAME, parg.testClassName);
+ assertEquals(RESULT_FOLDER, parg.resultFolder);
+
+ AssertUtil.assertException(IllegalArgumentException.class,
+ new CodeRunner() {
+ public void run() throws Throwable {
+ ArgUtil.getPUnitArgs(new String[] {});
+ }
+ });
+
+ AssertUtil.assertException(IllegalArgumentException.class,
+ new CodeRunner() {
+ public void run() throws Throwable {
+ ArgUtil.getPUnitArgs(new String[] { CLASS_NAME,
+ RESULT_FOLDER, null });
+ }
+ });
+ }
+}
Modified: trunk/punit.test/src/tests/api/org/punit/util/ReflectionUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/ReflectionUtilTest.java 2007-05-14 20:49:15 UTC (rev 77)
+++ trunk/punit.test/src/tests/api/org/punit/util/ReflectionUtilTest.java 2007-05-15 08:25:22 UTC (rev 78)
@@ -11,6 +11,16 @@
public class ReflectionUtilTest extends TestCase {
+ public void testNewClass() {
+ Class clazz = ReflectionUtil.newClass(Test1.class.getName());
+ assertSame(Test1.class, clazz);
+ AssertUtil.assertException(ReflectionException.class, new CodeRunner() {
+ public void run() throws Throwable {
+ ReflectionUtil.newClass("unknown"); //$NON-NLS-1$
+ }
+ });
+ }
+
public void testNewInstance() {
Object obj = ReflectionUtil.newInstance(Test1.class);
assertNotNull(obj);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-15 10:25:32
|
Revision: 80
http://p-unit.svn.sourceforge.net/p-unit/?rev=80&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 03:25:34 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: began to implement vm competitive feature.
Modified Paths:
--------------
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
Added Paths:
-----------
trunk/punit.test/src/tests/samples/VMsSample.java
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 09:32:50 UTC (rev 79)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -30,12 +30,17 @@
}
private String generateFileName(Class clazz, Runner runner) {
+ PUnitArgs pargs = runner.punitArgs();
StringBuffer sb = new StringBuffer();
+ sb.append(pargs.resultFolder);
+ sb.append(File.separator);
sb.append(ReporterConstants.RESULT_FOLDER);
sb.append(File.separator);
sb.append(clazz.getName());
sb.append("."); //$NON-NLS-1$
sb.append(runner.punitName());
+
+ sb.append("."); //$NON-NLS-1$
sb.append(".txt"); //$NON-NLS-1$
return sb.toString();
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 09:32:50 UTC (rev 79)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -42,7 +42,7 @@
runImpl(clazz);
}
- public void run(PUnitArgs pargs) {
+ protected void run(PUnitArgs pargs) {
punitArgs(pargs);
Class clazz = ReflectionUtil.newClass(pargs.testClassName);
runImpl(clazz);
@@ -72,10 +72,11 @@
private String generateVMCommand(Class testClass, VM vm) {
StringBuffer sb = new StringBuffer();
sb.append(vm.path());
- sb.append(" -classpath "); //$NON-NLS-1$
+ sb.append(" "); //$NON-NLS-1$
sb.append(vm.classPath());
sb.append(" "); //$NON-NLS-1$
sb.append(this.getClass().getName());
+ sb.append(" "); //$NON-NLS-1$
sb.append(testClass.getName());
sb.append(" "); //$NON-NLS-1$
sb.append(IOUtil.getCurrentPath());
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 09:32:50 UTC (rev 79)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -4,7 +4,6 @@
import org.punit.message.*;
import org.punit.runner.method.*;
import org.punit.util.*;
-import org.punit.util.ArgUtil.*;
public class PUnitSoloRunner extends PUnitAbstractRunner {
Modified: trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java 2007-05-15 09:32:50 UTC (rev 79)
+++ trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -5,7 +5,6 @@
import junit.framework.*;
-import org.punit.reporter.stream.*;
import org.punit.reporter.stream.console.*;
public class PUnitLoggerTest extends TestCase {
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-15 09:32:50 UTC (rev 79)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -3,7 +3,6 @@
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
-import tests.samples.*;
public class PUnitSoloRunnerTest extends AbstractPUnitRunnerTest {
Added: trunk/punit.test/src/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/tests/samples/VMsSample.java (rev 0)
+++ trunk/punit.test/src/tests/samples/VMsSample.java 2007-05-15 10:25:34 UTC (rev 80)
@@ -0,0 +1,50 @@
+package tests.samples;
+
+import java.io.*;
+import java.util.*;
+
+import org.punit.runner.*;
+import org.punit.type.*;
+import org.punit.util.*;
+
+public class VMsSample {
+ private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java"; //$NON-NLS-1$
+
+ private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java"; //$NON-NLS-1$
+
+ private static String CLASSPATH;
+ static {
+ CLASSPATH = generateClassPath();
+ }
+
+ public static void main(String[] args) {
+ VM harmonyVM = new VM(HARMONY, CLASSPATH, "Harmony"); //$NON-NLS-1$
+ VM sunVM = new VM(SUN, CLASSPATH, "SUN"); //$NON-NLS-1$
+ new PUnitSoloRunner().runVMs(VMsSample.class, new VM[] { harmonyVM,
+ sunVM });
+ }
+
+ private static String generateClassPath() {
+ StringBuffer sb = new StringBuffer();
+ sb.append(" -cp "); //$NON-NLS-1$
+ String currentPath = IOUtil.getCurrentPath();
+ sb.append(currentPath);
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+ sb.append(currentPath.replaceAll("punit.test", "punit")); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(File.separator);
+ sb.append("bin"); //$NON-NLS-1$
+ return sb.toString();
+ }
+
+ public void test() {
+ Properties props = System.getProperties();
+ Set entrySet = props.entrySet();
+ VisitorUtil.traverse(entrySet.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ Map.Entry entry = (Map.Entry) obj;
+ System.out.println(entry.getKey() + " = " + entry.getValue()); //$NON-NLS-1$
+ }
+ });
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-15 11:11:29
|
Revision: 81
http://p-unit.svn.sourceforge.net/p-unit/?rev=81&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 04:11:19 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: began to implement vm competitive feature.
Modified Paths:
--------------
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitArgs.java
trunk/punit/src/org/punit/type/VM.java
trunk/punit/src/org/punit/util/ArgUtil.java
trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
trunk/punit.test/src/tests/samples/VMsSample.java
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -39,7 +39,10 @@
sb.append(clazz.getName());
sb.append("."); //$NON-NLS-1$
sb.append(runner.punitName());
-
+ if(pargs.vm != null) {
+ sb.append("."); //$NON-NLS-1$
+ sb.append(pargs.vm);
+ }
sb.append("."); //$NON-NLS-1$
sb.append(".txt"); //$NON-NLS-1$
return sb.toString();
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -73,14 +73,13 @@
StringBuffer sb = new StringBuffer();
sb.append(vm.path());
sb.append(" "); //$NON-NLS-1$
- sb.append(vm.classPath());
- sb.append(" "); //$NON-NLS-1$
sb.append(this.getClass().getName());
sb.append(" "); //$NON-NLS-1$
sb.append(testClass.getName());
sb.append(" "); //$NON-NLS-1$
sb.append(IOUtil.getCurrentPath());
- sb.append(" false"); //$NON-NLS-1$
+ sb.append(" false "); //$NON-NLS-1$
+ sb.append(vm.punitName());
return sb.toString();
}
@@ -239,7 +238,7 @@
String className = clazz.getName();
String resultFolder = IOUtil.getCurrentPath();
boolean intermediate = false;
- return new PUnitArgs(className, resultFolder,intermediate);
+ return new PUnitArgs(className, resultFolder,intermediate, null);
}
private void punitArgs(PUnitArgs pargs) {
Modified: trunk/punit/src/org/punit/runner/PUnitArgs.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -1,12 +1,16 @@
package org.punit.runner;
public class PUnitArgs {
- public PUnitArgs(String className, String folder, boolean intermediate) {
+
+ public PUnitArgs(String className, String folder, boolean intermediate, String vm) {
testClassName = className;
resultFolder = folder;
this.intermediate = intermediate;
+ this.vm = vm;
}
+ public final String vm;
+
public final String testClassName;
public final String resultFolder;
Modified: trunk/punit/src/org/punit/type/VM.java
===================================================================
--- trunk/punit/src/org/punit/type/VM.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit/src/org/punit/type/VM.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -2,14 +2,11 @@
public class VM implements PUnitName {
private String _path;
-
- private String _classPath;
private String _name;
- public VM(String path, String classPath, String name) {
+ public VM(String path, String name) {
_path = path;
- _classPath = classPath;
_name = name;
}
@@ -19,9 +16,5 @@
public String path() {
return _path;
- }
-
- public String classPath() {
- return _classPath;
- }
+ }
}
Modified: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -5,12 +5,13 @@
public class ArgUtil {
public static PUnitArgs getPUnitArgs(String[] args) {
- if (args.length < 1 || args.length > 3) {
+ if (args.length < 1 || args.length > 4) {
throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
}
String className = args[0];
String resultFolder = args.length >= 2 ? args[1] : null;
- boolean intermediate = args.length == 3 ? Boolean.parseBoolean(args[2]) : false;
- return new PUnitArgs(className, resultFolder, intermediate);
+ boolean intermediate = args.length >= 3 ? Boolean.parseBoolean(args[2]) : false;
+ String vm = args.length >= 4 ? args[3] : null;
+ return new PUnitArgs(className, resultFolder, intermediate, vm);
}
}
Modified: trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -11,6 +11,8 @@
private static String CLASS_NAME = "a"; //$NON-NLS-1$
private static String RESULT_FOLDER = "b"; //$NON-NLS-1$
+
+ private static String VM_NAME = "c"; //$NON-NLS-1$
public void testGetPUnitArgs() {
PUnitArgs parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME });
@@ -29,6 +31,13 @@
assertEquals(RESULT_FOLDER, parg.resultFolder);
assertTrue(parg.intermediate);
+ parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "true", VM_NAME }); //$NON-NLS-1$
+ assertEquals(CLASS_NAME, parg.testClassName);
+ assertEquals(RESULT_FOLDER, parg.resultFolder);
+ assertTrue(parg.intermediate);
+ assertEquals(VM_NAME, parg.vm);
+
+
parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "false" }); //$NON-NLS-1$
assertEquals(CLASS_NAME, parg.testClassName);
assertEquals(RESULT_FOLDER, parg.resultFolder);
@@ -46,7 +55,7 @@
new CodeRunner() {
public void run() throws Throwable {
ArgUtil.getPUnitArgs(new String[] { CLASS_NAME,
- RESULT_FOLDER, null, null });
+ RESULT_FOLDER, null, null, null });
}
});
}
Modified: trunk/punit.test/src/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/tests/samples/VMsSample.java 2007-05-15 10:25:34 UTC (rev 80)
+++ trunk/punit.test/src/tests/samples/VMsSample.java 2007-05-15 11:11:19 UTC (rev 81)
@@ -8,18 +8,19 @@
import org.punit.util.*;
public class VMsSample {
- private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java"; //$NON-NLS-1$
- private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java"; //$NON-NLS-1$
-
private static String CLASSPATH;
static {
CLASSPATH = generateClassPath();
}
+
+ private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+ private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+
public static void main(String[] args) {
- VM harmonyVM = new VM(HARMONY, CLASSPATH, "Harmony"); //$NON-NLS-1$
- VM sunVM = new VM(SUN, CLASSPATH, "SUN"); //$NON-NLS-1$
+ VM harmonyVM = new VM(HARMONY, "Harmony"); //$NON-NLS-1$
+ VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
new PUnitSoloRunner().runVMs(VMsSample.class, new VM[] { harmonyVM,
sunVM });
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-15 22:01:04
|
Revision: 82
http://p-unit.svn.sourceforge.net/p-unit/?rev=82&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 15:01:02 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: began to implement vm competitive feature.
Modified Paths:
--------------
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitArgs.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/TestMethodRunner.java
trunk/punit/src/org/punit/util/ArgUtil.java
trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
trunk/punit.test/src/tests/samples/VMsSample.java
Added Paths:
-----------
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
trunk/punit.test/src/extension/tests/samples/VMsSample.java
Removed Paths:
-------------
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/PUnitEvent.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
Deleted: trunk/punit/src/org/punit/events/ClassEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/ClassEvent.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/ClassEvent.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,10 +0,0 @@
-package org.punit.events;
-
-
-
-public interface ClassEvent {
-
- public void addClassEventListener(ClassEventListener listener);
-
- public void removeClassEventListener(ClassEventListener listener);
-}
Deleted: trunk/punit/src/org/punit/events/ClassEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/ClassEventListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/ClassEventListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,11 +0,0 @@
-package org.punit.events;
-
-import java.util.*;
-
-public interface ClassEventListener extends EventListener {
-
- public void onClassStart(Class clazz);
-
- public void onClassEnd(Class clazz);
-
-}
Deleted: trunk/punit/src/org/punit/events/MethodEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/MethodEvent.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/MethodEvent.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,10 +0,0 @@
-package org.punit.events;
-
-
-
-public interface MethodEvent {
-
- public void addMethodEventListener(MethodEventListener listener);
-
- public void removeMethodEventListener(MethodEventListener listener);
-}
Deleted: trunk/punit/src/org/punit/events/MethodEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/MethodEventListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/MethodEventListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,12 +0,0 @@
-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);
-
-}
Deleted: trunk/punit/src/org/punit/events/PUnitEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEvent.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/PUnitEvent.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,6 +0,0 @@
-package org.punit.events;
-
-public interface PUnitEvent extends RunnerEventListener, ClassEventListener,
- MethodEventListener, WatcherEventListener {
-
-}
Added: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java (rev 0)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -0,0 +1,30 @@
+package org.punit.events;
+
+import java.lang.reflect.*;
+
+import org.punit.runner.*;
+import org.punit.watcher.*;
+
+public interface PUnitEventListener {
+
+ public void onRunnerStart(Class clazz, Runner runner);
+
+ public void onRunnerEnd(Class clazz, Runner runner);
+
+ public void onClassStart(Class clazz);
+
+ public void onClassEnd(Class clazz);
+
+ public void onMethodStart(Method method);
+
+ public void onMethodEnd(Method method, Throwable t);
+
+ public void onWatchersStart(Watcher[] watchers);
+
+ public void onWatcherStart(Watcher watcher);
+
+ public void onWatcherEnd(Watcher watcher);
+
+ public void onWatchersEnd(Watcher[] watchers);
+
+}
Added: trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventRegsitry.java (rev 0)
+++ trunk/punit/src/org/punit/events/PUnitEventRegsitry.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -0,0 +1,8 @@
+package org.punit.events;
+
+public interface PUnitEventRegsitry {
+
+ public void addPUnitEventListener(PUnitEventListener listener);
+
+ public void removePUnitEventListener(PUnitEventListener listener);
+}
Deleted: trunk/punit/src/org/punit/events/RunnerEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/RunnerEvent.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/RunnerEvent.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,10 +0,0 @@
-package org.punit.events;
-
-
-
-public interface RunnerEvent {
-
- public void addRunnerEventListener(RunnerEventListener listener);
-
- public void removeRunnerEventListener(RunnerEventListener listener);
-}
Deleted: trunk/punit/src/org/punit/events/RunnerEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/RunnerEventListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/RunnerEventListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,13 +0,0 @@
-package org.punit.events;
-
-import java.util.*;
-
-import org.punit.runner.*;
-
-public interface RunnerEventListener extends EventListener {
-
- public void onRunnerStart(Class clazz, Runner runner);
-
- public void onRunnerEnd(Class clazz, Runner runner);
-
-}
Deleted: trunk/punit/src/org/punit/events/WatcherEvent.java
===================================================================
--- trunk/punit/src/org/punit/events/WatcherEvent.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/WatcherEvent.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,8 +0,0 @@
-package org.punit.events;
-
-public interface WatcherEvent {
-
- public void addWatcherEventListener(WatcherEventListener listener);
-
- public void removeWatcherEventListener(WatcherEventListener listener);
-}
Deleted: trunk/punit/src/org/punit/events/WatcherEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/WatcherEventListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/events/WatcherEventListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,16 +0,0 @@
-package org.punit.events;
-
-import java.util.*;
-
-import org.punit.watcher.*;
-
-public interface WatcherEventListener extends EventListener {
- public void onWatchersStart(Watcher[] watchers);
-
- public void onWatcherStart(Watcher watcher);
-
- public void onWatcherEnd(Watcher watcher);
-
- public void onWatchersEnd(Watcher[] watchers);
-
-}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -11,7 +11,8 @@
import org.punit.util.*;
import org.punit.watcher.*;
-public class StreamLoggerListener implements PUnitEvent {
+public class StreamLoggerListener implements PUnitEventListener {
+
public PrintStream _ps;
Summary _summary = new Summary();
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -9,6 +9,9 @@
public class FileLoggerListener extends StreamLoggerListener {
public void onRunnerStart(Class clazz, Runner runner) {
+ if(isParentRunner(runner)) {
+ return;
+ }
initResultFolder();
String fileName = generateFileName(clazz, runner);
try {
@@ -21,6 +24,9 @@
}
public void onRunnerEnd(Class clazz, Runner runner) {
+ if(isParentRunner(runner)) {
+ return;
+ }
super.onRunnerEnd(clazz, runner);
_ps.close();
}
@@ -32,19 +38,23 @@
private String generateFileName(Class clazz, Runner runner) {
PUnitArgs pargs = runner.punitArgs();
StringBuffer sb = new StringBuffer();
- sb.append(pargs.resultFolder);
+ sb.append(pargs.resultFolder());
sb.append(File.separator);
sb.append(ReporterConstants.RESULT_FOLDER);
sb.append(File.separator);
sb.append(clazz.getName());
sb.append("."); //$NON-NLS-1$
sb.append(runner.punitName());
- if(pargs.vm != null) {
+ if(pargs.vm() != null) {
sb.append("."); //$NON-NLS-1$
- sb.append(pargs.vm);
+ sb.append(pargs.vm());
}
- sb.append("."); //$NON-NLS-1$
sb.append(".txt"); //$NON-NLS-1$
return sb.toString();
}
+
+ // TODO: should be refactored
+ private boolean isParentRunner(Runner runner) {
+ return runner.punitArgs().attachedVMs() != null;
+ }
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -5,6 +5,7 @@
import org.punit.builder.*;
import org.punit.events.*;
+import org.punit.exception.*;
import org.punit.reporter.stream.console.*;
import org.punit.reporter.stream.file.*;
import org.punit.runner.method.*;
@@ -18,10 +19,8 @@
private TestMethodRunner _testMethodRunner;
- private List _runnerEventListeners = new ArrayList();
-
- private List _classEventListeners = new ArrayList();
-
+ private final List _eventListeners = new ArrayList(); // List <PUnitEventListener>
+
private ConsoleLoggerListener _consoleLogger = new ConsoleLoggerListener();
private FileLoggerListener _fileLogger = new FileLoggerListener();
@@ -38,16 +37,34 @@
}
public void run(Class clazz) {
- punitArgs(defaultPargs(clazz));
+ punitArgs(defaultPUnitRunnerArgs(clazz, null));
runImpl(clazz);
}
protected void run(PUnitArgs pargs) {
punitArgs(pargs);
- Class clazz = ReflectionUtil.newClass(pargs.testClassName);
- runImpl(clazz);
+ Class testClass = ReflectionUtil.newClass(pargs.testClassName());
+ if(pargs.isIntermediate()) {
+ setEventListeners(pargs);
+ }
+ runImpl(testClass);
}
+ private void setEventListeners(PUnitArgs pargs) {
+ List eventListners = pargs.eventListeners();
+ if(eventListners == null) {
+ return;
+ }
+ _eventListeners.clear();
+ VisitorUtil.traverse(eventListners.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ String eventListenerName = (String) obj;
+ PUnitEventListener listener = (PUnitEventListener) ReflectionUtil.newInstance(ReflectionUtil.newClass(eventListenerName));
+ addPUnitEventListener(listener);
+ }
+ });
+ }
+
private void runImpl(Class clazz) {
onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
@@ -58,19 +75,30 @@
}
public void runVMs(Class clazz, VM[] vm) {
+ punitArgs(defaultPUnitRunnerArgs(clazz, vm));
+ onRunnerStart(clazz);
for (int i = 0; i < vm.length; ++i) {
String command = generateVMCommand(clazz, vm[i]);
- IOUtil.exec(command);
- //TODO: generate report here.
+ Process p = IOUtil.exec(command);
+ try {
+ p.waitFor();
+ } catch (InterruptedException e) {
+ throw new PUnitIOException(e);
+ }
}
+ onRunnerEnd(clazz);
}
/*
- * VM command: /path/java -classpath a.jar;path/lib/b.jar
- * org.punit.runner.PUnitSoloRunner TestSuite1.class /output/
+ * VM command: D:\harmony_trunk\harmony-jre-r530500\bin\java -cp
+ * D:\workspace_3.2\punit.test\bin;D:\workspace_3.2\punit.extension\bin;D:\workspace_3.2\punit\bin;D:\tools\eclipse3.2\plugins\org.junit_3.8.1\junit.jar
+ * org.punit.runner.PUnitSoloRunner tests.samples.VMsSample
+ * D:\workspace_3.2\punit.test true Harmony
+ * org.punit.reporter.stream.console.ConsoleLoggerListener
+ * org.punit.reporter.stream.file.FileLoggerListener
*/
private String generateVMCommand(Class testClass, VM vm) {
- StringBuffer sb = new StringBuffer();
+ final StringBuffer sb = new StringBuffer();
sb.append(vm.path());
sb.append(" "); //$NON-NLS-1$
sb.append(this.getClass().getName());
@@ -78,24 +106,32 @@
sb.append(testClass.getName());
sb.append(" "); //$NON-NLS-1$
sb.append(IOUtil.getCurrentPath());
- sb.append(" false "); //$NON-NLS-1$
+ sb.append(" true "); //$NON-NLS-1$
sb.append(vm.punitName());
+
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ PUnitEventListener eventListener = (PUnitEventListener) obj;
+ sb.append(" "); //$NON-NLS-1$
+ sb.append(eventListener.getClass().getName());
+ }
+ });
return sb.toString();
}
private void onRunnerStart(final Class clazz) {
- VisitorUtil.traverse(_runnerEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((RunnerEventListener) obj).onRunnerStart(clazz,
+ ((PUnitEventListener) obj).onRunnerStart(clazz,
PUnitAbstractRunner.this);
}
});
}
private void onRunnerEnd(final Class clazz) {
- VisitorUtil.traverse(_runnerEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((RunnerEventListener) obj).onRunnerEnd(clazz,
+ ((PUnitEventListener) obj).onRunnerEnd(clazz,
PUnitAbstractRunner.this);
}
});
@@ -115,17 +151,17 @@
}
private void onClassStart(final Class clazz) {
- VisitorUtil.traverse(_classEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((ClassEventListener) obj).onClassStart(clazz);
+ ((PUnitEventListener) obj).onClassStart(clazz);
}
});
}
private void onClassEnd(final Class clazz) {
- VisitorUtil.traverse(_classEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((ClassEventListener) obj).onClassEnd(clazz);
+ ((PUnitEventListener) obj).onClassEnd(clazz);
}
});
}
@@ -179,33 +215,20 @@
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 registerLoggerListeners() {
addPUnitEventListener(_consoleLogger);
- addPUnitEventListener(_fileLogger);
+ addPUnitEventListener(_fileLogger);
+ _testMethodRunner.setEventListeners(_eventListeners);
}
- public void addPUnitEventListener(PUnitEvent listener) {
- addRunnerEventListener(listener);
- addClassEventListener(listener);
- _testMethodRunner.addMethodEventListener(listener);
- _testMethodRunner.addWatcherEventListener(listener);
+ public void addPUnitEventListener(PUnitEventListener listener) {
+ _eventListeners.add(listener);
}
+
+ public void removePUnitEventListener(PUnitEventListener listener) {
+ _eventListeners.remove(listener);
+ }
public void removeConsoleLogger() {
removePUnitEventListener(_consoleLogger);
@@ -215,13 +238,6 @@
removePUnitEventListener(_fileLogger);
}
- public void removePUnitEventListener(PUnitEvent logger) {
- removeRunnerEventListener(logger);
- removeClassEventListener(logger);
- _testMethodRunner.removeMethodEventListener(logger);
- _testMethodRunner.removeWatcherEventListener(logger);
- }
-
public ConsoleLoggerListener consoleLogger() {
return _consoleLogger;
}
@@ -234,11 +250,12 @@
_testMethodBuilder.addTestInterfaces(interfaces);
}
- private PUnitArgs defaultPargs(Class clazz) {
- String className = clazz.getName();
- String resultFolder = IOUtil.getCurrentPath();
- boolean intermediate = false;
- return new PUnitArgs(className, resultFolder,intermediate, null);
+ private PUnitArgs defaultPUnitRunnerArgs(Class clazz, VM[] vms) {
+ PUnitArgs pargs = new PUnitArgs();
+ pargs.setTestClassName(clazz.getName());
+ pargs.setResultFolder(IOUtil.getCurrentPath());
+ pargs.setAttachedVMs(vms);
+ return pargs;
}
private void punitArgs(PUnitArgs pargs) {
Modified: trunk/punit/src/org/punit/runner/PUnitArgs.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,19 +1,73 @@
package org.punit.runner;
+import java.util.*;
+
+import org.punit.type.*;
+
public class PUnitArgs {
-
- public PUnitArgs(String className, String folder, boolean intermediate, String vm) {
- testClassName = className;
- resultFolder = folder;
- this.intermediate = intermediate;
- this.vm = vm;
+
+ private String _testClassName;
+
+ private String _resultFolder;
+
+ private boolean _intermediate;
+
+ private VM[] _attachedVms;
+
+ /*
+ * the following field members are only used when _intermediate is false.
+ */
+ private String _vm;
+
+ private List _eventListners; // List <String>
+
+ public PUnitArgs() {
}
- public final String vm;
+ public String vm() {
+ return _vm;
+ }
+
+ public void setVm(String vm) {
+ _vm = vm;
+ }
+
+ public String testClassName() {
+ return _testClassName;
+ }
+
+ public void setTestClassName(String testClassName) {
+ _testClassName = testClassName;
+ }
+
+ public String resultFolder() {
+ return _resultFolder;
+ }
+
+ public void setResultFolder(String resultFolder) {
+ _resultFolder = resultFolder;
+ }
+
+ public boolean isIntermediate() {
+ return _intermediate;
+ }
+
+ public void setIntermediate(boolean intermediate) {
+ _intermediate = intermediate;
+ }
+
+ public List eventListeners() {
+ return _eventListners;
+ }
- public final String testClassName;
+ public void setEventListeners(List eventListners) {
+ _eventListners = eventListners;
+ }
- public final String resultFolder;
-
- public final boolean intermediate;
+ public VM[] attachedVMs() {
+ return _attachedVms;
+ }
+ public void setAttachedVMs(VM[] vms) {
+ _attachedVms = vms;
+ }
}
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -5,7 +5,7 @@
import org.punit.runner.method.*;
import org.punit.type.*;
-public interface Runner extends RunnerEvent, ClassEvent, PUnitName {
+public interface Runner extends PUnitEventRegsitry, PUnitName {
public void run(Class clazz);
@@ -17,15 +17,4 @@
public TestSuiteBuilder testSuiteBuiler();
- public void addRunnerEventListener(RunnerEventListener listener);
-
- public void removeRunnerEventListener(RunnerEventListener listener);
-
- public void addPUnitEventListener(PUnitEvent listener);
-
- public void removePUnitEventListener(PUnitEvent listener);
-
- public void addClassEventListener(ClassEventListener listener);
-
- public void removeClassEventListener(ClassEventListener listener);
}
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -25,10 +25,8 @@
protected Method _setUpMethod;
- private List _methodEventListeners = new ArrayList();
+ private List _eventListeners;
- private List _watcherEventListeners = new ArrayList();
-
public AbstractTestMethodRunner() {
_watchers = new Watcher[] { new MemoryWatcher(), new TimeWatcher() };
}
@@ -37,6 +35,10 @@
_watchers = watchers;
}
+ public void setEventListeners(List listeners) {
+ _eventListeners = listeners;
+ }
+
public void run(Object testInstance, Method method, Object[] params) {
Throwable throwable = null;
try {
@@ -66,17 +68,17 @@
}
private void onMethodStart(final Method method) {
- VisitorUtil.traverse(_methodEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((MethodEventListener) obj).onMethodStart(method);
+ ((PUnitEventListener) obj).onMethodStart(method);
}
});
}
private void onMethodEnd(final Method method, final Throwable t) {
- VisitorUtil.traverse(_methodEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((MethodEventListener) obj).onMethodEnd(method, t);
+ ((PUnitEventListener) obj).onMethodEnd(method, t);
}
});
}
@@ -159,17 +161,17 @@
}
private void onWatchersStart() {
- VisitorUtil.traverse(_watcherEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((WatcherEventListener) obj).onWatchersStart(_watchers);
+ ((PUnitEventListener) obj).onWatchersStart(_watchers);
}
});
}
private void onWatcherStart(final Watcher watcher) {
- VisitorUtil.traverse(_watcherEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((WatcherEventListener) obj).onWatcherStart(watcher);
+ ((PUnitEventListener) obj).onWatcherStart(watcher);
}
});
}
@@ -183,29 +185,21 @@
}
private void onWatcherEnd(final Watcher watcher) {
- VisitorUtil.traverse(_methodEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((WatcherEventListener) obj).onWatcherEnd(watcher);
+ ((PUnitEventListener) obj).onWatcherEnd(watcher);
}
});
}
private void onWatchersEnd() {
- VisitorUtil.traverse(_methodEventListeners.iterator(), new Traverser() {
+ VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((WatcherEventListener) obj).onWatchersEnd(_watchers);
+ ((PUnitEventListener) obj).onWatchersEnd(_watchers);
}
});
}
-// protected final double[] watchersValues() {
-// double[] values = new double[_watchers.length];
-// for (int i = 0; i < _watchers.length; ++i) {
-// values[i] = _watchers[i].value();
-// }
-// return values;
-// }
-
public Watcher[] watchers() {
return _watchers;
}
@@ -214,20 +208,4 @@
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/TestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,11 +1,11 @@
package org.punit.runner.method;
import java.lang.reflect.*;
+import java.util.*;
-import org.punit.events.*;
import org.punit.watcher.*;
-public interface TestMethodRunner extends MethodEvent, WatcherEvent {
+public interface TestMethodRunner {
/**
* Runs the test method, and returns the watcher values.
*
@@ -14,6 +14,8 @@
* @return
*/
public void run(Object testInstance, Method method, Object[] params);
+
+ public void setEventListeners(List eventListeners);
/**
* returns the watchers associated with this method runner.
Modified: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -1,17 +1,34 @@
package org.punit.util;
+import java.util.*;
+
import org.punit.message.*;
import org.punit.runner.*;
public class ArgUtil {
public static PUnitArgs getPUnitArgs(String[] args) {
- if (args.length < 1 || args.length > 4) {
+ int length = args.length;
+ if (length < 1) {
throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
}
- String className = args[0];
- String resultFolder = args.length >= 2 ? args[1] : null;
- boolean intermediate = args.length >= 3 ? Boolean.parseBoolean(args[2]) : false;
- String vm = args.length >= 4 ? args[3] : null;
- return new PUnitArgs(className, resultFolder, intermediate, vm);
+ PUnitArgs pargs = new PUnitArgs();
+ pargs.setTestClassName(args[0]);
+ if(length >= 2) {
+ pargs.setResultFolder(args[1]);
+ }
+ if(length >= 3) {
+ pargs.setIntermediate(Boolean.parseBoolean(args[2]));
+ }
+ if(length >= 4) {
+ pargs.setVm(args[3]);
+ }
+ if(length >= 5) {
+ List eventListners = new ArrayList();
+ for(int i = 4; i <length; ++i) {
+ eventListners.add(args[i]);
+ }
+ pargs.setEventListeners(eventListners);
+ }
+ return pargs;
}
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-15 11:11:19 UTC (rev 81)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-15 22:01:02 UTC (rev 82)
@@ -17,13 +17,17 @@
import org.jfree.data.category.*;
import org.jfree.ui.*;
import org.punit.events.*;
+import org.punit.exception.*;
import org.punit.message.*;
import org.punit.runner.*;
+import org.punit.type.*;
import org.punit.util.*;
import org.punit.watcher.*;
-public class OverviewImageReporter implements PUnitEvent {
+public class OverviewImageReporter implements PUnitEventListener {
+ private static final String SER = ".ser"; //$NON-NLS-1$
+
private static int DEFAULT_HEIGHT = 750;
private static int DEFAULT_WIDTH = 750;
@@ -41,7 +45,9 @@
private int _width;
private String _format;
-
+
+ private PUnitArgs _pargs;
+
public OverviewImageReporter() {
this(DEFAULT_HEIGHT, DEFAULT_WIDTH, DEFAULT_FORMAT);
}
@@ -53,6 +59,7 @@
}
public void onRunnerStart(Class clazz, Runner runner) {
+ _pargs = runner.punitArgs();
Watcher[] watchers = runner.testMethodRunner().watchers();
_overviewDatasets = new Hashtable(watchers.length);
for (int i = 0; i < watchers.length; ++i) {
@@ -60,21 +67,53 @@
}
}
- public void onRunnerEnd(Class clazz, final Runner runner) {
+ public void onRunnerEnd(final Class clazz, final Runner runner) {
Set entrySet = _overviewDatasets.entrySet();
+ final VM[] vms = _pargs.attachedVMs();
VisitorUtil.traverse(entrySet.iterator(), new Traverser() {
public void traverse(Object obj) {
Entry entry = (Entry) obj;
Watcher watcher = (Watcher) entry.getKey();
- CategoryDataset dataset = (CategoryDataset) entry.getValue();
- String yLegendText = watcher.punitName() + " [" + watcher.unit() + "]"; //$NON-NLS-1$//$NON-NLS-2$
- JFreeChart chart = renderChart(yLegendText, dataset);
- String fileName = generateOverviewImageFileName(runner, watcher);
- saveChartAsPNG(chart, new File(fileName));
+ DefaultCategoryDataset dataset = (DefaultCategoryDataset) entry
+ .getValue();
+ String yLegendText = watcher.punitName()
+ + " [" + watcher.unit() + "]"; //$NON-NLS-1$//$NON-NLS-2$
+ if (isParentRunner()) {
+ for (i...
[truncated message content] |
|
From: <zha...@us...> - 2007-05-15 22:06:08
|
Revision: 83
http://p-unit.svn.sourceforge.net/p-unit/?rev=83&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 15:06:08 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: Refactored "VisitorUtil" to "TraverserUtil"
Modified Paths:
--------------
trunk/punit/src/org/punit/exception/ConcurrentException.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
Added Paths:
-----------
trunk/punit/src/org/punit/util/TraverserUtil.java
Removed Paths:
-------------
trunk/punit/src/org/punit/util/VisitorUtil.java
Modified: trunk/punit/src/org/punit/exception/ConcurrentException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -20,7 +20,7 @@
public void printStackTrace() {
System.err.println(ConcurrentException.class.getName()+":"); //$NON-NLS-1$
- VisitorUtil.traverse(_throwables.iterator(), new Traverser() {
+ TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
public void traverse(Object obj) {
((Throwable) obj).printStackTrace();
}
@@ -29,7 +29,7 @@
public void printStackTrace(final PrintStream ps) {
ps.println(ConcurrentException.class.getName() + ":"); //$NON-NLS-1$
- VisitorUtil.traverse(_throwables.iterator(), new Traverser() {
+ TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
public void traverse(Object obj) {
((Throwable) obj).printStackTrace(ps);
}
@@ -38,7 +38,7 @@
public void printStackTrace(final PrintWriter pw) {
pw.println(ConcurrentException.class.getName() + ":"); //$NON-NLS-1$
- VisitorUtil.traverse(_throwables.iterator(), new Traverser() {
+ TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
public void traverse(Object obj) {
((Throwable) obj).printStackTrace(pw);
}
@@ -47,7 +47,7 @@
public String getMessage() {
GetMessageVisitor visitor = new GetMessageVisitor();
- VisitorUtil.traverse(_throwables.iterator(), visitor);
+ TraverserUtil.traverse(_throwables.iterator(), visitor);
return visitor.sb.toString();
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -166,7 +166,7 @@
sb.append(_timeWatcher.stringValue());
sb.append(LoggerUtil.LINE_SEPERATOR);
logger.log(sb.toString(), Level.INFO);
- VisitorUtil.traverse(_throwableList.iterator(), new Traverser() {
+ TraverserUtil.traverse(_throwableList.iterator(), new Traverser() {
int count = 0;
public void traverse(Object obj) {
logger.log(++count + ")", Level.INFO); //$NON-NLS-1$
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -56,7 +56,7 @@
return;
}
_eventListeners.clear();
- VisitorUtil.traverse(eventListners.iterator(), new Traverser() {
+ TraverserUtil.traverse(eventListners.iterator(), new Traverser() {
public void traverse(Object obj) {
String eventListenerName = (String) obj;
PUnitEventListener listener = (PUnitEventListener) ReflectionUtil.newInstance(ReflectionUtil.newClass(eventListenerName));
@@ -109,7 +109,7 @@
sb.append(" true "); //$NON-NLS-1$
sb.append(vm.punitName());
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
PUnitEventListener eventListener = (PUnitEventListener) obj;
sb.append(" "); //$NON-NLS-1$
@@ -120,7 +120,7 @@
}
private void onRunnerStart(final Class clazz) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onRunnerStart(clazz,
PUnitAbstractRunner.this);
@@ -129,7 +129,7 @@
}
private void onRunnerEnd(final Class clazz) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onRunnerEnd(clazz,
PUnitAbstractRunner.this);
@@ -151,7 +151,7 @@
}
private void onClassStart(final Class clazz) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onClassStart(clazz);
}
@@ -159,7 +159,7 @@
}
private void onClassEnd(final Class clazz) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onClassEnd(clazz);
}
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -68,7 +68,7 @@
}
private void onMethodStart(final Method method) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onMethodStart(method);
}
@@ -76,7 +76,7 @@
}
private void onMethodEnd(final Method method, final Throwable t) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onMethodEnd(method, t);
}
@@ -161,7 +161,7 @@
}
private void onWatchersStart() {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatchersStart(_watchers);
}
@@ -169,7 +169,7 @@
}
private void onWatcherStart(final Watcher watcher) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatcherStart(watcher);
}
@@ -185,7 +185,7 @@
}
private void onWatcherEnd(final Watcher watcher) {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatcherEnd(watcher);
}
@@ -193,7 +193,7 @@
}
private void onWatchersEnd() {
- VisitorUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatchersEnd(_watchers);
}
Copied: trunk/punit/src/org/punit/util/TraverserUtil.java (from rev 67, trunk/punit/src/org/punit/util/VisitorUtil.java)
===================================================================
--- trunk/punit/src/org/punit/util/TraverserUtil.java (rev 0)
+++ trunk/punit/src/org/punit/util/TraverserUtil.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -0,0 +1,11 @@
+package org.punit.util;
+
+import java.util.*;
+
+public class TraverserUtil {
+ public static void traverse(Iterator iter, Traverser traverser) {
+ while (iter.hasNext()) {
+ traverser.traverse(iter.next());
+ }
+ }
+}
Deleted: trunk/punit/src/org/punit/util/VisitorUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/VisitorUtil.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit/src/org/punit/util/VisitorUtil.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -1,11 +0,0 @@
-package org.punit.util;
-
-import java.util.*;
-
-public class VisitorUtil {
- public static void traverse(Iterator iter, Traverser traverser) {
- while (iter.hasNext()) {
- traverser.traverse(iter.next());
- }
- }
-}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-15 22:01:02 UTC (rev 82)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-15 22:06:08 UTC (rev 83)
@@ -70,7 +70,7 @@
public void onRunnerEnd(final Class clazz, final Runner runner) {
Set entrySet = _overviewDatasets.entrySet();
final VM[] vms = _pargs.attachedVMs();
- VisitorUtil.traverse(entrySet.iterator(), new Traverser() {
+ TraverserUtil.traverse(entrySet.iterator(), new Traverser() {
public void traverse(Object obj) {
Entry entry = (Entry) obj;
Watcher watcher = (Watcher) entry.getKey();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-16 18:15:20
|
Revision: 84
http://p-unit.svn.sourceforge.net/p-unit/?rev=84&view=rev
Author: zhanghuangzhu
Date: 2007-05-16 11:15:20 -0700 (Wed, 16 May 2007)
Log Message:
-----------
Andrew Zhang: Runner is serializable.
Modified Paths:
--------------
trunk/punit/src/org/punit/PUnit.java
trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestMethodBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/TestMethodRunner.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/reporter/logger/PUnitLoggerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
trunk/punit.test/src/tests/util/TestUtil.java
Modified: trunk/punit/src/org/punit/PUnit.java
===================================================================
--- trunk/punit/src/org/punit/PUnit.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/PUnit.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -6,6 +6,6 @@
}
public static String version() {
- return "0.9 alpha"; //$NON-NLS-1$
+ return "0.10"; //$NON-NLS-1$
}
}
Modified: trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -6,6 +6,11 @@
public class PUnitParameterizableTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 8889753701695767248L;
+
protected boolean isParamValid(Method method) {
Class[] params = method.getParameterTypes();
return params.length == 1 && Parameter.class.isAssignableFrom(params[0]);
Modified: trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -4,6 +4,11 @@
public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 3829703758541941842L;
+
protected boolean isParamValid(Method method) {
return method.getParameterTypes().length == 0;
}
Modified: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -6,6 +6,12 @@
import org.punit.util.*;
public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 633363267326297920L;
+
+
public Object[] buildTestClasses(Class clazz) {
List testClasses = new ArrayList();
buildTestClasses(testClasses, clazz);
Modified: trunk/punit/src/org/punit/builder/TestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,7 +1,9 @@
package org.punit.builder;
+import java.io.*;
-public interface TestMethodBuilder {
+
+public interface TestMethodBuilder extends Serializable {
/**
* Builds the test methods from the test class. Returns a list of methods.
* The real return type should be Method[]. It returns Object[] for java 1.4
Modified: trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,6 +1,8 @@
package org.punit.builder;
-public interface TestSuiteBuilder {
+import java.io.*;
+
+public interface TestSuiteBuilder extends Serializable{
/**
* Builds the test suite. Returns a list of test classes. The real return
* type should be Class[]. It returns Object[] for java 1.4 compatibility.
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,11 +1,12 @@
package org.punit.events;
+import java.io.*;
import java.lang.reflect.*;
import org.punit.runner.*;
import org.punit.watcher.*;
-public interface PUnitEventListener {
+public interface PUnitEventListener extends Serializable {
public void onRunnerStart(Class clazz, Runner runner);
Modified: trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventRegsitry.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/events/PUnitEventRegsitry.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,8 +1,12 @@
package org.punit.events;
+import java.util.*;
+
public interface PUnitEventRegsitry {
public void addPUnitEventListener(PUnitEventListener listener);
public void removePUnitEventListener(PUnitEventListener listener);
+
+ public List eventListeners();
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -13,12 +13,17 @@
public class StreamLoggerListener implements PUnitEventListener {
- public PrintStream _ps;
+ /**
+ *
+ */
+ private static final long serialVersionUID = 380252228907567735L;
- Summary _summary = new Summary();
+ protected transient PrintStream _ps;
- private boolean _watchersStart;
+ protected transient Summary _summary = new Summary();
+ private transient boolean _watchersStart;
+
public Level _level = Level.FINE;
public StreamLoggerListener() {
@@ -94,6 +99,10 @@
public void setOutputStream(PrintStream ps) {
_ps = ps;
}
+
+ public PrintStream printStream() {
+ return _ps;
+ }
public void logln(Level level) {
log(LoggerUtil.LINE_SEPERATOR, level);
Modified: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,9 +1,21 @@
package org.punit.reporter.stream.console;
+import java.io.*;
+
import org.punit.reporter.stream.*;
public class ConsoleLoggerListener extends StreamLoggerListener {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -9118571092210467166L;
+
+ private void readObject(java.io.ObjectInputStream in) throws IOException,
+ ClassNotFoundException {
+ _ps = System.err;
+ }
+
public ConsoleLoggerListener() {
super(System.err);
}
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -8,6 +8,11 @@
public class FileLoggerListener extends StreamLoggerListener {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -7255913705728005915L;
+
public void onRunnerStart(Class clazz, Runner runner) {
if(isParentRunner(runner)) {
return;
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -222,6 +222,10 @@
_testMethodRunner.setEventListeners(_eventListeners);
}
+ public List eventListeners() {
+ return _eventListeners;
+ }
+
public void addPUnitEventListener(PUnitEventListener listener) {
_eventListeners.add(listener);
}
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -8,6 +8,11 @@
public class PUnitConcurrentParameterizableRunner extends PUnitAbstractRunner
implements ParameterizableRunner {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6973380541459392869L;
+
public PUnitConcurrentParameterizableRunner() {
super(new PUnitTestSuiteBuilder(),
new PUnitParameterizableTestMethodBuilder(),
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -7,6 +7,11 @@
public class PUnitConcurrentRunner extends PUnitAbstractRunner {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -8752725777891055594L;
+
public PUnitConcurrentRunner() {
super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(), new ConcurrentTestMethodRunner());
}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -7,6 +7,11 @@
public class PUnitSoloParameterizableRunner extends PUnitAbstractRunner implements ParameterizableRunner {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1212169326219608063L;
+
public PUnitSoloParameterizableRunner() {
super(new PUnitTestSuiteBuilder(), new PUnitParameterizableTestMethodBuilder(), new SoloTestMethodRunner());
}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -9,6 +9,11 @@
/**
*
+ */
+ private static final long serialVersionUID = -1868956002428374452L;
+
+ /**
+ *
* @param args
* args[0] test class; args[1] test result folder. uses current
* folder if it is not specified
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,11 +1,13 @@
package org.punit.runner;
+import java.io.*;
+
import org.punit.builder.*;
import org.punit.events.*;
import org.punit.runner.method.*;
import org.punit.type.*;
-public interface Runner extends PUnitEventRegsitry, PUnitName {
+public interface Runner extends PUnitEventRegsitry, PUnitName, Serializable {
public void run(Class clazz);
Modified: trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -6,6 +6,11 @@
public class ConcurrentTestMethodRunner extends AbstractTestMethodRunner {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -7121609228780107017L;
+
TestMethodThread[] _threads;
ConcurrentException _concurrentException = new ConcurrentException();
Modified: trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -5,6 +5,11 @@
public class SoloTestMethodRunner extends AbstractTestMethodRunner {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 3278612571978181393L;
+
protected void runImpl() throws Throwable {
try {
ReflectionUtil.invokeMethod(_method, _testInstance, _params);
Modified: trunk/punit/src/org/punit/runner/method/TestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,11 +1,12 @@
package org.punit.runner.method;
+import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import org.punit.watcher.*;
-public interface TestMethodRunner {
+public interface TestMethodRunner extends Serializable{
/**
* Runs the test method, and returns the watcher values.
*
Modified: trunk/punit/src/org/punit/watcher/MemoryWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -5,6 +5,11 @@
public class MemoryWatcher implements Watcher {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2483161714907047937L;
+
private long _startUsedMemory;
private long _maxUsedMemory;
Modified: trunk/punit/src/org/punit/watcher/TimeWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -23,6 +23,11 @@
public class TimeWatcher implements Watcher {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3947339222142255894L;
+
private long _startTime;
private long _endTime;
Modified: trunk/punit/src/org/punit/watcher/Watcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/Watcher.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit/src/org/punit/watcher/Watcher.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,8 +1,10 @@
package org.punit.watcher;
+import java.io.*;
+
import org.punit.type.*;
-public interface Watcher extends PUnitName {
+public interface Watcher extends PUnitName, Serializable {
public void start();
Modified: trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/api/org/punit/reporter/logger/PUnitLoggerTest.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,12 +1,17 @@
package tests.api.org.punit.reporter.logger;
import java.io.*;
+import java.util.*;
import java.util.logging.*;
import junit.framework.*;
import org.punit.reporter.stream.console.*;
+import org.punit.runner.*;
+import tests.api.org.punit.runner.*;
+import tests.util.*;
+
public class PUnitLoggerTest extends TestCase {
ConsoleLoggerListener _logger = new ConsoleLoggerListener();
@@ -35,6 +40,11 @@
assertNotPrinted();
}
+ public void testSerializable() throws Exception {
+ ConsoleLoggerListener logger = (ConsoleLoggerListener) TestUtil.getSerialiableObject(_logger);
+ assertSame(System.err, logger.printStream());
+ }
+
private void assertPrinted() {
assertTrue(_mockPrintStream._printed);
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,10 +1,13 @@
package tests.api.org.punit.runner;
+import java.util.*;
+
import junit.framework.*;
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
+import tests.util.*;
public class PUnitConcurrentParameterizableRunnerTest extends TestCase {
private PUnitConcurrentParameterizableRunner _runner;
@@ -23,6 +26,14 @@
assertTestClassRun();
}
+ public void testSerializable() throws Exception {
+ _runner.addPUnitEventListener(new MockPUnitEventListener());
+ List expectedListeners = _runner.eventListeners();
+ PUnitConcurrentParameterizableRunner runner = (PUnitConcurrentParameterizableRunner) TestUtil.getSerialiableObject(_runner);
+ List eventListeners = runner.eventListeners();
+ assertEquals(expectedListeners.size(), eventListeners.size());
+ }
+
private void assertTestClassRun() {
assertEquals(ConcurrentParameterizableTestClass.SUM
* ConcurrentParameterizableTestClass.COCURRENT_COUNT,
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,10 +1,13 @@
package tests.api.org.punit.runner;
+import java.util.*;
+
import junit.framework.*;
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
+import tests.util.*;
public class PUnitConcurrentRunnerTest extends TestCase {
private PUnitConcurrentRunner _runner;
@@ -45,6 +48,14 @@
assertPUnitTestNotRun();
}
+ public void testSerializable() throws Exception {
+ _runner.addPUnitEventListener(new MockPUnitEventListener());
+ List expectedListeners = _runner.eventListeners();
+ PUnitConcurrentRunner runner = (PUnitConcurrentRunner) TestUtil.getSerialiableObject(_runner);
+ List eventListeners = runner.eventListeners();
+ assertEquals(expectedListeners.size(), eventListeners.size());
+ }
+
private void assertPUnitTestNotRun() {
assertFalse(PUnitTestClass._test1);
assertFalse(PUnitTestClass._test2);
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,10 +1,13 @@
package tests.api.org.punit.runner;
+import java.util.*;
+
import junit.framework.*;
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
+import tests.util.*;
public class PUnitSoloParameterizableRunnerTest extends TestCase {
private PUnitSoloParameterizableRunner _runner;
@@ -23,6 +26,14 @@
assertTestClassRun();
}
+ public void testSerializable() throws Exception {
+ _runner.addPUnitEventListener(new MockPUnitEventListener());
+ List expectedListeners = _runner.eventListeners();
+ PUnitSoloParameterizableRunner runner = (PUnitSoloParameterizableRunner) TestUtil.getSerialiableObject(_runner);
+ List eventListeners = runner.eventListeners();
+ assertEquals(expectedListeners.size(), eventListeners.size());
+ }
+
private void assertTestClassRun() {
assertEquals(ParameterizableTestClass.SUM, ParameterizableTestClass._test1);
assertFalse(ParameterizableTestClass._test2);
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,8 +1,11 @@
package tests.api.org.punit.runner;
+import java.util.*;
+
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
+import tests.util.*;
public class PUnitSoloRunnerTest extends AbstractPUnitRunnerTest {
@@ -48,6 +51,14 @@
assertAllEventsInvoked();
}
+ public void testSerializable() throws Exception {
+ _runner.addPUnitEventListener(new MockPUnitEventListener());
+ List expectedListeners = _runner.eventListeners();
+ PUnitSoloRunner runner = (PUnitSoloRunner) TestUtil.getSerialiableObject(_runner);
+ List eventListeners = runner.eventListeners();
+ assertEquals(expectedListeners.size(), eventListeners.size());
+ }
+
private void assertPUnitTestClassRun() {
_runner.run(PUnitTestClass.class);
assertFalse(PUnitTestClass._test1);
Modified: trunk/punit.test/src/tests/util/TestUtil.java
===================================================================
--- trunk/punit.test/src/tests/util/TestUtil.java 2007-05-15 22:06:08 UTC (rev 83)
+++ trunk/punit.test/src/tests/util/TestUtil.java 2007-05-16 18:15:20 UTC (rev 84)
@@ -1,5 +1,6 @@
package tests.util;
+import java.io.*;
import java.lang.reflect.*;
import java.util.*;
@@ -15,6 +16,16 @@
private static Random _random = new Random();
+ public static Object getSerialiableObject(Object obj) throws Exception {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(obj);
+ oos.close();
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ ObjectInputStream fis = new ObjectInputStream(bais);
+ return fis.readObject();
+ }
+
public static String[] toMethodNameArray(Object[] methods) {
String[] names = new String[methods.length];
for (int i = 0; i < methods.length; ++i) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-16 22:27:27
|
Revision: 87
http://p-unit.svn.sourceforge.net/p-unit/?rev=87&view=rev
Author: zhanghuangzhu
Date: 2007-05-16 15:26:42 -0700 (Wed, 16 May 2007)
Log Message:
-----------
Andrew Zhang: use .ser and .cfg to launch the child vm.
Modified Paths:
--------------
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit/src/org/punit/type/VM.java
trunk/punit/src/org/punit/util/ArgUtil.java
trunk/punit/src/org/punit/util/IOUtil.java
trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
trunk/punit.test/src/extension/tests/samples/VMsSample.java
trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
Added Paths:
-----------
trunk/punit/src/org/punit/runner/RunnerProperties.java
trunk/punit.test/src/tests/api/org/punit/util/IOUtilTest.java
Removed Paths:
-------------
trunk/punit/src/org/punit/runner/PUnitArgs.java
trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -13,14 +13,11 @@
public class StreamLoggerListener implements PUnitEventListener {
- /**
- *
- */
private static final long serialVersionUID = 380252228907567735L;
protected transient PrintStream _ps;
- protected transient Summary _summary = new Summary();
+ protected transient Summary _summary;
private transient boolean _watchersStart;
@@ -34,12 +31,14 @@
}
public void onRunnerStart(Class clazz, Runner runner) {
+ _summary = new Summary();
_summary.start();
StringBuffer sb = new StringBuffer();
sb.append("["); //$NON-NLS-1$
sb.append(runner.punitName());
sb.append("] "); //$NON-NLS-1$
sb.append(Messages.getString("logger.01")); //$NON-NLS-1$
+ sb.append(" "); //$NON-NLS-1$
sb.append(clazz.getName());
sb.append(LoggerUtil.LINE_SEPERATOR);
log(sb.toString(), Level.INFO);
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -5,12 +5,10 @@
import org.punit.reporter.*;
import org.punit.reporter.stream.*;
import org.punit.runner.*;
+import org.punit.util.*;
public class FileLoggerListener extends StreamLoggerListener {
- /**
- *
- */
private static final long serialVersionUID = -7255913705728005915L;
public void onRunnerStart(Class clazz, Runner runner) {
@@ -41,25 +39,25 @@
}
private String generateFileName(Class clazz, Runner runner) {
- PUnitArgs pargs = runner.punitArgs();
+ RunnerProperties properties = runner.properties();
StringBuffer sb = new StringBuffer();
- sb.append(pargs.resultFolder());
+ sb.append(IOUtil.getCurrentPath());
sb.append(File.separator);
sb.append(ReporterConstants.RESULT_FOLDER);
sb.append(File.separator);
sb.append(clazz.getName());
sb.append("."); //$NON-NLS-1$
sb.append(runner.punitName());
- if(pargs.vm() != null) {
+ if(properties.vmName != null) {
sb.append("."); //$NON-NLS-1$
- sb.append(pargs.vm());
+ sb.append(properties.vmName);
}
sb.append(".txt"); //$NON-NLS-1$
return sb.toString();
}
- // TODO: should be refactored
+ // TODO: should be refactored to AbstractPUnitEventListener
private boolean isParentRunner(Runner runner) {
- return runner.punitArgs().attachedVMs() != null;
+ return runner.properties().isParent;
}
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -26,10 +26,8 @@
private FileLoggerListener _fileLogger = new FileLoggerListener();
- public Class _testClass;
+ private RunnerProperties _properties = new RunnerProperties();
- private transient PUnitArgs _pargs;
-
public PUnitAbstractRunner(TestSuiteBuilder testSuiteBuiler,
TestMethodBuilder testMethodBuilder,
TestMethodRunner testMethodRunner) {
@@ -40,36 +38,6 @@
}
public void run(Class clazz) {
- punitArgs(defaultPUnitRunnerArgs(clazz, null));
- _testClass = clazz;
- runImpl(clazz);
- }
-
- protected void run(PUnitArgs pargs) {
- punitArgs(pargs);
- Class testClass = ReflectionUtil.newClass(pargs.testClassName());
- if(pargs.isIntermediate()) {
- setEventListeners(pargs);
- }
- runImpl(testClass);
- }
-
- private void setEventListeners(PUnitArgs pargs) {
- List eventListners = pargs.eventListeners();
- if(eventListners == null) {
- return;
- }
- _eventListeners.clear();
- TraverserUtil.traverse(eventListners.iterator(), new Traverser() {
- public void traverse(Object obj) {
- String eventListenerName = (String) obj;
- PUnitEventListener listener = (PUnitEventListener) ReflectionUtil.newInstance(ReflectionUtil.newClass(eventListenerName));
- addPUnitEventListener(listener);
- }
- });
- }
-
- private void runImpl(Class clazz) {
onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
for (int i = 0; i < testClasses.length; ++i) {
@@ -77,49 +45,76 @@
}
onRunnerEnd(clazz);
}
+
+ public void run(Class clazz, RunnerProperties properties) {
+ _properties = properties;
+ run(clazz);
+ }
- public void runVMs(Class clazz, VM[] vm) {
- punitArgs(defaultPUnitRunnerArgs(clazz, vm));
+ public void runVMs(Class clazz, VM[] vms) {
+ _properties.isParent = true;
+ _properties.vms = vms;
onRunnerStart(clazz);
- for (int i = 0; i < vm.length; ++i) {
- String command = generateVMCommand(clazz, vm[i]);
+ for (int i = 0; i < vms.length; ++i) {
+ VM vm = vms[i];
+ storeRunnerConfig(vm);
+ storeRunnerProperties(vm);
+ String command = generateVMCommand(clazz, vm);
Process p = IOUtil.exec(command);
try {
p.waitFor();
} catch (InterruptedException e) {
throw new PUnitIOException(e);
}
+ deleteRunnerConfig(vm);
+ deleteRunnerProperties(vm);
}
onRunnerEnd(clazz);
}
+
+ private void deleteRunnerProperties(VM vm) {
+ IOUtil.deleteFile(runnerPropertiesFileName(vm));
+ }
- /*
- * VM command: D:\harmony_trunk\harmony-jre-r530500\bin\java -cp
- * D:\workspace_3.2\punit.test\bin;D:\workspace_3.2\punit.extension\bin;D:\workspace_3.2\punit\bin;D:\tools\eclipse3.2\plugins\org.junit_3.8.1\junit.jar
- * org.punit.runner.PUnitSoloRunner tests.samples.VMsSample
- * D:\workspace_3.2\punit.test true Harmony
- * org.punit.reporter.stream.console.ConsoleLoggerListener
- * org.punit.reporter.stream.file.FileLoggerListener
- */
- private String generateVMCommand(Class testClass, VM vm) {
+ private void deleteRunnerConfig(VM vm) {
+ IOUtil.deleteFile(runnerConfigFileName(vm));
+ }
+
+ private void storeRunnerProperties(VM vm) {
+ RunnerProperties properties = new RunnerProperties();
+ properties.vmName = vm.punitName();
+ properties.isIntermediate = true;
+ IOUtil.serialize(properties, runnerPropertiesFileName(vm));
+ }
+
+ private void storeRunnerConfig(VM vm) {
+ IOUtil.serialize(this, runnerConfigFileName(vm));
+ }
+
+ private String runnerConfigFileName(VM vm) {
+ return vm.punitName() + ".cfg"; //$NON-NLS-1$
+ }
+
+ private String runnerPropertiesFileName(VM vm) {
+ return vm.punitName() + ".prop"; //$NON-NLS-1$
+ }
+
+ public RunnerProperties properties() {
+ return _properties;
+ }
+
+
+ private String generateVMCommand(Class clazz, VM vm) {
final StringBuffer sb = new StringBuffer();
sb.append(vm.path());
sb.append(" "); //$NON-NLS-1$
sb.append(this.getClass().getName());
sb.append(" "); //$NON-NLS-1$
- sb.append(testClass.getName());
+ sb.append(clazz.getName());
sb.append(" "); //$NON-NLS-1$
- sb.append(IOUtil.getCurrentPath());
- sb.append(" true "); //$NON-NLS-1$
- sb.append(vm.punitName());
-
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
- public void traverse(Object obj) {
- PUnitEventListener eventListener = (PUnitEventListener) obj;
- sb.append(" "); //$NON-NLS-1$
- sb.append(eventListener.getClass().getName());
- }
- });
+ sb.append(runnerConfigFileName(vm));
+ sb.append(" "); //$NON-NLS-1$
+ sb.append(runnerPropertiesFileName(vm));
return sb.toString();
}
@@ -258,20 +253,4 @@
_testMethodBuilder.addTestInterfaces(interfaces);
}
- private PUnitArgs defaultPUnitRunnerArgs(Class clazz, VM[] vms) {
- PUnitArgs pargs = new PUnitArgs();
- pargs.setTestClassName(clazz.getName());
- pargs.setResultFolder(IOUtil.getCurrentPath());
- pargs.setAttachedVMs(vms);
- return pargs;
- }
-
- private void punitArgs(PUnitArgs pargs) {
- _pargs = pargs;
- }
-
- public PUnitArgs punitArgs() {
- return _pargs;
- }
-
}
Deleted: trunk/punit/src/org/punit/runner/PUnitArgs.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -1,73 +0,0 @@
-package org.punit.runner;
-
-import java.util.*;
-
-import org.punit.type.*;
-
-public class PUnitArgs {
-
- private String _testClassName;
-
- private String _resultFolder;
-
- private boolean _intermediate;
-
- private VM[] _attachedVms;
-
- /*
- * the following field members are only used when _intermediate is false.
- */
- private String _vm;
-
- private List _eventListners; // List <String>
-
- public PUnitArgs() {
- }
-
- public String vm() {
- return _vm;
- }
-
- public void setVm(String vm) {
- _vm = vm;
- }
-
- public String testClassName() {
- return _testClassName;
- }
-
- public void setTestClassName(String testClassName) {
- _testClassName = testClassName;
- }
-
- public String resultFolder() {
- return _resultFolder;
- }
-
- public void setResultFolder(String resultFolder) {
- _resultFolder = resultFolder;
- }
-
- public boolean isIntermediate() {
- return _intermediate;
- }
-
- public void setIntermediate(boolean intermediate) {
- _intermediate = intermediate;
- }
-
- public List eventListeners() {
- return _eventListners;
- }
-
- public void setEventListeners(List eventListners) {
- _eventListners = eventListners;
- }
-
- public VM[] attachedVMs() {
- return _attachedVms;
- }
- public void setAttachedVMs(VM[] vms) {
- _attachedVms = vms;
- }
-}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -16,8 +16,7 @@
* folder if it is not specified
*/
public static void main(String[] args) {
- PUnitArgs parg = ArgUtil.getPUnitArgs(args);
- new PUnitSoloRunner().run(parg);
+ ArgUtil.run(new PUnitSoloRunner(), args);
}
public PUnitSoloRunner() {
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -11,8 +11,10 @@
public void run(Class clazz);
- public PUnitArgs punitArgs();
+ public void run(Class clazz, RunnerProperties properties);
+ public RunnerProperties properties();
+
public TestMethodBuilder testMethodBuilder();
public TestMethodRunner testMethodRunner();
Added: trunk/punit/src/org/punit/runner/RunnerProperties.java
===================================================================
--- trunk/punit/src/org/punit/runner/RunnerProperties.java (rev 0)
+++ trunk/punit/src/org/punit/runner/RunnerProperties.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -0,0 +1,19 @@
+package org.punit.runner;
+
+import java.io.*;
+
+import org.punit.type.*;
+
+public class RunnerProperties implements Serializable {
+
+ private static final long serialVersionUID = 7995583333394319006L;
+
+ public String vmName;
+
+ public boolean isIntermediate;
+
+ public boolean isParent;
+
+ public VM[] vms;
+
+}
Modified: trunk/punit/src/org/punit/type/VM.java
===================================================================
--- trunk/punit/src/org/punit/type/VM.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/type/VM.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -1,6 +1,11 @@
package org.punit.type;
-public class VM implements PUnitName {
+import java.io.*;
+
+public class VM implements PUnitName, Serializable {
+
+ private static final long serialVersionUID = 7903136094137840375L;
+
private String _path;
private String _name;
Modified: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -1,34 +1,42 @@
package org.punit.util;
-import java.util.*;
+import java.io.*;
import org.punit.message.*;
import org.punit.runner.*;
public class ArgUtil {
- public static PUnitArgs getPUnitArgs(String[] args) {
+
+ private static final int MAX_ARGS = 3;
+
+ public static void run(Runner runner, String[] args) {
int length = args.length;
- if (length < 1) {
+ if (length == 0 || length > MAX_ARGS) {
throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
}
- PUnitArgs pargs = new PUnitArgs();
- pargs.setTestClassName(args[0]);
+ Runner testRunner = runner;
+ RunnerProperties properties = null;
+ Class testClass = ReflectionUtil.newClass(args[0]);
if(length >= 2) {
- pargs.setResultFolder(args[1]);
+ System.out.println(args[1]);
+ System.out.println(IOUtil.getCurrentPath());
+ try {
+ System.out.println(new File(args[1]).getCanonicalPath());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ testRunner = (Runner) IOUtil.getSerialiableObject(args[1]);
}
if(length >= 3) {
- pargs.setIntermediate(Boolean.parseBoolean(args[2]));
- }
- if(length >= 4) {
- pargs.setVm(args[3]);
- }
- if(length >= 5) {
- List eventListners = new ArrayList();
- for(int i = 4; i <length; ++i) {
- eventListners.add(args[i]);
+ try {
+ System.out.println(new File(args[2]).getCanonicalPath());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
- pargs.setEventListeners(eventListners);
+ properties = (RunnerProperties) IOUtil.getSerialiableObject(args[2]);
}
- return pargs;
+ testRunner.run(testClass, properties);
}
}
Modified: trunk/punit/src/org/punit/util/IOUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/IOUtil.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit/src/org/punit/util/IOUtil.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -12,7 +12,7 @@
throw new PUnitIOException(e);
}
}
-
+
public static Process exec(String command) {
try {
return Runtime.getRuntime().exec(command);
@@ -20,4 +20,47 @@
throw new PUnitIOException(e);
}
}
+
+ public static void serialize(Object obj, String fileName) {
+ ObjectOutputStream oos = null;
+ try {
+ FileOutputStream fos = new FileOutputStream(fileName);
+ oos = new ObjectOutputStream(fos);
+ oos.writeObject(obj);
+ oos.close();
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ } finally {
+ if (oos != null) {
+ try {
+ oos.close();
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ }
+ }
+ }
+ }
+
+ public static Object getSerialiableObject(String fileName) {
+ ObjectInputStream ois = null;
+ try {
+ FileInputStream fis = new FileInputStream(fileName);
+ ois = new ObjectInputStream(fis);
+ return ois.readObject();
+ } catch (Exception e) {
+ throw new PUnitIOException(e);
+ } finally {
+ if (ois != null) {
+ try {
+ ois.close();
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ }
+ }
+ }
+ }
+
+ public static void deleteFile(String string) {
+ new File(string).delete();
+ }
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -45,9 +45,9 @@
private int _width;
private String _format;
+
+ private RunnerProperties _runnerProperties;
- private PUnitArgs _pargs;
-
public OverviewImageReporter() {
this(DEFAULT_HEIGHT, DEFAULT_WIDTH, DEFAULT_FORMAT);
}
@@ -59,7 +59,7 @@
}
public void onRunnerStart(Class clazz, Runner runner) {
- _pargs = runner.punitArgs();
+ _runnerProperties = runner.properties();
Watcher[] watchers = runner.testMethodRunner().watchers();
_overviewDatasets = new Hashtable(watchers.length);
for (int i = 0; i < watchers.length; ++i) {
@@ -69,7 +69,7 @@
public void onRunnerEnd(final Class clazz, final Runner runner) {
Set entrySet = _overviewDatasets.entrySet();
- final VM[] vms = _pargs.attachedVMs();
+ final VM[] vms = _runnerProperties.vms;
TraverserUtil.traverse(entrySet.iterator(), new Traverser() {
public void traverse(Object obj) {
Entry entry = (Entry) obj;
@@ -88,7 +88,7 @@
}
String fileName = generateOverviewFileName(runner, watcher);
if (isIntermediate()) {
- fileName = fileName + _pargs.vm() + SER;
+ fileName = fileName + _runnerProperties.vmName + SER;
storeDatasetAsObject(dataset, new File(fileName));
} else {
fileName = fileName + _format;
@@ -250,11 +250,11 @@
}
private boolean isIntermediate() {
- return _pargs.isIntermediate();
+ return _runnerProperties.isIntermediate;
}
private boolean isParentRunner() {
- return _pargs.attachedVMs() != null;
+ return _runnerProperties.isParent;
}
}
Modified: trunk/punit.test/src/extension/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -17,12 +17,12 @@
}
private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
-
+ private static String HARMONY_IBMVME = "D:\\harmony_trunk\\trunk\\deploy\\jdk\\jre\\bin\\java" + CLASSPATH; //$NON-NLS-1$
private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java" + CLASSPATH; //$NON-NLS-1$
public static void main(String[] args) {
TestUtil.runUnitTest = false;
- VM harmonyVM = new VM(HARMONY, "Harmony"); //$NON-NLS-1$
+ VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
PUnitSoloRunner runner = new PUnitSoloRunner();
runner.addPUnitEventListener(new OverviewImageReporter());
Modified: trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -23,7 +23,6 @@
public static Class[] testCases() {
return new Class[] {
- ArgUtilTest.class,
ConcurrentExceptionTest.class,
LoggerUtilTest.class,
MemoryWatcherTest.class,
Deleted: trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-16 19:10:52 UTC (rev 86)
+++ trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -1,73 +0,0 @@
-package tests.api.org.punit.util;
-
-import java.util.*;
-
-import junit.framework.*;
-
-import org.punit.runner.*;
-import org.punit.util.*;
-
-import tests.util.*;
-
-public class ArgUtilTest extends TestCase {
-
- private static final String LISTENER1 = "listener1"; //$NON-NLS-1$
-
- private static final String LISTENER2 = "listener2"; //$NON-NLS-1$
-
- private static final String LISTENER3 = "listener3"; //$NON-NLS-1$
-
- private static String CLASS_NAME = "a"; //$NON-NLS-1$
-
- private static String RESULT_FOLDER = "b"; //$NON-NLS-1$
-
- private static String VM_NAME = "c"; //$NON-NLS-1$
-
- public void testGetPUnitArgs() {
- PUnitArgs pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME });
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertNull(pargs.resultFolder());
- assertFalse(pargs.isIntermediate());
-
- pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER });
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertEquals(RESULT_FOLDER, pargs.resultFolder());
- assertFalse(pargs.isIntermediate());
-
-
- pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "true" }); //$NON-NLS-1$
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertEquals(RESULT_FOLDER, pargs.resultFolder());
- assertTrue(pargs.isIntermediate());
-
- pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "true", VM_NAME }); //$NON-NLS-1$
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertEquals(RESULT_FOLDER, pargs.resultFolder());
- assertTrue(pargs.isIntermediate());
- assertEquals(VM_NAME, pargs.vm());
-
- pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "true", VM_NAME, LISTENER1, LISTENER2, LISTENER3 }); //$NON-NLS-1$
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertEquals(RESULT_FOLDER, pargs.resultFolder());
- assertTrue(pargs.isIntermediate());
- assertEquals(VM_NAME, pargs.vm());
- List list = new ArrayList();
- list.add(LISTENER1);
- list.add(LISTENER2);
- list.add(LISTENER3);
- assertEquals(list, pargs.eventListeners());
-
-
- pargs = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "false" }); //$NON-NLS-1$
- assertEquals(CLASS_NAME, pargs.testClassName());
- assertEquals(RESULT_FOLDER, pargs.resultFolder());
- assertFalse(pargs.isIntermediate());
-
- AssertUtil.assertException(IllegalArgumentException.class,
- new CodeRunner() {
- public void run() throws Throwable {
- ArgUtil.getPUnitArgs(new String[] {});
- }
- });
- }
-}
Added: trunk/punit.test/src/tests/api/org/punit/util/IOUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/IOUtilTest.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/util/IOUtilTest.java 2007-05-16 22:26:42 UTC (rev 87)
@@ -0,0 +1,55 @@
+package tests.api.org.punit.util;
+
+import java.io.*;
+
+import org.punit.exception.*;
+import org.punit.util.*;
+
+import tests.util.*;
+
+import junit.framework.*;
+
+public class IOUtilTest extends TestCase {
+
+ public void testSerialize1() throws IOException {
+ File file = File.createTempFile("test", "ser"); //$NON-NLS-1$//$NON-NLS-2$
+ file.deleteOnExit();
+ IOUtil.serialize(new SerializableClass1(), file.getCanonicalPath());
+ }
+
+ public void testSerialize2() throws IOException {
+ final File file = File.createTempFile("test", "ser"); //$NON-NLS-1$//$NON-NLS-2$
+ file.deleteOnExit();
+ AssertUtil.assertException(PUnitIOException.class, new CodeRunner() {
+ public void run() throws Throwable {
+ IOUtil.serialize(new NonSerializableClass1(), file.getCanonicalPath());
+ }
+ });
+ }
+
+ public void testgetSerializableObject() throws IOException {
+ File file = File.createTempFile("test", "ser"); //$NON-NLS-1$//$NON-NLS-2$
+ file.deleteOnExit();
+ String fileName = file.getCanonicalPath();
+ SerializableClass1 obj1 = new SerializableClass1();
+ IOUtil.serialize(obj1, fileName);
+ SerializableClass1 obj2 = (SerializableClass1) IOUtil.getSerialiableObject(fileName);
+ assertEquals(3, obj2.i);
+ }
+
+ public void testDeleteFile() throws Exception {
+ String fileName = "hello.txt"; //$NON-NLS-1$
+ new FileOutputStream(fileName).close();
+ IOUtil.deleteFile(fileName);
+ assertFalse(new File(fileName).exists());
+ }
+
+ private static class SerializableClass1 implements Serializable {
+ private static final long serialVersionUID = -5238909303048584560L;
+ public int i = 3;
+ }
+
+ private static class NonSerializableClass1 {
+ public int i = 3;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-16 23:13:02
|
Revision: 89
http://p-unit.svn.sourceforge.net/p-unit/?rev=89&view=rev
Author: zhanghuangzhu
Date: 2007-05-16 16:13:03 -0700 (Wed, 16 May 2007)
Log Message:
-----------
Andrew Zhang: refactored some codes
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
trunk/punit.test/src/extension/tests/samples/VMsSample.java
Added Paths:
-----------
trunk/punit.test/src/extension/tests/api/
trunk/punit.test/src/extension/tests/api/org/
trunk/punit.test/src/extension/tests/api/org/punit/
trunk/punit.test/src/extension/tests/api/org/punit/runner/
trunk/punit.test/src/extension/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
Removed Paths:
-------------
trunk/punit/src/org/punit/util/ArgUtil.java
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 22:37:02 UTC (rev 88)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -96,7 +96,7 @@
}
private String runnerPropertiesFileName(VM vm) {
- return vm.punitName() + ".prop"; //$NON-NLS-1$
+ return vm.punitName() + ".props"; //$NON-NLS-1$
}
public RunnerProperties properties() {
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-16 22:37:02 UTC (rev 88)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -16,7 +16,7 @@
* folder if it is not specified
*/
public static void main(String[] args) {
- ArgUtil.run(new PUnitSoloRunner(), args);
+ RunnerUtil.run(new PUnitSoloRunner(), args);
}
public PUnitSoloRunner() {
Deleted: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-16 22:37:02 UTC (rev 88)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -1,42 +0,0 @@
-package org.punit.util;
-
-import java.io.*;
-
-import org.punit.message.*;
-import org.punit.runner.*;
-
-public class ArgUtil {
-
- private static final int MAX_ARGS = 3;
-
- public static void run(Runner runner, String[] args) {
- int length = args.length;
- if (length == 0 || length > MAX_ARGS) {
- throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
- }
- Runner testRunner = runner;
- RunnerProperties properties = null;
- Class testClass = ReflectionUtil.newClass(args[0]);
- if(length >= 2) {
- System.out.println(args[1]);
- System.out.println(IOUtil.getCurrentPath());
- try {
- System.out.println(new File(args[1]).getCanonicalPath());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- testRunner = (Runner) IOUtil.getSerialiableObject(args[1]);
- }
- if(length >= 3) {
- try {
- System.out.println(new File(args[2]).getCanonicalPath());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- properties = (RunnerProperties) IOUtil.getSerialiableObject(args[2]);
- }
- testRunner.run(testClass, properties);
- }
-}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-16 22:37:02 UTC (rev 88)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/OverviewImageReporter.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -26,6 +26,8 @@
public class OverviewImageReporter implements PUnitEventListener {
+ private static final long serialVersionUID = 3689576073385941730L;
+
private static final String SER = ".ser"; //$NON-NLS-1$
private static int DEFAULT_HEIGHT = 750;
@@ -33,20 +35,20 @@
private static int DEFAULT_WIDTH = 750;
private static String DEFAULT_FORMAT = "png"; //$NON-NLS-1$
+
+ private int _height;
- private Hashtable _overviewDatasets; // <Watcher,DefaultCategoryDataset>
+ private int _width;
- private Class _currentClass;
+ private String _format;
- private Method _currentMethod;
+ private transient Hashtable _overviewDatasets; // <Watcher,DefaultCategoryDataset>
- private int _height;
+ private transient Class _currentClass;
- private int _width;
-
- private String _format;
+ private transient Method _currentMethod;
- private RunnerProperties _runnerProperties;
+ private transient RunnerProperties _runnerProperties;
public OverviewImageReporter() {
this(DEFAULT_HEIGHT, DEFAULT_WIDTH, DEFAULT_FORMAT);
Added: trunk/punit.test/src/extension/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/extension/tests/api/org/punit/runner/PUnitSoloRunnerTest.java (rev 0)
+++ trunk/punit.test/src/extension/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -0,0 +1,36 @@
+package extension.tests.api.org.punit.runner;
+
+import java.util.*;
+
+import junit.framework.*;
+
+import org.punit.reporter.chart.image.*;
+import org.punit.runner.*;
+import org.punit.util.*;
+
+import tests.util.*;
+
+public class PUnitSoloRunnerTest extends TestCase {
+
+ private PUnitSoloRunner _runner;
+
+ protected void setUp() {
+ _runner = new PUnitSoloRunner();
+ }
+
+ public void testSerializable() throws Exception {
+ _runner.addPUnitEventListener(new OverviewImageReporter());
+ List expectedListeners = _runner.eventListeners();
+ PUnitSoloRunner runner = (PUnitSoloRunner) TestUtil.getSerialiableObject(_runner);
+ List eventListeners = runner.eventListeners();
+ assertEquals(expectedListeners.size(), eventListeners.size());
+ }
+
+ public void testSerializable2() throws Exception {
+ PUnitSoloRunner runner = (PUnitSoloRunner) IOUtil.getSerialiableObject("Harmony.cfg");
+ List eventListeners = runner.eventListeners();
+ assertEquals(3, eventListeners.size());
+ }
+
+
+}
Modified: trunk/punit.test/src/extension/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-16 22:37:02 UTC (rev 88)
+++ trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-16 23:13:03 UTC (rev 89)
@@ -22,22 +22,14 @@
public static void main(String[] args) {
TestUtil.runUnitTest = false;
- VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
+ VM harmonyVM = new VM(HARMONY, "Harmony"); //$NON-NLS-1$
+ VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
PUnitSoloRunner runner = new PUnitSoloRunner();
runner.addPUnitEventListener(new OverviewImageReporter());
- runner.runVMs(VMsSample.class, new VM[] { harmonyVM, sunVM });
+ runner.runVMs(VMsSample.class, new VM[] { harmonyVM, harmonyIBMVM, sunVM });
}
- /*
- * D:\harmony_trunk\harmony-jre-r530500\bin\java -cp
- * D:\workspace_3.2\punit.test\bin;D:\workspace_3.2\punit\bin
- * org.punit.runner.PUnitSoloRunner extension.tests.samples.VMsSample
- * D:\workspace_3.2\punit.test true Harmony
- * org.punit.reporter.stream.console.ConsoleLoggerListener
- * org.punit.reporter.stream.file.FileLoggerListener
- * org.punit.reporter.chart.image.OverviewImageReporter
- */
private static String generateClassPath() {
StringBuffer sb = new StringBuffer();
sb.append(" -cp "); //$NON-NLS-1$
@@ -67,23 +59,37 @@
public void test1() {
- TestUtil.doSomething();
+ if(isSun()) {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(1000);
+ } else {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(2000);
+ }
}
public void test2() {
- TestUtil.doSomething();
+ if(isSun()) {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(2000);
+ } else {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(1000);
+ }
}
public void test3() {
- if(System.getProperty("java.vendor").indexOf("Sun") != -1 ) {
- TestUtil.consumeMemory(100000);
- TestUtil.consumeTime(1000);
+ if(isSun()) {
+ TestUtil.consumeMemory(300000);
+ TestUtil.consumeTime(3000);
} else {
TestUtil.consumeMemory(200000);
TestUtil.consumeTime(2000);
}
- TestUtil.doSomething();
- TestUtil.doSomething();
- TestUtil.doSomething();
}
+
+ private boolean isSun() {
+// return System.getProperty("java.vendor").indexOf("Sun") == -1;
+ return true;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 08:32:26
|
Revision: 90
http://p-unit.svn.sourceforge.net/p-unit/?rev=90&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 01:32:22 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: no Parameterizable runner and method runner now. and refactored some tests.
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
trunk/punit/src/org/punit/type/PUnitTest.java
trunk/punit/src/org/punit/type/Parameterizable.java
trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java
trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
trunk/punit.test/src/tests/api/org/punit/runner/AbstractPUnitRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java
trunk/punit.test/src/tests/api/org/punit/testclasses/PUnitTestClass.java
trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java
trunk/punit.test/src/tests/api/org/punit/testclasses/TestClass.java
trunk/punit.test/src/tests/samples/ConcurrentParameterizableTestSample.java
trunk/punit.test/src/tests/samples/PUnitTestSuiteSample.java
trunk/punit.test/src/tests/samples/ParameterizableTestSample.java
Added Paths:
-----------
trunk/punit/src/org/punit/util/TypeUtil.java
Removed Paths:
-------------
trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java
trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java
trunk/punit/src/org/punit/runner/PUnitRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java
trunk/punit/src/org/punit/runner/ParameterizableRunner.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitParameterizableTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java
Modified: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -43,8 +43,16 @@
return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
}
- protected abstract boolean isParamValid(Method method);
-
+ protected boolean isParamValid(Method method) {
+ Class clazz = method.getDeclaringClass();
+ Class[] params = method.getParameterTypes();
+ if(TypeUtil.isPUnitParameterizableTest((clazz))) {
+ return params.length == 1 && Parameter.class.isAssignableFrom(params[0]);
+ } else {
+ return params.length == 0;
+ }
+ }
+
private boolean isAlphabetical(Class testClass) {
return Alphabetical.class.isAssignableFrom(testClass);
}
Deleted: trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/builder/PUnitParameterizableTestMethodBuilder.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,19 +0,0 @@
-package org.punit.builder;
-
-import java.lang.reflect.*;
-
-import org.punit.type.*;
-
-public class PUnitParameterizableTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
-
- /**
- *
- */
- private static final long serialVersionUID = 8889753701695767248L;
-
- protected boolean isParamValid(Method method) {
- Class[] params = method.getParameterTypes();
- return params.length == 1 && Parameter.class.isAssignableFrom(params[0]);
- }
-
-}
Modified: trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,16 +1,8 @@
package org.punit.builder;
-import java.lang.reflect.*;
public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
- /**
- *
- */
private static final long serialVersionUID = 3829703758541941842L;
- protected boolean isParamValid(Method method) {
- return method.getParameterTypes().length == 0;
- }
-
}
Modified: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -6,9 +6,7 @@
import org.punit.util.*;
public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
- /**
- *
- */
+
private static final long serialVersionUID = 633363267326297920L;
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -167,35 +167,18 @@
private void runTestMethod(Class clazz, Method method) {
Object testInstance = ReflectionUtil.newInstance(clazz);
- try {
- if (needsRunParameterizable(clazz)) {
- Parameterizable pInstance = (Parameterizable) testInstance;
- Parameter[] params = pInstance.parameters();
- for (int i = 0; i < params.length; ++i) {
- _testMethodRunner.run(testInstance, method,
- new Object[] { params[i] });
- }
- } else {
- _testMethodRunner.run(testInstance, method, new Object[] {});
+ if (TypeUtil.isPUnitParameterizableTest(clazz)) {
+ Parameterizable pInstance = (Parameterizable) testInstance;
+ Parameter[] params = pInstance.parameters();
+ for (int i = 0; i < params.length; ++i) {
+ _testMethodRunner.run(testInstance, method,
+ new Object[] { params[i] });
}
- } catch (Throwable e) {
- e.printStackTrace();
+ } else {
+ _testMethodRunner.run(testInstance, method, new Object[] {});
}
-
}
- private boolean needsRunParameterizable(Class clazz) {
- return isParameterizable(clazz) && isParameterizableRunner();
- }
-
- private boolean isParameterizableRunner() {
- return (this instanceof ParameterizableRunner);
- }
-
- private boolean isParameterizable(Class clazz) {
- return Parameterizable.class.isAssignableFrom(clazz);
- }
-
private Object[] buildTestMethod(Class testClass) {
return _testMethodBuilder.buildTestMethods(testClass);
}
Deleted: trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentParameterizableRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,31 +0,0 @@
-package org.punit.runner;
-
-import org.punit.builder.*;
-import org.punit.message.*;
-import org.punit.runner.method.*;
-import org.punit.type.*;
-
-public class PUnitConcurrentParameterizableRunner extends PUnitAbstractRunner
- implements ParameterizableRunner {
-
- /**
- *
- */
- private static final long serialVersionUID = -6973380541459392869L;
-
- public PUnitConcurrentParameterizableRunner() {
- super(new PUnitTestSuiteBuilder(),
- new PUnitParameterizableTestMethodBuilder(),
- new ConcurrentTestMethodRunner());
- }
-
- public boolean accept(Class testClass) {
- return Parameterizable.class.isAssignableFrom(testClass)
- && Concurrent.class.isAssignableFrom(testClass);
- }
-
- public String punitName() {
- return Messages.getString("runner.04"); //$NON-NLS-1$
- }
-
-}
Deleted: trunk/punit/src/org/punit/runner/PUnitRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/PUnitRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,24 +0,0 @@
-package org.punit.runner;
-
-public class PUnitRunner {
-
- private PUnitRunner() {
-
- }
-
- public static void runSolo(Class clazz) {
- new PUnitSoloRunner().run(clazz);
- }
-
- public static void runConcurrent(Class clazz) {
- new PUnitConcurrentRunner().run(clazz);
- }
-
- public static void runSoloParameterized(Class clazz) {
- new PUnitSoloParameterizableRunner().run(clazz);
- }
-
- public static void runConcurrentParameterized(Class clazz) {
- new PUnitConcurrentParameterizableRunner().run(clazz);
- }
-}
Deleted: trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/PUnitSoloParameterizableRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,28 +0,0 @@
-package org.punit.runner;
-
-import org.punit.builder.*;
-import org.punit.message.*;
-import org.punit.runner.method.*;
-import org.punit.type.*;
-
-public class PUnitSoloParameterizableRunner extends PUnitAbstractRunner implements ParameterizableRunner {
-
- /**
- *
- */
- private static final long serialVersionUID = 1212169326219608063L;
-
- public PUnitSoloParameterizableRunner() {
- super(new PUnitTestSuiteBuilder(), new PUnitParameterizableTestMethodBuilder(), new SoloTestMethodRunner());
- }
-
- public boolean accept(Class testClass) {
- return Parameterizable.class.isAssignableFrom(testClass);
- }
-
- public String punitName() {
- return Messages.getString("runner.02"); //$NON-NLS-1$
- }
-
-
-}
Deleted: trunk/punit/src/org/punit/runner/ParameterizableRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/ParameterizableRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/ParameterizableRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,5 +0,0 @@
-package org.punit.runner;
-
-public interface ParameterizableRunner {
-
-}
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -44,21 +44,21 @@
try {
onMethodStart(method);
init(testInstance, method, params);
- setUpBeforeWatchers();
+ setUpBeforeWatchers(params);
startWatchers();
- setUpAfterWatchers();
+ setUpAfterWatchers(params);
runImpl();
} catch (Throwable t) {
throwable = t;
} finally {
try {
- tearDownBeforeWatchers();
+ tearDownBeforeWatchers(params);
} catch (Throwable t) {
throwable = t;
} finally {
try {
stopWatchers();
- tearDownAfterWatchers();
+ tearDownAfterWatchers(params);
} catch (Throwable t) {
throwable = t;
}
@@ -102,32 +102,40 @@
* things during this step.
*
*/
- protected void setUpBeforeWatchers() throws Throwable {
- if (isPUnitTest()) {
+ protected void setUpBeforeWatchers(Object[] params) throws Throwable {
+ if (TypeUtil.isPUnitTest(_class)) {
((PUnitTest) _testInstance).setUpBeforeWatchers();
+ } else if (TypeUtil.isPUnitParameterizableTest(_class)) {
+ ((Parameterizable) _testInstance).setUpBeforeWatchers((Parameter)params[0]);
}
}
- private void setUpAfterWatchers() throws Throwable {
- if (isPUnitTest()) {
+ private void setUpAfterWatchers(Object[] params) throws Throwable {
+ if (TypeUtil.isPUnitTest(_class)) {
((PUnitTest) _testInstance).setUpAfterWatchers();
+ } else if (TypeUtil.isPUnitParameterizableTest(_class)) {
+ ((Parameterizable) _testInstance).setUpAfterWatchers((Parameter)params[0]);
} else {
setUp();
}
}
- private void tearDownBeforeWatchers() throws Throwable {
- if (isPUnitTest()) {
+ private void tearDownBeforeWatchers(Object[] params) throws Throwable {
+ if (TypeUtil.isPUnitTest(_class)) {
((PUnitTest) _testInstance).tearDownBeforeWatchers();
+ } else if (TypeUtil.isPUnitParameterizableTest(_class)) {
+ ((Parameterizable) _testInstance).tearDownBeforeWatchers((Parameter)params[0]);
} else {
tearDown();
}
}
- private void tearDownAfterWatchers() throws Throwable {
- if (isPUnitTest()) {
+ private void tearDownAfterWatchers(Object[] params) throws Throwable {
+ if (TypeUtil.isPUnitTest(_class)) {
((PUnitTest) _testInstance).tearDownAfterWatchers();
- }
+ } else if (TypeUtil.isPUnitParameterizableTest(_class)) {
+ ((Parameterizable) _testInstance).tearDownAfterWatchers((Parameter)params[0]);
+ }
}
private void setUp() throws Throwable {
@@ -203,9 +211,5 @@
public Watcher[] watchers() {
return _watchers;
}
-
- private boolean isPUnitTest() {
- return PUnitTest.class.isAssignableFrom(_class);
- }
}
Modified: trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -43,8 +43,8 @@
}
}
- protected void setUpBeforeWatchers() throws Throwable {
- super.setUpBeforeWatchers();
+ protected void setUpBeforeWatchers(Object[] params) throws Throwable {
+ super.setUpBeforeWatchers(params);
Concurrent concurrentTestInstance = (Concurrent) _testInstance;
int threadCount = concurrentTestInstance.concurrentCount();
_threads = new TestMethodThread[threadCount];
Modified: trunk/punit/src/org/punit/type/PUnitTest.java
===================================================================
--- trunk/punit/src/org/punit/type/PUnitTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/type/PUnitTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -3,7 +3,7 @@
public interface PUnitTest {
public void setUpBeforeWatchers() throws Exception;
-
+
public void setUpAfterWatchers() throws Exception;
public void tearDownBeforeWatchers() throws Exception;
Modified: trunk/punit/src/org/punit/type/Parameterizable.java
===================================================================
--- trunk/punit/src/org/punit/type/Parameterizable.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit/src/org/punit/type/Parameterizable.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,5 +1,14 @@
package org.punit.type;
public interface Parameterizable {
+
+ public void setUpBeforeWatchers(Parameter param) throws Exception;
+
+ public void setUpAfterWatchers(Parameter param) throws Exception;
+
+ public void tearDownBeforeWatchers(Parameter param) throws Exception;
+
+ public void tearDownAfterWatchers(Parameter param) throws Exception;
+
Parameter [] parameters();
}
Added: trunk/punit/src/org/punit/util/TypeUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/TypeUtil.java (rev 0)
+++ trunk/punit/src/org/punit/util/TypeUtil.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -0,0 +1,14 @@
+package org.punit.util;
+
+import org.punit.type.*;
+
+public class TypeUtil {
+
+ public static boolean isPUnitTest(Class clazz) {
+ return PUnitTest.class.isAssignableFrom(clazz);
+ }
+
+ public static boolean isPUnitParameterizableTest(Class clazz) {
+ return Parameterizable.class.isAssignableFrom(clazz);
+ }
+}
Modified: trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -13,8 +13,6 @@
Runner[] runners = new Runner[] {
new PUnitSoloRunner(),
new PUnitConcurrentRunner(),
- new PUnitSoloParameterizableRunner(),
- new PUnitConcurrentParameterizableRunner()
};
for(int i = 0; i < runners.length; ++i) {
runners[i].addPUnitEventListener(new OverviewImageReporter());
Modified: trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -27,11 +27,8 @@
LoggerUtilTest.class,
MemoryWatcherTest.class,
PUnitAbstractTestMethodBuilderTest.class,
- PUnitConcurrentParameterizableRunnerTest.class,
PUnitConcurrentRunnerTest.class,
PUnitStreamListenerTest.class,
- PUnitParameterizableTestMethodBuilderTest.class,
- PUnitSoloParameterizableRunnerTest.class,
PUnitSoloRunnerTest.class,
PUnitTestMethodBuilderTest.class,
PUnitTestSuiteBuilderTest.class,
Deleted: trunk/punit.test/src/tests/api/org/punit/builder/PUnitParameterizableTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitParameterizableTestMethodBuilderTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitParameterizableTestMethodBuilderTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,30 +0,0 @@
-package tests.api.org.punit.builder;
-
-import org.punit.builder.*;
-
-import tests.api.org.punit.testclasses.*;
-import tests.util.*;
-
-import junit.framework.*;
-
-public class PUnitParameterizableTestMethodBuilderTest extends TestCase {
- private PUnitParameterizableTestMethodBuilder _testMethodBuidler;
-
- protected void setUp() throws Exception {
- _testMethodBuidler = new PUnitParameterizableTestMethodBuilder();
- }
-
-
- public void test1() {
- Object[] methods = _testMethodBuidler.buildTestMethods(ParameterizableTestClass.class);
- assertEquals(2, methods.length);
- String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContent(names, new String[] { "test1", "test3" }); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- public void test2() {
- Object[] methods = _testMethodBuidler.buildTestMethods(TestClass2.class);
- assertEquals(0, methods.length);
- }
-
-}
\ No newline at end of file
Modified: trunk/punit.test/src/tests/api/org/punit/runner/AbstractPUnitRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/AbstractPUnitRunnerTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/runner/AbstractPUnitRunnerTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -6,17 +6,4 @@
protected MockPUnitEventListener _eventListener = new MockPUnitEventListener();
- protected void assertAllEventsInvoked() {
- assertTrue(_eventListener.onRunnerEnd);
- assertTrue(_eventListener.onRunnerStart);
- assertTrue(_eventListener.onClassEnd);
- assertTrue(_eventListener.onClassStart);
- assertTrue(_eventListener.onMethodEnd);
- assertTrue(_eventListener.onMethodStart);
- assertTrue(_eventListener.onWatcherEnd);
- assertTrue(_eventListener.onWatcherStart);
- assertTrue(_eventListener.onWatchersEnd);
- assertTrue(_eventListener.onWatchersStart);
- }
-
}
\ No newline at end of file
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -2,6 +2,8 @@
import java.lang.reflect.*;
+import junit.framework.*;
+
import org.punit.events.*;
import org.punit.runner.*;
import org.punit.watcher.*;
@@ -59,4 +61,16 @@
onWatchersStart = true;
}
+ public void assertAllEventsInvoked() {
+ Assert.assertTrue(onRunnerEnd);
+ Assert.assertTrue(onRunnerStart);
+ Assert.assertTrue(onClassEnd);
+ Assert.assertTrue(onClassStart);
+ Assert.assertTrue(onMethodEnd);
+ Assert.assertTrue(onMethodStart);
+ Assert.assertTrue(onWatcherEnd);
+ Assert.assertTrue(onWatcherStart);
+ Assert.assertTrue(onWatchersEnd);
+ Assert.assertTrue(onWatchersStart);
+ }
}
Deleted: trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentParameterizableRunnerTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,46 +0,0 @@
-package tests.api.org.punit.runner;
-
-import java.util.*;
-
-import junit.framework.*;
-
-import org.punit.runner.*;
-
-import tests.api.org.punit.testclasses.*;
-import tests.util.*;
-
-public class PUnitConcurrentParameterizableRunnerTest extends TestCase {
- private PUnitConcurrentParameterizableRunner _runner;
-
- protected void setUp() throws Exception {
- _runner = new PUnitConcurrentParameterizableRunner();
- ConcurrentParameterizableTestClass.reset();
- }
-
- public void testRun() {
- _runner.run(TestSuiteClass.class);
- }
-
- public void testRunTest() {
- _runner.run(ConcurrentParameterizableTestClass.class);
- assertTestClassRun();
- }
-
- public void testSerializable() throws Exception {
- _runner.addPUnitEventListener(new MockPUnitEventListener());
- List expectedListeners = _runner.eventListeners();
- PUnitConcurrentParameterizableRunner runner = (PUnitConcurrentParameterizableRunner) TestUtil.getSerialiableObject(_runner);
- List eventListeners = runner.eventListeners();
- assertEquals(expectedListeners.size(), eventListeners.size());
- }
-
- private void assertTestClassRun() {
- assertEquals(ConcurrentParameterizableTestClass.SUM
- * ConcurrentParameterizableTestClass.COCURRENT_COUNT,
- ConcurrentParameterizableTestClass._test1);
- assertFalse(ConcurrentParameterizableTestClass._test2);
- assertTrue(ConcurrentParameterizableTestClass._setUp);
- assertTrue(ConcurrentParameterizableTestClass._tearDown);
- }
-
-}
Deleted: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloParameterizableRunnerTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,44 +0,0 @@
-package tests.api.org.punit.runner;
-
-import java.util.*;
-
-import junit.framework.*;
-
-import org.punit.runner.*;
-
-import tests.api.org.punit.testclasses.*;
-import tests.util.*;
-
-public class PUnitSoloParameterizableRunnerTest extends TestCase {
- private PUnitSoloParameterizableRunner _runner;
-
- protected void setUp() throws Exception {
- _runner = new PUnitSoloParameterizableRunner();
- ParameterizableTestClass.reset();
- }
-
- public void testRun() {
- _runner.run(TestSuiteClass.class);
- }
-
- public void testRunTest() {
- _runner.run(ParameterizableTestClass.class);
- assertTestClassRun();
- }
-
- public void testSerializable() throws Exception {
- _runner.addPUnitEventListener(new MockPUnitEventListener());
- List expectedListeners = _runner.eventListeners();
- PUnitSoloParameterizableRunner runner = (PUnitSoloParameterizableRunner) TestUtil.getSerialiableObject(_runner);
- List eventListeners = runner.eventListeners();
- assertEquals(expectedListeners.size(), eventListeners.size());
- }
-
- private void assertTestClassRun() {
- assertEquals(ParameterizableTestClass.SUM, ParameterizableTestClass._test1);
- assertFalse(ParameterizableTestClass._test2);
- assertTrue(ParameterizableTestClass._setUp);
- assertTrue(ParameterizableTestClass._tearDown);
- }
-
-}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -24,31 +24,41 @@
public void testRunTest() {
TestClass.reset();
_runner.run(TestClass.class);
- assertTestClassRun();
- assertAllEventsInvoked();
+ TestClass.assertTestClassRun();
+ _eventListener.assertAllEventsInvoked();
}
public void testRunPUnitTest() {
PUnitTestClass.reset();
- assertPUnitTestClassRun();
- assertAllEventsInvoked();
+ _runner.run(PUnitTestClass.class);
+ PUnitTestClass.assertPUnitTestClassRun();
+ _eventListener.assertAllEventsInvoked();
}
public void testRunConcurrent() {
ConcurrentTestClass.reset();
_runner.run(ConcurrentTestClass.class);
assertConcurrentTestClassRun();
- assertAllEventsInvoked();
+ _eventListener.assertAllEventsInvoked();
}
-
+ public void testRunParameterizable() throws Exception{
+ ParameterizableTestClass.reset();
+ _runner.run(ParameterizableTestClass.class);
+ ParameterizableTestClass.assertTestClassRun();
+ }
+
public void testRunTestSuite() {
TestClass.reset();
PUnitTestClass.reset();
_runner.run(TestSuiteClass.class);
- assertTestClassRun();
- assertPUnitTestClassRun();
- assertAllEventsInvoked();
+ TestClass.assertTestClassRun();
+
+ PUnitTestClass.reset();
+ _runner.run(PUnitTestClass.class);
+ PUnitTestClass.assertPUnitTestClassRun();
+
+ _eventListener.assertAllEventsInvoked();
}
public void testSerializable() throws Exception {
@@ -59,26 +69,9 @@
assertEquals(expectedListeners.size(), eventListeners.size());
}
- private void assertPUnitTestClassRun() {
- _runner.run(PUnitTestClass.class);
- assertFalse(PUnitTestClass._test1);
- assertTrue(PUnitTestClass._test2);
- assertFalse(PUnitTestClass._setUp);
- assertFalse(PUnitTestClass._tearDown);
- assertTrue(PUnitTestClass._setUpBeforeWatchers);
- assertTrue(PUnitTestClass._setUpAfterWatchers);
- assertTrue(PUnitTestClass._tearDownBeforeWatchers);
- assertTrue(PUnitTestClass._tearDownAfterWatchers);
- }
private void assertConcurrentTestClassRun() {
assertEquals(1, ConcurrentTestClass.value);
}
- protected void assertTestClassRun() {
- assertFalse(TestClass._test1);
- assertTrue(TestClass._test2);
- assertTrue(TestClass._setUp);
- assertTrue(TestClass._tearDown);
- }
}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -18,25 +18,38 @@
public static boolean _test2;
- public static boolean _setUp;
+ public static boolean _setUpBefore;
+
+ public static boolean _setUpAfter;
- public static boolean _tearDown;
+ public static boolean _tearDownBefore;
+
+ public static boolean _tearDownAfter;
public static void reset() {
_test1 = 0;
_test2 = false;
- _setUp = false;
- _tearDown = false;
+ _setUpBefore = false;
+ _setUpAfter = false;
+ _tearDownBefore = false;
+ _tearDownAfter = false;
}
- private void setUp() {
- _setUp = true;
+ public void setUpAfterWatchers(Parameter param) throws Exception {
+ _setUpAfter = true;
}
- private void tearDown() {
- _tearDown = true;
+ public void setUpBeforeWatchers(Parameter param) throws Exception {
+ _setUpBefore = true;
}
+ public void tearDownAfterWatchers(Parameter param) throws Exception {
+ _tearDownAfter = true;
+ }
+
+ public void tearDownBeforeWatchers(Parameter param) throws Exception {
+ _tearDownBefore = true;
+ }
public synchronized void test1(Parameter1 p) {
_test1 += p.value;
@@ -75,4 +88,5 @@
public int concurrentCount() {
return COCURRENT_COUNT;
}
+
}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/PUnitTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/PUnitTestClass.java 2007-05-16 23:13:03 UTC (rev 89)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/PUnitTestClass.java 2007-05-17 08:32:22 UTC (rev 90)
@@ -1,5 +1,7 @@
package tests.api.org.punit.testclasses;
+import junit.framework.*;
+
import org.punit.type.*;
import tests.util.*;
@@ -70,4 +72,16 @@
public void tearDownBeforeWatchers() {
_tearDownBeforeWatchers = true;
}
+
+ public static void assertPUnitTestClassRun() {
+ Assert.assertFalse(_test1);
+ Assert.assertTrue(_test2);
+ Assert.assertFalse(_setUp);
+ Assert.assertFalse(_tearDown);
+ Assert.assertTrue(_setUpBeforeWatchers);
+ Assert.assertTrue(_setUpAfterWatchers);
+ Assert.assertTrue(_tearDownBeforeWatchers);
+ Assert.assertTrue(_tearDownAfterWatchers);
+ }
+
}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java
===================================================================
--- trunk/punit.test/src/tests...
[truncated message content] |
|
From: <zha...@us...> - 2007-05-17 13:18:31
|
Revision: 94
http://p-unit.svn.sourceforge.net/p-unit/?rev=94&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 06:18:32 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: refactored PUnitEventListener.
Modified Paths:
--------------
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -20,12 +20,12 @@
public void onMethodEnd(Method method, Throwable t);
- public void onWatchersStart(Watcher[] watchers);
+ public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params);
- public void onWatcherStart(Watcher watcher);
+ public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params);
- public void onWatcherEnd(Watcher watcher);
+ public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params);
- public void onWatchersEnd(Watcher[] watchers);
+ public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params);
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -70,18 +70,18 @@
}
}
- public void onWatchersStart(Watcher[] watchers) {
+ public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
_watchersStart = true;
}
- public void onWatcherStart(Watcher watcher) {
+ public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
}
- public void onWatchersEnd(Watcher[] watchers) {
+ public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
log("]", Level.FINE); //$NON-NLS-1$
}
- public void onWatcherEnd(Watcher watcher) {
+ public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
String watchValue = watcher.stringValue();
if (_watchersStart) {
log(" - [" + watchValue, Level.FINE); //$NON-NLS-1$
@@ -143,19 +143,6 @@
_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 StreamLoggerListener logger) {
StringBuffer sb = new StringBuffer();
sb.append(Messages.getString("logger.02")); //$NON-NLS-1$
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -45,7 +45,7 @@
onMethodStart(method);
init(testInstance, method, params);
setUpBeforeWatchers(params);
- startWatchers();
+ startWatchers(testInstance, method, params);
setUpAfterWatchers(params);
runImpl();
} catch (Throwable t) {
@@ -57,7 +57,7 @@
throwable = t;
} finally {
try {
- stopWatchers();
+ stopWatchers(testInstance, method, params);
tearDownAfterWatchers(params);
} catch (Throwable t) {
throwable = t;
@@ -160,50 +160,50 @@
}
}
- protected final void startWatchers() {
- onWatchersStart();
+ protected final void startWatchers(final Object testInstance, final Method method, final Object[] params) {
+ onWatchersStart(testInstance, method, params);
for (int i = 0; i < _watchers.length; ++i) {
- onWatcherStart(_watchers[i]);
+ onWatcherStart(_watchers[i], testInstance, method, params);
_watchers[i].start();
}
}
- private void onWatchersStart() {
+ private void onWatchersStart(final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatchersStart(_watchers);
+ ((PUnitEventListener) obj).onWatchersStart(_watchers, testInstance, method, params);
}
});
}
- private void onWatcherStart(final Watcher watcher) {
+ private void onWatcherStart(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatcherStart(watcher);
+ ((PUnitEventListener) obj).onWatcherStart(watcher, testInstance, method, params);
}
});
}
- protected final void stopWatchers() {
+ protected final void stopWatchers(Object testInstance, Method method, Object[] params) {
for (int i = 0; i < _watchers.length; ++i) {
_watchers[i].stop();
- onWatcherEnd(_watchers[i]);
+ onWatcherEnd(_watchers[i], testInstance, method, params);
}
- onWatchersEnd();
+ onWatchersEnd(testInstance, method, params);
}
- private void onWatcherEnd(final Watcher watcher) {
+ private void onWatcherEnd(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatcherEnd(watcher);
+ ((PUnitEventListener) obj).onWatcherEnd(watcher, testInstance, method, params);
}
});
}
- private void onWatchersEnd() {
+ private void onWatchersEnd(final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatchersEnd(_watchers);
+ ((PUnitEventListener) obj).onWatchersEnd(_watchers, testInstance, method, params);
}
});
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -20,12 +20,7 @@
protected final String _format;
protected transient RunnerProperties _runnerProperties;
-
- protected transient Class _currentClass;
- protected transient Method _currentMethod;
-
-
public AbstractImageReporter() {
this(ImageReporterConstants.DEFAULT_HEIGHT, ImageReporterConstants.DEFAULT_WIDTH, ImageReporterConstants.DEFAULT_FORMAT);
}
@@ -36,31 +31,29 @@
_format = format;
}
- public void onWatchersStart(Watcher[] watchers) {
- // nothing needs to do
+ public void onClassStart(Class clazz) {
}
- public void onWatchersEnd(Watcher[] watchers) {
+ public void onClassEnd(Class clazz) {
// nothing needs to do
}
- public void onClassStart(Class clazz) {
- _currentClass = clazz;
+ public void onMethodStart(Method method) {
}
- public void onClassEnd(Class clazz) {
+ public void onMethodEnd(Method method, Throwable t) {
// nothing needs to do
}
- public void onMethodStart(Method method) {
- _currentMethod = method;
+ public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ // nothing needs to do
}
- public void onMethodEnd(Method method, Throwable t) {
+ public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
// nothing needs to do
}
- public void onWatcherStart(Watcher watcher) {
+ public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
// nothing needs to do
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -1,6 +1,7 @@
package org.punit.reporter.chart.image;
import java.io.*;
+import java.lang.reflect.*;
import java.util.*;
import java.util.Map.*;
@@ -71,11 +72,11 @@
});
}
- public void onWatcherEnd(Watcher watcher) {
+ public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
DefaultCategoryDataset dataset = getDataset(watcher);
double value = watcher.value();
- String yname = _currentClass.getSimpleName();
- String xname = _currentMethod.getName();
+ String yname = testInstance.getClass().getSimpleName();
+ String xname = method.getName();
dataset.addValue(value, yname, xname); // value, y, x
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 12:26:47 UTC (rev 93)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 13:18:32 UTC (rev 94)
@@ -45,19 +45,19 @@
onMethodStart = true;
}
- public void onWatcherEnd(Watcher watcher) {
+ public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
onWatcherEnd = true;
}
- public void onWatcherStart(Watcher watcher) {
+ public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
onWatcherStart = true;
}
- public void onWatchersEnd(Watcher[] watchers) {
+ public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
onWatchersEnd = true;
}
- public void onWatchersStart(Watcher[] watchers) {
+ public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
onWatchersStart = true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 14:11:29
|
Revision: 95
http://p-unit.svn.sourceforge.net/p-unit/?rev=95&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 07:11:19 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: Refactored reporter and PUnitEventListener
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/exception/ConcurrentException.java
trunk/punit/src/org/punit/exception/PUnitException.java
trunk/punit/src/org/punit/exception/PUnitIOException.java
trunk/punit/src/org/punit/exception/ReflectionException.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/RunnerProperties.java
trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java
trunk/punit/src/org/punit/type/VM.java
trunk/punit/src/org/punit/watcher/MemoryWatcher.java
trunk/punit/src/org/punit/watcher/TimeWatcher.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
trunk/punit.test/src/extension/tests/samples/VMsSample.java
Added Paths:
-----------
trunk/punit/src/org/punit/runner/RunnerConstants.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
trunk/punit.test/Harmony.cfg/
Removed Paths:
-------------
trunk/punit/src/org/punit/reporter/ReporterConstants.java
Modified: trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -3,6 +3,4 @@
public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
- private static final long serialVersionUID = 3829703758541941842L;
-
}
Modified: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -7,9 +7,6 @@
public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
- private static final long serialVersionUID = 633363267326297920L;
-
-
public Object[] buildTestClasses(Class clazz) {
List testClasses = new ArrayList();
buildTestClasses(testClasses, clazz);
Modified: trunk/punit/src/org/punit/exception/ConcurrentException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -6,8 +6,7 @@
import org.punit.util.*;
public class ConcurrentException extends PUnitException {
- private static final long serialVersionUID = 1253114975237734895L;
-
+
private Vector _throwables = new Vector();
public void add(Throwable t) {
Modified: trunk/punit/src/org/punit/exception/PUnitException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitException.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/exception/PUnitException.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -9,6 +9,4 @@
public PUnitException(Throwable e) {
super(e);
}
-
- private static final long serialVersionUID = -6845936853491862388L;
}
Modified: trunk/punit/src/org/punit/exception/PUnitIOException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitIOException.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/exception/PUnitIOException.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -2,8 +2,6 @@
public class PUnitIOException extends PUnitException {
- private static final long serialVersionUID = 7098221975109413569L;
-
public PUnitIOException(Throwable e) {
super(e);
}
Modified: trunk/punit/src/org/punit/exception/ReflectionException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -2,8 +2,6 @@
public class ReflectionException extends PUnitException {
- private static final long serialVersionUID = -5498831354775690972L;
-
public ReflectionException(Throwable e) {
super(e);
}
Deleted: trunk/punit/src/org/punit/reporter/ReporterConstants.java
===================================================================
--- trunk/punit/src/org/punit/reporter/ReporterConstants.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/reporter/ReporterConstants.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -1,13 +0,0 @@
-package org.punit.reporter;
-
-import org.punit.message.*;
-
-public class ReporterConstants {
-
- private ReporterConstants() {
- }
-
- public static final String RESULT_FOLDER = Messages
- .getString("reporter.01"); //$NON-NLS-1$
-
-}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -13,8 +13,6 @@
public class StreamLoggerListener implements PUnitEventListener {
- private static final long serialVersionUID = 380252228907567735L;
-
protected transient PrintStream _ps;
protected transient Summary _summary;
Modified: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -6,11 +6,6 @@
public class ConsoleLoggerListener extends StreamLoggerListener {
- /**
- *
- */
- private static final long serialVersionUID = -9118571092210467166L;
-
private void readObject(java.io.ObjectInputStream in) throws IOException,
ClassNotFoundException {
_ps = System.err;
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -9,8 +9,6 @@
public class FileLoggerListener extends StreamLoggerListener {
- private static final long serialVersionUID = -7255913705728005915L;
-
public void onRunnerStart(Class clazz, Runner runner) {
if(isParentRunner(runner)) {
return;
@@ -35,7 +33,7 @@
}
private void initResultFolder() {
- new File(ReporterConstants.RESULT_FOLDER).mkdir();
+ new File(RunnerConstants.RESULT_FOLDER).mkdir();
}
private String generateFileName(Class clazz, Runner runner) {
@@ -43,7 +41,7 @@
StringBuffer sb = new StringBuffer();
sb.append(IOUtil.getCurrentPath());
sb.append(File.separator);
- sb.append(ReporterConstants.RESULT_FOLDER);
+ sb.append(RunnerConstants.RESULT_FOLDER);
sb.append(File.separator);
sb.append(clazz.getName());
sb.append("."); //$NON-NLS-1$
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -1,11 +1,13 @@
package org.punit.runner;
+import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import org.punit.builder.*;
import org.punit.events.*;
import org.punit.exception.*;
+import org.punit.reporter.*;
import org.punit.reporter.stream.console.*;
import org.punit.reporter.stream.file.*;
import org.punit.runner.method.*;
@@ -92,11 +94,13 @@
}
private String runnerConfigFileName(VM vm) {
- return vm.punitName() + ".cfg"; //$NON-NLS-1$
+ return RunnerConstants.RESULT_FOLDER + File.separator
+ + vm.punitName() + ".cfg"; //$NON-NLS-1$
}
-
+
private String runnerPropertiesFileName(VM vm) {
- return vm.punitName() + ".props"; //$NON-NLS-1$
+ return RunnerConstants.RESULT_FOLDER + File.separator
+ + vm.punitName() + ".props"; //$NON-NLS-1$
}
public RunnerProperties properties() {
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -7,11 +7,6 @@
public class PUnitConcurrentRunner extends PUnitAbstractRunner {
- /**
- *
- */
- private static final long serialVersionUID = -8752725777891055594L;
-
public PUnitConcurrentRunner() {
super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(), new ConcurrentTestMethodRunner());
}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -7,14 +7,6 @@
public class PUnitSoloRunner extends PUnitAbstractRunner {
- private static final long serialVersionUID = -1868956002428374452L;
-
- /**
- *
- * @param args
- * args[0] test class; args[1] test result folder. uses current
- * folder if it is not specified
- */
public static void main(String[] args) {
RunnerUtil.run(new PUnitSoloRunner(), args);
}
Copied: trunk/punit/src/org/punit/runner/RunnerConstants.java (from rev 61, trunk/punit/src/org/punit/reporter/ReporterConstants.java)
===================================================================
--- trunk/punit/src/org/punit/runner/RunnerConstants.java (rev 0)
+++ trunk/punit/src/org/punit/runner/RunnerConstants.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -0,0 +1,10 @@
+package org.punit.runner;
+
+import org.punit.message.*;
+
+public class RunnerConstants {
+
+ public static final String RESULT_FOLDER = Messages
+ .getString("reporter.01"); //$NON-NLS-1$
+
+}
Modified: trunk/punit/src/org/punit/runner/RunnerProperties.java
===================================================================
--- trunk/punit/src/org/punit/runner/RunnerProperties.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/RunnerProperties.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -6,8 +6,6 @@
public class RunnerProperties implements Serializable {
- private static final long serialVersionUID = 7995583333394319006L;
-
public String vmName;
public boolean isIntermediate;
Modified: trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -6,11 +6,6 @@
public class ConcurrentTestMethodRunner extends AbstractTestMethodRunner {
- /**
- *
- */
- private static final long serialVersionUID = -7121609228780107017L;
-
TestMethodThread[] _threads;
ConcurrentException _concurrentException = new ConcurrentException();
Modified: trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/runner/method/SoloTestMethodRunner.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -4,12 +4,7 @@
import org.punit.util.*;
public class SoloTestMethodRunner extends AbstractTestMethodRunner {
-
- /**
- *
- */
- private static final long serialVersionUID = 3278612571978181393L;
-
+
protected void runImpl() throws Throwable {
try {
ReflectionUtil.invokeMethod(_method, _testInstance, _params);
Modified: trunk/punit/src/org/punit/type/VM.java
===================================================================
--- trunk/punit/src/org/punit/type/VM.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/type/VM.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -4,8 +4,6 @@
public class VM implements PUnitName, Serializable {
- private static final long serialVersionUID = 7903136094137840375L;
-
private String _path;
private String _name;
Modified: trunk/punit/src/org/punit/watcher/MemoryWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/watcher/MemoryWatcher.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -5,8 +5,6 @@
public class MemoryWatcher implements Watcher {
- private static final long serialVersionUID = -2483161714907047937L;
-
private long _startUsedMemory;
private long _maxUsedMemory;
Modified: trunk/punit/src/org/punit/watcher/TimeWatcher.java
===================================================================
--- trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit/src/org/punit/watcher/TimeWatcher.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -23,11 +23,6 @@
public class TimeWatcher implements Watcher {
- /**
- *
- */
- private static final long serialVersionUID = -3947339222142255894L;
-
private long _startTime;
private long _endTime;
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -3,10 +3,12 @@
import java.awt.image.*;
import java.io.*;
import java.lang.reflect.*;
+import java.util.*;
import javax.imageio.*;
import org.jfree.chart.*;
+import org.jfree.data.category.*;
import org.punit.events.*;
import org.punit.runner.*;
import org.punit.watcher.*;
@@ -20,6 +22,8 @@
protected final String _format;
protected transient RunnerProperties _runnerProperties;
+
+ private Hashtable _overviewDatasets = new Hashtable(); // <key,DefaultCategoryDataset>
public AbstractImageReporter() {
this(ImageReporterConstants.DEFAULT_HEIGHT, ImageReporterConstants.DEFAULT_WIDTH, ImageReporterConstants.DEFAULT_FORMAT);
@@ -30,21 +34,7 @@
_width = width;
_format = format;
}
-
- public void onClassStart(Class clazz) {
- }
-
- public void onClassEnd(Class clazz) {
- // nothing needs to do
- }
-
- public void onMethodStart(Method method) {
- }
-
- public void onMethodEnd(Method method, Throwable t) {
- // nothing needs to do
- }
-
+
public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
// nothing needs to do
}
@@ -65,6 +55,18 @@
return _runnerProperties.isParent;
}
+ protected final DefaultCategoryDataset getDataset(Object key) {
+ return (DefaultCategoryDataset) _overviewDatasets.get(key);
+ }
+
+ protected final void putDataset(Object key, DefaultCategoryDataset dataset) {
+ _overviewDatasets.put(key, dataset);
+ }
+
+ protected final Hashtable datasets() {
+ return _overviewDatasets;
+ }
+
protected final void storeChartAsImage(JFreeChart chart, File file) {
BufferedImage chartImage = chart.createBufferedImage(_height, _width);
try {
Added: trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java (rev 0)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -0,0 +1,57 @@
+package org.punit.reporter.chart.image;
+
+import java.lang.reflect.*;
+
+import org.punit.runner.*;
+import org.punit.watcher.*;
+
+public class TestClassImageReporter extends AbstractImageReporter {
+
+ public static class DatasetKey {
+ Watcher watcher;
+
+ Class clazz;
+
+ public int hashCode() {
+ return watcher.hashCode() + clazz.hashCode();
+ }
+
+ public boolean equals(Object obj) {
+ if (!(obj instanceof DatasetKey)) {
+ return false;
+ }
+ DatasetKey key = (DatasetKey) obj;
+ return watcher.equals(key.watcher) && clazz.equals(key.clazz);
+ }
+ }
+
+ public void onClassEnd(Class clazz) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onClassStart(Class clazz) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onMethodEnd(Method method, Throwable t) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onMethodStart(Method method) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onRunnerEnd(Class clazz, Runner runner) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onRunnerStart(Class clazz, Runner runner) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void onWatcherEnd(Watcher watcher, Object testInstance,
+ Method method, Object[] params) {
+ throw new UnsupportedOperationException();
+ }
+
+}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -17,8 +17,6 @@
public class TestSuiteImageReporter extends AbstractImageReporter {
- private transient Hashtable _overviewDatasets; // <Watcher,DefaultCategoryDataset>
-
public TestSuiteImageReporter() {
super();
}
@@ -30,14 +28,13 @@
public void onRunnerStart(Class clazz, Runner runner) {
_runnerProperties = runner.properties();
Watcher[] watchers = runner.testMethodRunner().watchers();
- _overviewDatasets = new Hashtable(watchers.length);
for (int i = 0; i < watchers.length; ++i) {
- _overviewDatasets.put(watchers[i], new DefaultCategoryDataset());
+ putDataset(watchers[i], new DefaultCategoryDataset());
}
}
public void onRunnerEnd(final Class clazz, final Runner runner) {
- Set entrySet = _overviewDatasets.entrySet();
+ Set entrySet = datasets().entrySet();
final VM[] vms = _runnerProperties.vms;
TraverserUtil.traverse(entrySet.iterator(), new Traverser() {
public void traverse(Object obj) {
@@ -80,10 +77,6 @@
dataset.addValue(value, yname, xname); // value, y, x
}
- protected final DefaultCategoryDataset getDataset(Watcher watcher) {
- return (DefaultCategoryDataset) _overviewDatasets.get(watcher);
- }
-
protected final String generateResultFileName(Runner runner, Watcher watcher) {
StringBuffer sb = new StringBuffer();
sb.append(Messages.getString("reporter.01")); //$NON-NLS-1$
@@ -119,5 +112,20 @@
IOUtil.deleteFile(childFileName);
}
}
+
+ public void onClassStart(Class clazz) {
+ }
+ public void onClassEnd(Class clazz) {
+ // nothing needs to do
+ }
+
+ public void onMethodStart(Method method) {
+ }
+
+ public void onMethodEnd(Method method, Throwable t) {
+ // nothing needs to do
+ }
+
+
}
Modified: trunk/punit.test/src/extension/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-17 13:18:32 UTC (rev 94)
+++ trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-17 14:11:19 UTC (rev 95)
@@ -22,7 +22,7 @@
public static void main(String[] args) {
TestUtil.runUnitTest = false;
- VM harmonyVM = new VM(HARMONY, "Harmony"); //$NON-NLS-1$
+ VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
PUnitSoloRunner runner = new PUnitSoloRunner();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 16:20:32
|
Revision: 98
http://p-unit.svn.sourceforge.net/p-unit/?rev=98&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 09:20:34 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: now we're talking. Refactored the event system.
Modified Paths:
--------------
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit/src/org/punit/runner/method/TestMethodRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -28,4 +28,5 @@
public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params);
+ public boolean supportParentRunner();
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -173,4 +173,8 @@
}
}
+ public boolean supportParentRunner() {
+ return false;
+ }
+
}
\ No newline at end of file
Modified: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -14,5 +14,8 @@
public ConsoleLoggerListener() {
super(System.err);
}
-
+
+ public boolean supportParentRunner() {
+ return true;
+ }
}
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -2,7 +2,6 @@
import java.io.*;
-import org.punit.reporter.*;
import org.punit.reporter.stream.*;
import org.punit.runner.*;
import org.punit.util.*;
@@ -10,9 +9,6 @@
public class FileLoggerListener extends StreamLoggerListener {
public void onRunnerStart(Class clazz, Runner runner) {
- if(isParentRunner(runner)) {
- return;
- }
String fileName = generateFileName(clazz, runner);
try {
PrintStream ps = new PrintStream(fileName);
@@ -24,9 +20,6 @@
}
public void onRunnerEnd(Class clazz, Runner runner) {
- if(isParentRunner(runner)) {
- return;
- }
super.onRunnerEnd(clazz, runner);
_ps.close();
}
@@ -49,8 +42,7 @@
return sb.toString();
}
- // TODO: should be refactored to AbstractPUnitEventListener
- private boolean isParentRunner(Runner runner) {
- return runner.properties().isParent;
+ public boolean supportParentRunner() {
+ return false;
}
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -35,6 +35,7 @@
_testSuiteBuiler = testSuiteBuiler;
_testMethodBuilder = testMethodBuilder;
_testMethodRunner = testMethodRunner;
+ _testMethodRunner.setRunner(this);
registerLoggerListeners();
}
@@ -55,7 +56,6 @@
public void runVMs(Class clazz, VM[] vms) {
_properties.isParent = true;
_properties.vms = vms;
- onRunnerStart(clazz);
for (int i = 0; i < vms.length; ++i) {
VM vm = vms[i];
storeRunnerConfig(vm);
@@ -70,7 +70,15 @@
deleteRunnerConfig(vm);
deleteRunnerProperties(vm);
}
- onRunnerEnd(clazz);
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ PUnitEventListener listener = ((PUnitEventListener) obj);
+ if(!listener.supportParentRunner()) {
+ _eventListeners.remove(listener);
+ }
+ }
+ });
+ this.run(clazz);
}
private void deleteRunnerProperties(VM vm) {
@@ -209,7 +217,6 @@
private void registerLoggerListeners() {
addPUnitEventListener(_consoleLogger);
addPUnitEventListener(_fileLogger);
- _testMethodRunner.setEventListeners(_eventListeners);
}
public List eventListeners() {
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -5,6 +5,7 @@
import org.punit.events.*;
import org.punit.exception.*;
+import org.punit.runner.*;
import org.punit.type.*;
import org.punit.util.*;
import org.punit.watcher.*;
@@ -25,7 +26,7 @@
protected Method _setUpMethod;
- private List _eventListeners;
+ private Runner _runner;
public AbstractTestMethodRunner() {
_watchers = new Watcher[] { new MemoryWatcher(), new TimeWatcher() };
@@ -34,9 +35,9 @@
public void setWatchers(Watcher[] watchers) {
_watchers = watchers;
}
-
- public void setEventListeners(List listeners) {
- _eventListeners = listeners;
+
+ public void setRunner(Runner runner) {
+ _runner = runner;
}
public void run(Object testInstance, Method method, Object[] params) {
@@ -47,6 +48,9 @@
setUpBeforeWatchers(params);
startWatchers(testInstance, method, params);
setUpAfterWatchers(params);
+ if(isParentRunner()) {
+ return;
+ }
runImpl();
} catch (Throwable t) {
throwable = t;
@@ -67,8 +71,12 @@
}
}
+ private boolean isParentRunner() {
+ return _runner.properties().isParent;
+ }
+
private void onMethodStart(final Method method) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onMethodStart(method);
}
@@ -76,7 +84,7 @@
}
private void onMethodEnd(final Method method, final Throwable t) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onMethodEnd(method, t);
}
@@ -169,7 +177,7 @@
}
private void onWatchersStart(final Object testInstance, final Method method, final Object[] params) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatchersStart(_watchers, testInstance, method, params);
}
@@ -177,7 +185,7 @@
}
private void onWatcherStart(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatcherStart(watcher, testInstance, method, params);
}
@@ -193,7 +201,7 @@
}
private void onWatcherEnd(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatcherEnd(watcher, testInstance, method, params);
}
@@ -201,13 +209,17 @@
}
private void onWatchersEnd(final Object testInstance, final Method method, final Object[] params) {
- TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
((PUnitEventListener) obj).onWatchersEnd(_watchers, testInstance, method, params);
}
});
}
+ private List runnerEventListeners() {
+ return _runner.eventListeners();
+ }
+
public Watcher[] watchers() {
return _watchers;
}
Modified: trunk/punit/src/org/punit/runner/method/TestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit/src/org/punit/runner/method/TestMethodRunner.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -2,8 +2,8 @@
import java.io.*;
import java.lang.reflect.*;
-import java.util.*;
+import org.punit.runner.*;
import org.punit.watcher.*;
public interface TestMethodRunner extends Serializable{
@@ -16,7 +16,7 @@
*/
public void run(Object testInstance, Method method, Object[] params);
- public void setEventListeners(List eventListeners);
+ public void setRunner(Runner runner);
/**
* returns the watchers associated with this method runner.
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -11,6 +11,7 @@
import org.jfree.data.category.*;
import org.punit.events.*;
import org.punit.runner.*;
+import org.punit.util.*;
import org.punit.watcher.*;
public abstract class AbstractImageReporter implements PUnitEventListener {
@@ -23,7 +24,7 @@
protected transient RunnerProperties _runnerProperties;
- private Hashtable _overviewDatasets = new Hashtable(); // <key,DefaultCategoryDataset>
+ private Hashtable datasets = new Hashtable(); // <key,DefaultCategoryDataset>
public AbstractImageReporter() {
this(ImageReporterConstants.DEFAULT_HEIGHT, ImageReporterConstants.DEFAULT_WIDTH, ImageReporterConstants.DEFAULT_FORMAT);
@@ -35,10 +36,29 @@
_format = format;
}
+ public void onRunnerStart(Class clazz, Runner runner) {
+ _runnerProperties = runner.properties();
+ }
+
+ public void onClassStart(Class clazz) {
+ // nothing needs to do
+ }
+
public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
// nothing needs to do
}
+ public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ Object key = getKey(watcher, testInstance, method);
+ DefaultCategoryDataset dataset = getDatasetOrNew(key);
+ double value = watcher.value();
+ String yname = testInstance.getClass().getSimpleName();
+ String xname = LoggerUtil.simpleMethodName(method);
+ dataset.addValue(value, yname, xname); // value, y, x
+ }
+
+ protected abstract Object getKey(Watcher watcher, Object testInstance, Method method);
+
public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
// nothing needs to do
}
@@ -47,6 +67,17 @@
// nothing needs to do
}
+ public void onClassEnd(Class clazz) {
+ // nothing needs to do
+ }
+
+ public void onMethodStart(Method method) {
+ }
+
+ public void onMethodEnd(Method method, Throwable t) {
+ // nothing needs to do
+ }
+
protected final boolean isIntermediate() {
return _runnerProperties.isIntermediate;
}
@@ -55,16 +86,21 @@
return _runnerProperties.isParent;
}
- protected final DefaultCategoryDataset getDataset(Object key) {
- return (DefaultCategoryDataset) _overviewDatasets.get(key);
+ protected final DefaultCategoryDataset getDatasetOrNew(Object key) {
+ DefaultCategoryDataset dataset = (DefaultCategoryDataset) datasets.get(key);
+ if(dataset == null) {
+ dataset = new DefaultCategoryDataset();
+ putDataset(key, dataset);
+ }
+ return dataset;
}
protected final void putDataset(Object key, DefaultCategoryDataset dataset) {
- _overviewDatasets.put(key, dataset);
+ datasets.put(key, dataset);
}
protected final Hashtable datasets() {
- return _overviewDatasets;
+ return datasets;
}
protected final void storeChartAsImage(JFreeChart chart, File file) {
@@ -76,5 +112,7 @@
}
}
-
+ public boolean supportParentRunner() {
+ return true;
+ }
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -7,13 +7,30 @@
public class TestClassImageReporter extends AbstractImageReporter {
+ public void onClassEnd(Class clazz) {
+ // nothing needs to do
+ }
+
+ public void onRunnerEnd(Class clazz, Runner runner) {
+ throw new UnsupportedOperationException();
+ }
+
+ protected Object getKey(Watcher watcher, Object testInstance, Method method) {
+ return new DatasetKey(watcher, testInstance.getClass());
+ }
+
public static class DatasetKey {
- Watcher watcher;
+ private Watcher _watcher;
- Class clazz;
+ private Class _clazz;
+ public DatasetKey(Watcher watcher, Class clazz) {
+ _watcher = watcher;
+ _clazz = clazz;
+ }
+
public int hashCode() {
- return watcher.hashCode() + clazz.hashCode();
+ return _watcher.hashCode() + _clazz.hashCode();
}
public boolean equals(Object obj) {
@@ -21,37 +38,7 @@
return false;
}
DatasetKey key = (DatasetKey) obj;
- return watcher.equals(key.watcher) && clazz.equals(key.clazz);
+ return _watcher.equals(key._watcher) && _clazz.equals(key._clazz);
}
}
-
- public void onClassEnd(Class clazz) {
- throw new UnsupportedOperationException();
- }
-
- public void onClassStart(Class clazz) {
- throw new UnsupportedOperationException();
- }
-
- public void onMethodEnd(Method method, Throwable t) {
- throw new UnsupportedOperationException();
- }
-
- public void onMethodStart(Method method) {
- throw new UnsupportedOperationException();
- }
-
- public void onRunnerEnd(Class clazz, Runner runner) {
- throw new UnsupportedOperationException();
- }
-
- public void onRunnerStart(Class clazz, Runner runner) {
- throw new UnsupportedOperationException();
- }
-
- public void onWatcherEnd(Watcher watcher, Object testInstance,
- Method method, Object[] params) {
- throw new UnsupportedOperationException();
- }
-
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -24,15 +24,7 @@
public TestSuiteImageReporter(int height, int width, String format) {
super(height, width, format);
}
-
- public void onRunnerStart(Class clazz, Runner runner) {
- _runnerProperties = runner.properties();
- Watcher[] watchers = runner.testMethodRunner().watchers();
- for (int i = 0; i < watchers.length; ++i) {
- putDataset(watchers[i], new DefaultCategoryDataset());
- }
- }
-
+
public void onRunnerEnd(final Class clazz, final Runner runner) {
Set entrySet = datasets().entrySet();
final VM[] vms = _runnerProperties.vms;
@@ -69,12 +61,8 @@
});
}
- public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
- DefaultCategoryDataset dataset = getDataset(watcher);
- double value = watcher.value();
- String yname = testInstance.getClass().getSimpleName();
- String xname = method.getName();
- dataset.addValue(value, yname, xname); // value, y, x
+ public void onClassEnd(Class clazz) {
+ // nothing needs to do
}
protected final String generateResultFileName(Runner runner, Watcher watcher) {
@@ -112,20 +100,9 @@
IOUtil.deleteFile(childFileName);
}
}
-
- public void onClassStart(Class clazz) {
- }
- public void onClassEnd(Class clazz) {
- // nothing needs to do
+ protected final Object getKey(Watcher watcher, Object testInstance, Method method) {
+ return watcher;
}
- public void onMethodStart(Method method) {
- }
-
- public void onMethodEnd(Method method, Throwable t) {
- // nothing needs to do
- }
-
-
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 14:21:48 UTC (rev 97)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 16:20:34 UTC (rev 98)
@@ -73,4 +73,8 @@
Assert.assertTrue(onWatchersEnd);
Assert.assertTrue(onWatchersStart);
}
+
+ public boolean supportParentRunner() {
+ return true;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 18:55:06
|
Revision: 100
http://p-unit.svn.sourceforge.net/p-unit/?rev=100&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 11:55:07 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: first implementation for TestClassImageReporter.
Modified Paths:
--------------
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/ChartUtil.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
Added Paths:
-----------
trunk/punit.test/src/extension/tests/samples/TestClassVMsSample.java
trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java
Removed Paths:
-------------
trunk/punit.test/src/extension/tests/samples/VMsSample.java
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -29,4 +29,5 @@
public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params);
public boolean supportParentRunner();
+
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -11,7 +11,7 @@
import org.punit.util.*;
import org.punit.watcher.*;
-public class StreamLoggerListener implements PUnitEventListener {
+public abstract class StreamLoggerListener implements PUnitEventListener {
protected transient PrintStream _ps;
@@ -173,8 +173,4 @@
}
}
- public boolean supportParentRunner() {
- return false;
- }
-
}
\ No newline at end of file
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -4,6 +4,8 @@
import java.lang.reflect.*;
import java.util.*;
+import javax.swing.text.html.HTMLDocument.HTMLReader.*;
+
import org.punit.builder.*;
import org.punit.events.*;
import org.punit.exception.*;
@@ -70,15 +72,23 @@
deleteRunnerConfig(vm);
deleteRunnerProperties(vm);
}
+
+ filterNonParentEventListeners();
+ run(clazz);
+ }
+
+ private void filterNonParentEventListeners() {
+ final List newEventListener = new ArrayList();
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
PUnitEventListener listener = ((PUnitEventListener) obj);
- if(!listener.supportParentRunner()) {
- _eventListeners.remove(listener);
+ if(listener.supportParentRunner()) {
+ newEventListener.add(listener);
}
}
});
- this.run(clazz);
+ _eventListeners.clear();
+ _eventListeners.addAll(newEventListener);
}
private void deleteRunnerProperties(VM vm) {
@@ -114,7 +124,6 @@
return _properties;
}
-
private String generateVMCommand(Class clazz, VM vm) {
final StringBuffer sb = new StringBuffer();
sb.append(vm.path());
Modified: trunk/punit.extension/src/org/punit/reporter/chart/ChartUtil.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/ChartUtil.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.extension/src/org/punit/reporter/chart/ChartUtil.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -31,7 +31,7 @@
return ds1;
}
- public static JFreeChart renderChart(String yLegendText, CategoryDataset dataset) {
+ public static JFreeChart renderChart(String title, String yLegendText, CategoryDataset dataset) {
CategoryAxis categoryAxis = new CategoryAxis(""); //$NON-NLS-1$
categoryAxis.setLabelFont(ChartConstants.CATEGORY_LABEL_FONT);
categoryAxis.setTickLabelFont(ChartConstants.CATEGORY_TICKLABEL_FONT);
@@ -43,10 +43,7 @@
CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, valueAxis,
renderer);
plot.setOrientation(PlotOrientation.VERTICAL);
- StringBuffer sb = new StringBuffer();
- sb.append(Messages.getString("reporter.02")); //$NON-NLS-1$
- JFreeChart chart = new JFreeChart(sb.toString(),
- ChartConstants.TITLE_FONT, plot, false);
+ JFreeChart chart = new JFreeChart(title, ChartConstants.TITLE_FONT, plot, false);
LegendTitle legend = new LegendTitle(plot);
legend.setItemFont(ChartConstants.LEGEND_FONT);
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -10,7 +10,11 @@
import org.jfree.chart.*;
import org.jfree.data.category.*;
import org.punit.events.*;
+import org.punit.exception.*;
+import org.punit.message.*;
+import org.punit.reporter.chart.*;
import org.punit.runner.*;
+import org.punit.type.*;
import org.punit.util.*;
import org.punit.watcher.*;
@@ -35,19 +39,9 @@
_width = width;
_format = format;
}
-
- public void onRunnerStart(Class clazz, Runner runner) {
- _runnerProperties = runner.properties();
- }
- public void onClassStart(Class clazz) {
- // nothing needs to do
- }
+ protected abstract DatasetKey getKey(Watcher watcher, Object testInstance, Method method);
- public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
- // nothing needs to do
- }
-
public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
DatasetKey key = getKey(watcher, testInstance, method);
DefaultCategoryDataset dataset = getDatasetOrNew(key);
@@ -59,28 +53,113 @@
String xname = LoggerUtil.simpleMethodName(method);
dataset.addValue(value, yname, xname); // value, y, x
}
-
- protected abstract DatasetKey getKey(Watcher watcher, Object testInstance, Method method);
-
- public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
- // nothing needs to do
+
+ public void onRunnerStart(Class clazz, Runner runner) {
+ _runnerProperties = runner.properties();
}
- public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
- // nothing needs to do
+ public void onRunnerEnd(final Class clazz, final Runner runner) {
+ Set keySet = datasets().keySet();
+ TraverserUtil.traverse(keySet.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ DatasetKey key = (DatasetKey) obj;
+ DefaultCategoryDataset dataset = getDataset(runner, key);
+ String fileName = generateResultFileNamePrefix(runner, key);
+ storeDataset(dataset, fileName, key);
+ }
+ });
}
- public void onClassEnd(Class clazz) {
- // nothing needs to do
+ private DefaultCategoryDataset getDataset(final Runner runner, DatasetKey key) {
+ DefaultCategoryDataset dataset;
+ if (isParentRunner()) {
+ dataset = generateDatasetFromChildrenVMs(runner, key);
+ } else {
+ dataset = (DefaultCategoryDataset) getDatasetOrNew(key);
+ }
+ return dataset;
}
+
+ private DefaultCategoryDataset generateDatasetFromChildrenVMs(final Runner runner, DatasetKey key) {
+ String childFileNamePrefix = generateResultFileNamePrefix(runner, key);
+ final VM[] vms = _runnerProperties.vms;
+ DefaultCategoryDataset dataset = getDatasetOrNew(key);
+ for (int i = 0; i < vms.length; ++i) {
+ String vmname = vms[i].punitName();
+ String childFileName = generateIntermediateFileName(childFileNamePrefix, vmname);
+ DefaultCategoryDataset childDataset = consumeChildData(runner, childFileName);
+ dataset = ChartUtil.appendDataset(dataset, childDataset, vmname);
+ }
+ return dataset;
+ }
+
+ private DefaultCategoryDataset consumeChildData(final Runner runner,String childFileName) {
+ ObjectInputStream ois = null;
+ try {
+ FileInputStream fis = new FileInputStream(childFileName);
+ ois = new ObjectInputStream(fis);
+ return (DefaultCategoryDataset) ois.readObject();
+ } catch (Exception e) {
+ throw new PUnitIOException(e);
+ } finally {
+ if (ois != null) {
+ try {
+ ois.close();
+ } catch (IOException e) {
+ throw new PUnitIOException(e);
+ }
+ }
+ IOUtil.deleteFile(childFileName);
+ }
+ }
+
+ private void storeDataset(DefaultCategoryDataset dataset, String prefixFileName, DatasetKey key) {
+ if (isIntermediate()) {
+ String fileName = generateIntermediateFileName(prefixFileName, _runnerProperties.vmName);
+ ChartUtil.storeDatasetAsObject(dataset, new File(fileName));
+ } else {
+ String fileName = generateResultFileName(prefixFileName);
+ String title = key.punitName();
+ String yLegendText = watcherLegend(key.watcher());
+ JFreeChart chart = ChartUtil.renderChart(title, yLegendText, dataset);
+ storeChartAsImage(chart, new File(fileName));
+ }
+ }
+
+ protected final void storeChartAsImage(JFreeChart chart, File file) {
+ BufferedImage chartImage = chart.createBufferedImage(_height, _width);
+ try {
+ ImageIO.write(chartImage, _format, file);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
- public void onMethodStart(Method method) {
+ private static String generateIntermediateFileName(String prefix, String vmName) {
+ return prefix + vmName + ImageReporterConstants.SER;
}
+
+ private final String generateResultFileName(String prefix) {
+ return prefix + _format;
+ }
- public void onMethodEnd(Method method, Throwable t) {
- // nothing needs to do
+ private final String generateResultFileNamePrefix(Runner runner, DatasetKey key) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(Messages.getString("reporter.01")); //$NON-NLS-1$
+ sb.append(File.separator);
+ sb.append(key.punitName());
+ sb.append("."); //$NON-NLS-1$
+ sb.append(key.watcher().punitName());
+ sb.append("."); //$NON-NLS-1$
+ sb.append(runner.punitName());
+ sb.append("."); //$NON-NLS-1$
+ return sb.toString();
}
-
+
+ private static String watcherLegend(Watcher watcher) {
+ return watcher.punitName()+ " [" + watcher.unit() + "]"; //$NON-NLS-1$//$NON-NLS-2$
+ }
+
protected final boolean isIntermediate() {
return _runnerProperties.isIntermediate;
}
@@ -106,16 +185,35 @@
return datasets;
}
- protected final void storeChartAsImage(JFreeChart chart, File file) {
- BufferedImage chartImage = chart.createBufferedImage(_height, _width);
- try {
- ImageIO.write(chartImage, _format, file);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
public boolean supportParentRunner() {
return true;
}
+
+ public void onClassStart(Class clazz) {
+ // nothing needs to do
+ }
+
+ public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ // nothing needs to do
+ }
+
+ public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ // nothing needs to do
+ }
+
+ public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ // nothing needs to do
+ }
+
+ public void onClassEnd(Class clazz) {
+ // nothing needs to do
+ }
+
+ public void onMethodStart(Method method) {
+ }
+
+ public void onMethodEnd(Method method, Throwable t) {
+ // nothing needs to do
+ }
+
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestClassImageReporter.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -2,16 +2,16 @@
import java.lang.reflect.*;
-import org.punit.runner.*;
import org.punit.watcher.*;
public class TestClassImageReporter extends AbstractImageReporter {
- public void onClassEnd(Class clazz) {
+ public TestClassImageReporter() {
+ super();
}
- public void onRunnerEnd(Class clazz, Runner runner) {
- throw new UnsupportedOperationException();
+ public TestClassImageReporter(int height, int width, String format) {
+ super(height, width, format);
}
protected DatasetKey getKey(Watcher watcher, Object testInstance,
@@ -44,17 +44,9 @@
public Watcher watcher() {
return _watcher;
}
-
+
public String punitName() {
- return _clazz.getName() + " " + _watcher.punitName(); //$NON-NLS-1$
+ return _clazz.getName();
}
}
-
- protected String keyLegend(Object key) {
- DatasetKeyImpl datasetKey = (DatasetKeyImpl) key;
- Watcher watcher = datasetKey._watcher;
- Class clazz = datasetKey._clazz;
- return clazz.getName()
- + " " + watcher.punitName() + " [" + watcher.unit() + "]"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- }
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/TestSuiteImageReporter.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -1,18 +1,8 @@
package org.punit.reporter.chart.image;
-import java.io.*;
import java.lang.reflect.*;
-import java.util.*;
-import java.util.Map.*;
-import org.jfree.chart.*;
-import org.jfree.data.category.*;
-import org.punit.exception.*;
import org.punit.message.*;
-import org.punit.reporter.chart.*;
-import org.punit.runner.*;
-import org.punit.type.*;
-import org.punit.util.*;
import org.punit.watcher.*;
public class TestSuiteImageReporter extends AbstractImageReporter {
@@ -24,101 +14,12 @@
public TestSuiteImageReporter(int height, int width, String format) {
super(height, width, format);
}
-
- public void onRunnerEnd(final Class clazz, final Runner runner) {
- Set keySet = datasets().keySet();
- TraverserUtil.traverse(keySet.iterator(), new Traverser() {
- public void traverse(Object obj) {
- DatasetKey key = (DatasetKey) obj;
- DefaultCategoryDataset dataset = getDataset(runner, key);
- String fileName = generateResultFileName(runner, key);
- String yLegendText = watcherLegend(key.watcher());
- storeDataset(dataset, fileName, yLegendText);
- }
- });
- }
- public void onClassEnd(Class clazz) {
- // nothing needs to do
- }
-
- protected final String generateResultFileName(Runner runner, DatasetKey key) {
- StringBuffer sb = new StringBuffer();
- sb.append(Messages.getString("reporter.01")); //$NON-NLS-1$
- sb.append(File.separator);
- sb.append(Messages.getString("reporter.02")); //$NON-NLS-1$
- sb.append("."); //$NON-NLS-1$
- sb.append(key.punitName());
- sb.append("."); //$NON-NLS-1$
- sb.append(runner.punitName());
- sb.append("."); //$NON-NLS-1$
- return sb.toString();
- }
-
- private DefaultCategoryDataset consumeChildData(final Runner runner,String childFileName) {
- ObjectInputStream ois = null;
- try {
- FileInputStream fis = new FileInputStream(childFileName);
- ois = new ObjectInputStream(fis);
- return (DefaultCategoryDataset) ois.readObject();
- } catch (Exception e) {
- throw new PUnitIOException(e);
- } finally {
- if (ois != null) {
- try {
- ois.close();
- } catch (IOException e) {
- throw new PUnitIOException(e);
- }
- }
- IOUtil.deleteFile(childFileName);
- }
- }
-
- protected final DatasetKey getKey(Watcher watcher, Object testInstance, Method method) {
+ protected final DatasetKey getKey(Watcher watcher, Object testInstance,
+ Method method) {
return new DatasetKeyImpl(watcher);
}
- protected String watcherLegend(Watcher watcher) {
- return watcher.punitName()+ " [" + watcher.unit() + "]"; //$NON-NLS-1$//$NON-NLS-2$
- }
-
- protected DefaultCategoryDataset generateDatasetFromChildrenVMs(final Runner runner, DatasetKey key) {
- String childFileNamePrefix = generateResultFileName(runner, key);
- final VM[] vms = _runnerProperties.vms;
- DefaultCategoryDataset dataset = getDatasetOrNew(key);
- for (int i = 0; i < vms.length; ++i) {
- String vmname = vms[i].punitName();
- String childFileName = childFileNamePrefix + vmname + ImageReporterConstants.SER;
- DefaultCategoryDataset childDataset = consumeChildData(runner, childFileName);
- dataset = ChartUtil.appendDataset(dataset, childDataset, vmname);
- }
- return dataset;
- }
-
- protected void storeDataset(DefaultCategoryDataset dataset, String fileName, String yLegendText) {
- if (isIntermediate()) {
- fileName = fileName + _runnerProperties.vmName
- + ImageReporterConstants.SER;
- ChartUtil.storeDatasetAsObject(dataset, new File(fileName));
- } else {
- fileName = fileName + _format;
- JFreeChart chart = ChartUtil.renderChart(yLegendText,
- dataset);
- storeChartAsImage(chart, new File(fileName));
- }
- }
-
- private DefaultCategoryDataset getDataset(final Runner runner, DatasetKey key) {
- DefaultCategoryDataset dataset;
- if (isParentRunner()) {
- dataset = generateDatasetFromChildrenVMs(runner, key);
- } else {
- dataset = (DefaultCategoryDataset) getDatasetOrNew(key);
- }
- return dataset;
- }
-
public static class DatasetKeyImpl implements DatasetKey {
private Watcher _watcher;
@@ -143,7 +44,7 @@
}
public String punitName() {
- return _watcher.punitName();
+ return Messages.getString("reporter.02"); //$NON-NLS-1$//$NON-NLS-2$
}
}
}
Copied: trunk/punit.test/src/extension/tests/samples/TestClassVMsSample.java (from rev 95, trunk/punit.test/src/extension/tests/samples/VMsSample.java)
===================================================================
--- trunk/punit.test/src/extension/tests/samples/TestClassVMsSample.java (rev 0)
+++ trunk/punit.test/src/extension/tests/samples/TestClassVMsSample.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -0,0 +1,96 @@
+package extension.tests.samples;
+
+import java.io.*;
+
+import org.punit.reporter.chart.image.*;
+import org.punit.runner.*;
+import org.punit.type.*;
+import org.punit.util.*;
+
+import tests.util.*;
+
+public class TestClassVMsSample {
+
+ private static String CLASSPATH;
+ static {
+ CLASSPATH = generateClassPath();
+ }
+
+ private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+ private static String HARMONY_IBMVME = "D:\\harmony_trunk\\trunk\\deploy\\jdk\\jre\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+ private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+
+ public static void main(String[] args) {
+ TestUtil.runUnitTest = false;
+ VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
+ VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
+ VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
+ PUnitSoloRunner runner = new PUnitSoloRunner();
+ runner.addPUnitEventListener(new TestSuiteImageReporter());
+ runner.addPUnitEventListener(new TestClassImageReporter());
+ runner.runVMs(TestClassVMsSample.class, new VM[] { harmonyVM, sunVM });
+ }
+
+ private static String generateClassPath() {
+ StringBuffer sb = new StringBuffer();
+ sb.append(" -cp "); //$NON-NLS-1$
+ String currentPath = IOUtil.getCurrentPath();
+
+ // test project
+ sb.append(currentPath);
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // extension project
+ sb.append(currentPath.replaceAll("punit.test", "punit.extension")); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // core project
+ sb.append(currentPath.replaceAll("punit.test", "punit")); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // junit
+ sb.append("D:\\tools\\eclipse3.2\\plugins\\org.junit_3.8.1\\junit.jar;"); //$NON-NLS-1$
+ sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;"); //$NON-NLS-1$
+ sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"); //$NON-NLS-1$
+ return sb.toString();
+ }
+
+
+ public void test1() {
+ if(isSun()) {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(1000);
+ } else {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(2000);
+ }
+ }
+
+ public void test2() {
+ if(isSun()) {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(2000);
+ } else {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(1000);
+ }
+ }
+
+ public void test3() {
+ if(isSun()) {
+ TestUtil.consumeMemory(300000);
+ TestUtil.consumeTime(3000);
+ } else {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(2000);
+ }
+ }
+
+ private boolean isSun() {
+// return System.getProperty("java.vendor").indexOf("Sun") == -1;
+ return true;
+ }
+}
Added: trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java (rev 0)
+++ trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -0,0 +1,97 @@
+package extension.tests.samples;
+
+import java.io.*;
+
+import org.punit.reporter.chart.image.*;
+import org.punit.runner.*;
+import org.punit.type.*;
+import org.punit.util.*;
+
+import tests.api.org.punit.testclasses.*;
+import tests.util.*;
+
+public class TestSuiteVMsSample {
+
+ private static String CLASSPATH;
+ static {
+ CLASSPATH = generateClassPath();
+ }
+
+ private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+ private static String HARMONY_IBMVME = "D:\\harmony_trunk\\trunk\\deploy\\jdk\\jre\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+ private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java" + CLASSPATH; //$NON-NLS-1$
+
+ public static void main(String[] args) {
+ TestUtil.runUnitTest = false;
+ VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
+ VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
+ VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
+ PUnitSoloRunner runner = new PUnitSoloRunner();
+ runner.addPUnitEventListener(new TestSuiteImageReporter());
+ runner.addPUnitEventListener(new TestClassImageReporter());
+ runner.runVMs(TestSuiteClass.class, new VM[] { harmonyVM, sunVM });
+ }
+
+ private static String generateClassPath() {
+ StringBuffer sb = new StringBuffer();
+ sb.append(" -cp "); //$NON-NLS-1$
+ String currentPath = IOUtil.getCurrentPath();
+
+ // test project
+ sb.append(currentPath);
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // extension project
+ sb.append(currentPath.replaceAll("punit.test", "punit.extension")); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // core project
+ sb.append(currentPath.replaceAll("punit.test", "punit")); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(File.separator);
+ sb.append("bin;"); //$NON-NLS-1$
+
+ // junit
+ sb.append("D:\\tools\\eclipse3.2\\plugins\\org.junit_3.8.1\\junit.jar;"); //$NON-NLS-1$
+ sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;"); //$NON-NLS-1$
+ sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"); //$NON-NLS-1$
+ return sb.toString();
+ }
+
+
+ public void test1() {
+ if(isSun()) {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(1000);
+ } else {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(2000);
+ }
+ }
+
+ public void test2() {
+ if(isSun()) {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(2000);
+ } else {
+ TestUtil.consumeMemory(100000);
+ TestUtil.consumeTime(1000);
+ }
+ }
+
+ public void test3() {
+ if(isSun()) {
+ TestUtil.consumeMemory(300000);
+ TestUtil.consumeTime(3000);
+ } else {
+ TestUtil.consumeMemory(200000);
+ TestUtil.consumeTime(2000);
+ }
+ }
+
+ private boolean isSun() {
+// return System.getProperty("java.vendor").indexOf("Sun") == -1;
+ return true;
+ }
+}
Deleted: trunk/punit.test/src/extension/tests/samples/VMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.test/src/extension/tests/samples/VMsSample.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -1,95 +0,0 @@
-package extension.tests.samples;
-
-import java.io.*;
-
-import org.punit.reporter.chart.image.*;
-import org.punit.runner.*;
-import org.punit.type.*;
-import org.punit.util.*;
-
-import tests.util.*;
-
-public class VMsSample {
-
- private static String CLASSPATH;
- static {
- CLASSPATH = generateClassPath();
- }
-
- private static String HARMONY = "D:\\harmony_trunk\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
- private static String HARMONY_IBMVME = "D:\\harmony_trunk\\trunk\\deploy\\jdk\\jre\\bin\\java" + CLASSPATH; //$NON-NLS-1$
- private static String SUN = "D:\\tools\\jdk1.5.0_07\\bin\\java" + CLASSPATH; //$NON-NLS-1$
-
- public static void main(String[] args) {
- TestUtil.runUnitTest = false;
- VM harmonyVM = new VM(SUN, "Harmony"); //$NON-NLS-1$
- VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
- VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
- PUnitSoloRunner runner = new PUnitSoloRunner();
- runner.addPUnitEventListener(new TestSuiteImageReporter());
- runner.runVMs(VMsSample.class, new VM[] { harmonyVM, sunVM });
- }
-
- private static String generateClassPath() {
- StringBuffer sb = new StringBuffer();
- sb.append(" -cp "); //$NON-NLS-1$
- String currentPath = IOUtil.getCurrentPath();
-
- // test project
- sb.append(currentPath);
- sb.append(File.separator);
- sb.append("bin;"); //$NON-NLS-1$
-
- // extension project
- sb.append(currentPath.replaceAll("punit.test", "punit.extension")); //$NON-NLS-1$ //$NON-NLS-2$
- sb.append(File.separator);
- sb.append("bin;"); //$NON-NLS-1$
-
- // core project
- sb.append(currentPath.replaceAll("punit.test", "punit")); //$NON-NLS-1$ //$NON-NLS-2$
- sb.append(File.separator);
- sb.append("bin;"); //$NON-NLS-1$
-
- // junit
- sb.append("D:\\tools\\eclipse3.2\\plugins\\org.junit_3.8.1\\junit.jar;"); //$NON-NLS-1$
- sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;"); //$NON-NLS-1$
- sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"); //$NON-NLS-1$
- return sb.toString();
- }
-
-
- public void test1() {
- if(isSun()) {
- TestUtil.consumeMemory(200000);
- TestUtil.consumeTime(1000);
- } else {
- TestUtil.consumeMemory(200000);
- TestUtil.consumeTime(2000);
- }
- }
-
- public void test2() {
- if(isSun()) {
- TestUtil.consumeMemory(100000);
- TestUtil.consumeTime(2000);
- } else {
- TestUtil.consumeMemory(100000);
- TestUtil.consumeTime(1000);
- }
- }
-
- public void test3() {
- if(isSun()) {
- TestUtil.consumeMemory(300000);
- TestUtil.consumeTime(3000);
- } else {
- TestUtil.consumeMemory(200000);
- TestUtil.consumeTime(2000);
- }
- }
-
- private boolean isSun() {
-// return System.getProperty("java.vendor").indexOf("Sun") == -1;
- return true;
- }
-}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 17:46:39 UTC (rev 99)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 18:55:07 UTC (rev 100)
@@ -77,4 +77,5 @@
public boolean supportParentRunner() {
return true;
}
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 20:03:04
|
Revision: 101
http://p-unit.svn.sourceforge.net/p-unit/?rev=101&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 13:03:05 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: Now class level image report is nearly done.
Modified Paths:
--------------
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/util/LoggerUtil.java
trunk/punit/src/org/punit/util/RunnerUtil.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java
trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java
trunk/punit.test/src/tests/util/TestUtil.java
Added Paths:
-----------
trunk/punit/src/org/punit/runner/StreamReaderThread.java
trunk/punit.test/src/tests/api/org/punit/testclasses/Parameter1.java
Modified: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -16,6 +16,6 @@
}
public boolean supportParentRunner() {
- return true;
+ return false;
}
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -4,13 +4,10 @@
import java.lang.reflect.*;
import java.util.*;
-import javax.swing.text.html.HTMLDocument.HTMLReader.*;
-
import org.punit.builder.*;
import org.punit.events.*;
import org.punit.exception.*;
import org.punit.reporter.stream.console.*;
-import org.punit.reporter.stream.file.*;
import org.punit.runner.method.*;
import org.punit.type.*;
import org.punit.util.*;
@@ -26,8 +23,6 @@
private final List _eventListeners = new ArrayList(); // List <PUnitEventListener>
private ConsoleLoggerListener _consoleLogger = new ConsoleLoggerListener();
-
- private FileLoggerListener _fileLogger = new FileLoggerListener();
private RunnerProperties _properties = new RunnerProperties();
@@ -64,6 +59,8 @@
storeRunnerProperties(vm);
String command = generateVMCommand(clazz, vm);
Process p = IOUtil.exec(command);
+ readErrorStream(p);
+ readOutputStream(p);
try {
p.waitFor();
} catch (InterruptedException e) {
@@ -71,12 +68,19 @@
}
deleteRunnerConfig(vm);
deleteRunnerProperties(vm);
- }
-
+ }
filterNonParentEventListeners();
run(clazz);
}
+ private void readOutputStream(Process p) {
+ new StreamReaderThread(p.getInputStream()).start();
+ }
+
+ private void readErrorStream(Process p) {
+ new StreamReaderThread(p.getErrorStream()).start();
+ }
+
private void filterNonParentEventListeners() {
final List newEventListener = new ArrayList();
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
@@ -224,8 +228,7 @@
private void registerLoggerListeners() {
- addPUnitEventListener(_consoleLogger);
- addPUnitEventListener(_fileLogger);
+ addPUnitEventListener(_consoleLogger);
}
public List eventListeners() {
@@ -244,17 +247,10 @@
removePUnitEventListener(_consoleLogger);
}
- public void removeFileLogger() {
- removePUnitEventListener(_fileLogger);
- }
-
public ConsoleLoggerListener consoleLogger() {
return _consoleLogger;
}
- public FileLoggerListener fileLogger() {
- return _fileLogger;
- }
public void addTestInterfaces(Class[] interfaces) {
_testMethodBuilder.addTestInterfaces(interfaces);
Added: trunk/punit/src/org/punit/runner/StreamReaderThread.java
===================================================================
--- trunk/punit/src/org/punit/runner/StreamReaderThread.java (rev 0)
+++ trunk/punit/src/org/punit/runner/StreamReaderThread.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -0,0 +1,27 @@
+package org.punit.runner;
+
+import java.io.*;
+
+class StreamReaderThread extends Thread {
+ private InputStream _is;
+
+ public StreamReaderThread(InputStream is) {
+ _is = is;
+ }
+
+ public void run() {
+ InputStreamReader isr = new InputStreamReader(_is);
+ BufferedReader reader = new BufferedReader(isr);
+ try {
+ String string = null;
+ while(true) {
+ string = reader.readLine();
+ if(string == null) {
+ break;
+ }
+ System.err.println(string);
+ }
+ } catch (IOException e) {
+ }
+ }
+}
Modified: trunk/punit/src/org/punit/util/LoggerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -10,16 +10,24 @@
}
public static String simpleMethodName(Method method) {
+ Class[] params = method.getParameterTypes();
+ String[] paramsNames = new String[params.length];
+ for(int i = 0; i < params.length; ++i) {
+ paramsNames[i] = params[i].getSimpleName();
+ }
+ return simpleMethodName(method, paramsNames);
+ }
+
+ public static String simpleMethodName(Method method, Object[] params) {
StringBuffer sb = new StringBuffer();
sb.append(method.getName());
sb.append("("); //$NON-NLS-1$
- Class[] params = method.getParameterTypes();
for(int i = 0; i < params.length - 1 ; ++i) {
- sb.append(params[i].getSimpleName());
+ sb.append(params[i]);
sb.append(", "); //$NON-NLS-1$
}
if(params.length > 0) {
- sb.append(params[params.length - 1].getSimpleName());
+ sb.append(params[params.length - 1]);
}
sb.append(")"); //$NON-NLS-1$
return sb.toString();
Modified: trunk/punit/src/org/punit/util/RunnerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/RunnerUtil.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit/src/org/punit/util/RunnerUtil.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -18,14 +18,6 @@
RunnerProperties properties = null;
Class testClass = ReflectionUtil.newClass(args[0]);
if(length >= 2) {
- System.out.println(args[1]);
- System.out.println(IOUtil.getCurrentPath());
- try {
- System.out.println(new File(args[1]).getCanonicalPath());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
testRunner = (Runner) IOUtil.getSerialiableObject(args[1]);
}
if(length >= 3) {
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -50,7 +50,7 @@
}
double value = watcher.value();
String yname = testInstance.getClass().getSimpleName();
- String xname = LoggerUtil.simpleMethodName(method);
+ String xname = LoggerUtil.simpleMethodName(method, params);
dataset.addValue(value, yname, xname); // value, y, x
}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/ConcurrentParameterizableTestClass.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -79,14 +79,6 @@
return new Parameter[] { new Parameter1(VALUE1), new Parameter1(VALUE2), };
}
- static class Parameter1 implements Parameter {
- int value;
-
- Parameter1(int i) {
- value = i;
- }
- }
-
public int concurrentCount() {
return COCURRENT_COUNT;
}
Added: trunk/punit.test/src/tests/api/org/punit/testclasses/Parameter1.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/Parameter1.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/Parameter1.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -0,0 +1,15 @@
+package tests.api.org.punit.testclasses;
+
+import org.punit.type.*;
+
+public class Parameter1 implements Parameter {
+ public int value;
+
+ Parameter1(int i) {
+ value = i;
+ }
+
+ public String toString() {
+ return String.valueOf(value);
+ }
+}
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/ParameterizableTestClass.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -84,11 +84,4 @@
Assert.assertTrue(_tearDownAfter);
}
- static class Parameter1 implements Parameter {
- int value;
-
- Parameter1(int i) {
- value = i;
- }
- }
}
Modified: trunk/punit.test/src/tests/util/TestUtil.java
===================================================================
--- trunk/punit.test/src/tests/util/TestUtil.java 2007-05-17 18:55:07 UTC (rev 100)
+++ trunk/punit.test/src/tests/util/TestUtil.java 2007-05-17 20:03:05 UTC (rev 101)
@@ -8,7 +8,7 @@
public class TestUtil {
- public static boolean runUnitTest = true;
+ public static boolean runUnitTest = false;
private TestUtil() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-17 20:58:39
|
Revision: 103
http://p-unit.svn.sourceforge.net/p-unit/?rev=103&view=rev
Author: zhanghuangzhu
Date: 2007-05-17 13:58:40 -0700 (Thu, 17 May 2007)
Log Message:
-----------
Andrew Zhang: refactored PUnitEvent system.
Modified Paths:
--------------
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
trunk/punit.test/src/tests/util/TestUtil.java
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -16,17 +16,17 @@
public void onClassEnd(Class clazz);
- public void onMethodStart(Method method);
+ public void onMethodStart(Method method, Object testInstance, Object[] params);
- public void onMethodEnd(Method method, Throwable t);
+ public void onMethodEnd(Method method, Object testInstance, Object[] params, Throwable t);
- public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params);
+ public void onWatchersStart(Watcher[] watchers);
- public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params);
+ public void onWatcherStart(Watcher watcher);
- public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params);
+ public void onWatcherEnd(Watcher watcher);
- public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params);
+ public void onWatchersEnd(Watcher[] watchers);
public boolean supportParentRunner();
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -55,11 +55,11 @@
}
- public void onMethodStart(Method method) {
- log(LoggerUtil.simpleMethodName(method), Level.INFO);
+ public void onMethodStart(Method method, Object instance, Object[] params) {
+ log(LoggerUtil.simpleMethodName(method, params), Level.INFO);
}
- public void onMethodEnd(Method method, Throwable t) {
+ public void onMethodEnd(Method method, Object instance, Object[] params, Throwable t) {
_summary.countMethod();
logln(Level.INFO);
if (t != null) {
@@ -68,18 +68,18 @@
}
}
- public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersStart(Watcher[] watchers) {
_watchersStart = true;
}
- public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ public void onWatcherStart(Watcher watcher) {
}
- public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersEnd(Watcher[] watchers) {
log("]", Level.FINE); //$NON-NLS-1$
}
- public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ public void onWatcherEnd(Watcher watcher) {
String watchValue = watcher.stringValue();
if (_watchersStart) {
log(" - [" + watchValue, Level.FINE); //$NON-NLS-1$
Modified: trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit/src/org/punit/runner/method/AbstractTestMethodRunner.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -43,7 +43,7 @@
public void run(Object testInstance, Method method, Object[] params) {
Throwable throwable = null;
try {
- onMethodStart(method);
+ onMethodStart(method, testInstance, params);
init(testInstance, method, params);
setUpBeforeWatchers(params);
startWatchers(testInstance, method, params);
@@ -67,7 +67,7 @@
throwable = t;
}
}
- onMethodEnd(method, throwable);
+ onMethodEnd(method, testInstance, params, throwable);
}
}
@@ -75,18 +75,18 @@
return _runner.properties().isParent;
}
- private void onMethodStart(final Method method) {
+ private void onMethodStart(final Method method, final Object testInstance, final Object[] params) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onMethodStart(method);
+ ((PUnitEventListener) obj).onMethodStart(method, testInstance, params);
}
});
}
- private void onMethodEnd(final Method method, final Throwable t) {
+ private void onMethodEnd(final Method method, final Object testInstance, final Object[] params, final Throwable t) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onMethodEnd(method, t);
+ ((PUnitEventListener) obj).onMethodEnd(method, testInstance, params, t);
}
});
}
@@ -179,7 +179,7 @@
private void onWatchersStart(final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatchersStart(_watchers, testInstance, method, params);
+ ((PUnitEventListener) obj).onWatchersStart(_watchers);
}
});
}
@@ -187,7 +187,7 @@
private void onWatcherStart(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatcherStart(watcher, testInstance, method, params);
+ ((PUnitEventListener) obj).onWatcherStart(watcher);
}
});
}
@@ -203,7 +203,7 @@
private void onWatcherEnd(final Watcher watcher, final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatcherEnd(watcher, testInstance, method, params);
+ ((PUnitEventListener) obj).onWatcherEnd(watcher);
}
});
}
@@ -211,7 +211,7 @@
private void onWatchersEnd(final Object testInstance, final Method method, final Object[] params) {
TraverserUtil.traverse(runnerEventListeners().iterator(), new Traverser() {
public void traverse(Object obj) {
- ((PUnitEventListener) obj).onWatchersEnd(_watchers, testInstance, method, params);
+ ((PUnitEventListener) obj).onWatchersEnd(_watchers);
}
});
}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -30,6 +30,14 @@
private Hashtable datasets = new Hashtable(); // <DatasetKey, DefaultCategoryDataset>
+ private Class _currentClass;
+
+ private Method _currentMethod;
+
+ private Object _currentInstance;
+
+ private Object[] _currentParams;
+
public AbstractImageReporter() {
this(ImageReporterConstants.DEFAULT_HEIGHT, ImageReporterConstants.DEFAULT_WIDTH, ImageReporterConstants.DEFAULT_FORMAT);
}
@@ -42,15 +50,15 @@
protected abstract DatasetKey getKey(Watcher watcher, Object testInstance, Method method);
- public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
- DatasetKey key = getKey(watcher, testInstance, method);
+ public void onWatcherEnd(Watcher watcher) {
+ DatasetKey key = getKey(watcher, _currentInstance, _currentMethod);
DefaultCategoryDataset dataset = getDatasetOrNew(key);
if(isParentRunner()) {
return;
}
double value = watcher.value();
- String yname = testInstance.getClass().getSimpleName();
- String xname = LoggerUtil.simpleMethodName(method, params);
+ String yname = _currentInstance.getClass().getSimpleName();
+ String xname = LoggerUtil.simpleMethodName(_currentMethod, _currentParams);
dataset.addValue(value, yname, xname); // value, y, x
}
@@ -190,30 +198,36 @@
}
public void onClassStart(Class clazz) {
- // nothing needs to do
+ _currentClass = clazz;
}
- public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ public void onWatcherStart(Watcher watcher) {
// nothing needs to do
}
- public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersStart(Watcher[] watchers) {
// nothing needs to do
}
- public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersEnd(Watcher[] watchers) {
// nothing needs to do
}
public void onClassEnd(Class clazz) {
- // nothing needs to do
+ _currentClass = null;
}
- public void onMethodStart(Method method) {
+ public void onMethodStart(Method method, Object testInstance, Object[] params) {
+ _currentMethod = method;
+ _currentInstance = testInstance;
+ _currentParams = params;
}
- public void onMethodEnd(Method method, Throwable t) {
- // nothing needs to do
+ public void onMethodEnd(Method method, Object testInstance, Object[] params, Throwable t) {
+ _currentMethod = null;
+ _currentInstance = null;
+ _currentParams = null;
}
+
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -37,27 +37,27 @@
onClassStart = true;
}
- public void onMethodEnd(Method method, Throwable t) {
+ public void onMethodEnd(Method method, Object testInstance, Object[] params, Throwable t) {
onMethodEnd = true;
}
- public void onMethodStart(Method method) {
+ public void onMethodStart(Method method, Object testInstance, Object[] params) {
onMethodStart = true;
}
- public void onWatcherEnd(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ public void onWatcherEnd(Watcher watcher) {
onWatcherEnd = true;
}
- public void onWatcherStart(Watcher watcher, Object testInstance, Method method, Object[] params) {
+ public void onWatcherStart(Watcher watcher) {
onWatcherStart = true;
}
- public void onWatchersEnd(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersEnd(Watcher[] watchers) {
onWatchersEnd = true;
}
- public void onWatchersStart(Watcher[] watchers, Object testInstance, Method method, Object[] params) {
+ public void onWatchersStart(Watcher[] watchers) {
onWatchersStart = true;
}
Modified: trunk/punit.test/src/tests/util/TestUtil.java
===================================================================
--- trunk/punit.test/src/tests/util/TestUtil.java 2007-05-17 20:05:59 UTC (rev 102)
+++ trunk/punit.test/src/tests/util/TestUtil.java 2007-05-17 20:58:40 UTC (rev 103)
@@ -8,7 +8,7 @@
public class TestUtil {
- public static boolean runUnitTest = false;
+ public static boolean runUnitTest = true;
private TestUtil() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-18 08:27:20
|
Revision: 104
http://p-unit.svn.sourceforge.net/p-unit/?rev=104&view=rev
Author: zhanghuangzhu
Date: 2007-05-18 01:27:19 -0700 (Fri, 18 May 2007)
Log Message:
-----------
Andrew Zhang: add onSuiteStart/onSuiteEnd events.
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/punit.properties
trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
Added Paths:
-----------
trunk/punit/src/org/punit/builder/TestSuiteLabel.java
trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
trunk/punit.test/src/extension/tests/api/org/punit/reporter/
trunk/punit.test/src/extension/tests/api/org/punit/reporter/chart/
trunk/punit.test/src/extension/tests/api/org/punit/reporter/chart/AbstractChartReporterTest.java
Modified: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -23,10 +23,12 @@
private void buildTestClassFromTestSuite(List testClasses, Class clazz) {
PUnitTestSuite testSuite = (PUnitTestSuite) ReflectionUtil.newInstance(clazz);
+ testClasses.add(new TestSuiteLabelImpl(testSuite, true));
Class[] suite = testSuite.suite();
for(int i = 0; i < suite.length; ++i) {
buildTestClasses(testClasses, suite[i]);
}
+ testClasses.add(new TestSuiteLabelImpl(testSuite, false));
}
private void buildTestClassesFromClass(List testClasses, Class clazz) {
Modified: trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -2,10 +2,10 @@
import java.io.*;
-public interface TestSuiteBuilder extends Serializable{
+public interface TestSuiteBuilder extends Serializable {
/**
- * Builds the test suite. Returns a list of test classes. The real return
- * type should be Class[]. It returns Object[] for java 1.4 compatibility.
+ * Builds the test suite. Returns a list of test classes. TestSuite will be
+ * presented as TestSuiteLabel object.
*
* @param clazz
* @return
Added: trunk/punit/src/org/punit/builder/TestSuiteLabel.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabel.java (rev 0)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabel.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -0,0 +1,8 @@
+package org.punit.builder;
+
+import org.punit.type.*;
+
+public interface TestSuiteLabel {
+ public PUnitTestSuite suite();
+ public boolean isStart();
+}
Added: trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java (rev 0)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -0,0 +1,21 @@
+package org.punit.builder;
+
+import org.punit.type.*;
+
+public class TestSuiteLabelImpl implements TestSuiteLabel {
+ private PUnitTestSuite _suite;
+ private boolean _isStart;
+
+ public TestSuiteLabelImpl(PUnitTestSuite suite, boolean isStart) {
+ _suite = suite;
+ _isStart = isStart;
+ }
+
+ public PUnitTestSuite suite() {
+ return _suite;
+ }
+
+ public boolean isStart() {
+ return _isStart;
+ }
+}
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -4,6 +4,7 @@
import java.lang.reflect.*;
import org.punit.runner.*;
+import org.punit.type.*;
import org.punit.watcher.*;
public interface PUnitEventListener extends Serializable {
@@ -12,6 +13,10 @@
public void onRunnerEnd(Class clazz, Runner runner);
+ public void onSuiteStart(PUnitTestSuite suite);
+
+ public void onSuiteEnd(PUnitTestSuite suite);
+
public void onClassStart(Class clazz);
public void onClassEnd(Class clazz);
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -8,6 +8,7 @@
import org.punit.events.*;
import org.punit.message.*;
import org.punit.runner.*;
+import org.punit.type.*;
import org.punit.util.*;
import org.punit.watcher.*;
@@ -47,6 +48,18 @@
_summary.log(this);
}
+ public void onSuiteStart(PUnitTestSuite suite) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(Messages.getString("logger.06")); //$NON-NLS-1$
+ sb.append(suite.getClass().getName());
+ sb.append(LoggerUtil.LINE_SEPERATOR);
+ log(sb.toString(), Level.INFO);
+ }
+
+ public void onSuiteEnd(PUnitTestSuite suite) {
+
+ }
+
public void onClassStart(Class clazz) {
log(clazz.getName() + LoggerUtil.LINE_SEPERATOR, Level.INFO);
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -13,19 +13,21 @@
import org.punit.util.*;
public abstract class PUnitAbstractRunner implements Runner {
-
+
private TestSuiteBuilder _testSuiteBuiler;
private TestMethodBuilder _testMethodBuilder;
private TestMethodRunner _testMethodRunner;
- private final List _eventListeners = new ArrayList(); // List <PUnitEventListener>
-
+ private final List _eventListeners = new ArrayList(); // List
+
+ // <PUnitEventListener>
+
private ConsoleLoggerListener _consoleLogger = new ConsoleLoggerListener();
-
+
private RunnerProperties _properties = new RunnerProperties();
-
+
public PUnitAbstractRunner(TestSuiteBuilder testSuiteBuiler,
TestMethodBuilder testMethodBuilder,
TestMethodRunner testMethodRunner) {
@@ -40,11 +42,20 @@
onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
for (int i = 0; i < testClasses.length; ++i) {
- runTestClass((Class) testClasses[i]);
+ Object testClass = testClasses[i];
+ if (isTestSuiteLabel(testClass)) {
+ onSuite(((TestSuiteLabel) testClass));
+ } else {
+ runTestClass((Class) testClass);
+ }
}
onRunnerEnd(clazz);
}
-
+
+ private boolean isTestSuiteLabel(Object testClass) {
+ return testClass instanceof TestSuiteLabel;
+ }
+
public void run(Class clazz, RunnerProperties properties) {
_properties = properties;
run(clazz);
@@ -68,7 +79,7 @@
}
deleteRunnerConfig(vm);
deleteRunnerProperties(vm);
- }
+ }
filterNonParentEventListeners();
run(clazz);
}
@@ -86,7 +97,7 @@
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
PUnitEventListener listener = ((PUnitEventListener) obj);
- if(listener.supportParentRunner()) {
+ if (listener.supportParentRunner()) {
newEventListener.add(listener);
}
}
@@ -94,7 +105,7 @@
_eventListeners.clear();
_eventListeners.addAll(newEventListener);
}
-
+
private void deleteRunnerProperties(VM vm) {
IOUtil.deleteFile(runnerPropertiesFileName(vm));
}
@@ -111,30 +122,30 @@
}
private void storeRunnerConfig(VM vm) {
- IOUtil.serialize(this, runnerConfigFileName(vm));
+ IOUtil.serialize(this, runnerConfigFileName(vm));
}
private String runnerConfigFileName(VM vm) {
- return RunnerConstants.RESULT_FOLDER + File.separator
- + vm.punitName() + ".cfg"; //$NON-NLS-1$
+ return RunnerConstants.RESULT_FOLDER + File.separator + vm.punitName()
+ + ".cfg"; //$NON-NLS-1$
}
private String runnerPropertiesFileName(VM vm) {
- return RunnerConstants.RESULT_FOLDER + File.separator
- + vm.punitName() + ".props"; //$NON-NLS-1$
+ return RunnerConstants.RESULT_FOLDER + File.separator + vm.punitName()
+ + ".props"; //$NON-NLS-1$
}
public RunnerProperties properties() {
return _properties;
}
-
+
private String generateVMCommand(Class clazz, VM vm) {
final StringBuffer sb = new StringBuffer();
sb.append(vm.path());
sb.append(" "); //$NON-NLS-1$
sb.append(this.getClass().getName());
sb.append(" "); //$NON-NLS-1$
- sb.append(clazz.getName());
+ sb.append(clazz.getName());
sb.append(" "); //$NON-NLS-1$
sb.append(runnerConfigFileName(vm));
sb.append(" "); //$NON-NLS-1$
@@ -151,11 +162,11 @@
}
});
}
-
+
private void initResultFolder() {
new File(RunnerConstants.RESULT_FOLDER).mkdir();
}
-
+
private void onRunnerEnd(final Class clazz) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
@@ -178,6 +189,20 @@
onClassEnd(clazz);
}
+ private void onSuite(final TestSuiteLabel suiteLabel) {
+ TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ PUnitEventListener listener = ((PUnitEventListener) obj);
+ PUnitTestSuite suite = suiteLabel.suite();
+ if (suiteLabel.isStart()) {
+ listener.onSuiteStart(suite);
+ } else {
+ listener.onSuiteEnd(suite);
+ }
+ }
+ });
+ }
+
private void onClassStart(final Class clazz) {
TraverserUtil.traverse(_eventListeners.iterator(), new Traverser() {
public void traverse(Object obj) {
@@ -226,19 +251,18 @@
return _testSuiteBuiler;
}
-
private void registerLoggerListeners() {
- addPUnitEventListener(_consoleLogger);
+ addPUnitEventListener(_consoleLogger);
}
public List eventListeners() {
return _eventListeners;
}
-
+
public void addPUnitEventListener(PUnitEventListener listener) {
_eventListeners.add(listener);
}
-
+
public void removePUnitEventListener(PUnitEventListener listener) {
_eventListeners.remove(listener);
}
@@ -251,9 +275,8 @@
return _consoleLogger;
}
-
public void addTestInterfaces(Class[] interfaces) {
_testMethodBuilder.addTestInterfaces(interfaces);
}
-
+
}
Modified: trunk/punit/src/punit.properties
===================================================================
--- trunk/punit/src/punit.properties 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit/src/punit.properties 2007-05-18 08:27:19 UTC (rev 104)
@@ -4,6 +4,7 @@
logger.03=failures:
logger.04=GREEN
logger.05=RED
+logger.06=TestSuite:
runner.01=solo
runner.02=solo.param
runner.03=concurrent
Modified: trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit.extension/src/org/punit/reporter/chart/image/AbstractImageReporter.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -38,6 +38,8 @@
private Object[] _currentParams;
+ private LinkedList _currentSuiteStack = new LinkedList();
+
public AbstractImageReporter() {
this(ImageReporterConstants.DEFAULT_HEIGHT, ImageReporterConstants.DEFAULT_WIDTH, ImageReporterConstants.DEFAULT_FORMAT);
}
@@ -200,7 +202,23 @@
public void onClassStart(Class clazz) {
_currentClass = clazz;
}
+
+ public void onClassEnd(Class clazz) {
+ _currentClass = null;
+ }
+ public void onSuiteStart(PUnitTestSuite suite) {
+ _currentSuiteStack.add(suite);
+ }
+
+ public void onSuiteEnd(PUnitTestSuite suite) {
+ _currentSuiteStack.removeLast();
+ }
+
+ public PUnitTestSuite currentTestSuite() {
+ return (PUnitTestSuite) _currentSuiteStack.getLast();
+ }
+
public void onWatcherStart(Watcher watcher) {
// nothing needs to do
}
@@ -213,9 +231,6 @@
// nothing needs to do
}
- public void onClassEnd(Class clazz) {
- _currentClass = null;
- }
public void onMethodStart(Method method, Object testInstance, Object[] params) {
_currentMethod = method;
Added: trunk/punit.test/src/extension/tests/api/org/punit/reporter/chart/AbstractChartReporterTest.java
===================================================================
--- trunk/punit.test/src/extension/tests/api/org/punit/reporter/chart/AbstractChartReporterTest.java (rev 0)
+++ trunk/punit.test/src/extension/tests/api/org/punit/reporter/chart/AbstractChartReporterTest.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -0,0 +1,41 @@
+package extension.tests.api.org.punit.reporter.chart;
+
+import java.lang.reflect.*;
+import java.util.*;
+
+import org.punit.reporter.chart.image.*;
+import org.punit.type.*;
+import org.punit.watcher.*;
+
+import tests.api.org.punit.testclasses.*;
+import tests.util.*;
+
+import junit.framework.*;
+
+public class AbstractChartReporterTest extends TestCase {
+ private MockChartReporter _reporter = new MockChartReporter();
+
+ public void testCurrentSuite() {
+ PUnitTestSuite suite1 = new TestSuite1();
+ PUnitTestSuite suite2 = new TestSuite2();
+ _reporter.onSuiteStart(suite1);
+ _reporter.onSuiteStart(suite2);
+ assertSame(suite2, _reporter.currentTestSuite());
+ _reporter.onSuiteEnd(suite2);
+ assertSame(suite1, _reporter.currentTestSuite());
+ _reporter.onSuiteEnd(suite1);
+ AssertUtil.assertException(NoSuchElementException.class, new CodeRunner() {
+ public void run() throws Throwable {
+ _reporter.currentTestSuite();
+ }
+ });
+ }
+
+ static class MockChartReporter extends AbstractImageReporter {
+ protected DatasetKey getKey(Watcher watcher, Object testInstance,
+ Method method) {
+ throw new UnsupportedOperationException();
+ }
+
+ }
+}
Modified: trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -7,6 +7,7 @@
import tests.api.org.punit.runner.*;
import tests.api.org.punit.util.*;
import tests.api.org.punit.watcher.*;
+import extension.tests.api.org.punit.reporter.chart.*;
public class AllTests {
@@ -23,6 +24,7 @@
public static Class[] testCases() {
return new Class[] {
+ AbstractChartReporterTest.class,
ConcurrentExceptionTest.class,
LoggerUtilTest.class,
MemoryWatcherTest.class,
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -21,14 +21,46 @@
public void testBuildTestClasses2() {
Object[] classes = _testSuiteBuidler.buildTestClasses(TestSuite1.class);
- AssertUtil.assertArray(classes, new Class[] { TestClass1.class,
- TestClass2.class, TestClass3.class });
+ Class[] expectedClasses = new Class[] { TestClass1.class,
+ TestClass2.class, TestClass3.class };
+
+ assertEquals(expectedClasses.length + 2, classes.length); // suite labels
+
+ TestSuiteLabel label = (TestSuiteLabel) classes[0];
+ assertSame(TestSuite1.class, label.suite().getClass());
+ assertTrue(label.isStart());
+
+ label = (TestSuiteLabel) classes[classes.length - 1];
+ assertSame(TestSuite1.class, label.suite().getClass());
+ assertFalse(label.isStart());
+
+ AssertUtil.assertArrayContains(classes, expectedClasses);
}
public void testBuildTestClasses3() {
Object[] classes = _testSuiteBuidler.buildTestClasses(TestSuite2.class);
- AssertUtil.assertArray(classes, new Class[] { TestClass4.class,
- TestClass1.class, TestClass2.class, TestClass3.class, TestClass5.class });
+ Class[] expectedClasses = new Class[] { TestClass4.class,
+ TestClass1.class, TestClass2.class, TestClass3.class, TestClass5.class };
+
+ assertEquals(expectedClasses.length + 4, classes.length); // suite labels
+
+ TestSuiteLabel label = (TestSuiteLabel) classes[0];
+ assertSame(TestSuite2.class, label.suite().getClass());
+ assertTrue(label.isStart());
+
+ label = (TestSuiteLabel) classes[classes.length - 1];
+ assertSame(TestSuite2.class, label.suite().getClass());
+ assertFalse(label.isStart());
+
+ label = (TestSuiteLabel) classes[2];
+ assertSame(TestSuite1.class, label.suite().getClass());
+ assertTrue(label.isStart());
+
+ label = (TestSuiteLabel) classes[6];
+ assertSame(TestSuite1.class, label.suite().getClass());
+ assertFalse(label.isStart());
+
+ AssertUtil.assertArrayContains(classes, expectedClasses);
}
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit.test/src/tests/api/org/punit/runner/MockPUnitEventListener.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -6,6 +6,7 @@
import org.punit.events.*;
import org.punit.runner.*;
+import org.punit.type.*;
import org.punit.watcher.*;
public class MockPUnitEventListener implements PUnitEventListener {
@@ -20,6 +21,8 @@
public boolean onWatcherStart;
public boolean onWatchersEnd;
public boolean onWatchersStart;
+ public boolean onSuiteEnd;
+ public boolean onSuiteStart;
public void onRunnerEnd(Class clazz, Runner runner) {
onRunnerEnd = true;
@@ -61,6 +64,14 @@
onWatchersStart = true;
}
+ public void onSuiteEnd(PUnitTestSuite suite) {
+ onSuiteEnd = true;
+ }
+
+ public void onSuiteStart(PUnitTestSuite suite) {
+ onSuiteStart = true;
+ }
+
public void assertAllEventsInvoked() {
Assert.assertTrue(onRunnerEnd);
Assert.assertTrue(onRunnerStart);
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-17 20:58:40 UTC (rev 103)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-18 08:27:19 UTC (rev 104)
@@ -2,6 +2,8 @@
import java.util.*;
+import junit.framework.*;
+
import org.punit.runner.*;
import tests.api.org.punit.testclasses.*;
@@ -59,6 +61,8 @@
PUnitTestClass.assertPUnitTestClassRun();
_eventListener.assertAllEventsInvoked();
+ Assert.assertTrue(_eventListener.onSuiteEnd);
+ Assert.assertTrue(_eventListener.onSuiteStart);
}
public void testSerializable() throws Exception {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-18 21:35:21
|
Revision: 121
http://p-unit.svn.sourceforge.net/p-unit/?rev=121&view=rev
Author: zhanghuangzhu
Date: 2007-05-18 14:35:19 -0700 (Fri, 18 May 2007)
Log Message:
-----------
Andrew Zhang: Added javadoc and modified copyright.
Modified Paths:
--------------
trunk/punit/Copyright.txt
trunk/punit/src/org/punit/PUnit.java
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestMethodBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteLabel.java
trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
trunk/punit/src/org/punit/events/PUnitEventListener.java
trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
trunk/punit/src/org/punit/exception/ConcurrentException.java
trunk/punit/src/org/punit/exception/PUnitException.java
trunk/punit/src/org/punit/exception/PUnitIOException.java
trunk/punit/src/org/punit/exception/ReflectionException.java
trunk/punit.samples/Copyright.txt
trunk/punit.test/Copyright.txt
trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
Modified: trunk/punit/Copyright.txt
===================================================================
--- trunk/punit/Copyright.txt 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/Copyright.txt 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,5 +1 @@
-Copyright (C) 2007 reserved
-
-Author: Andrew Zhang
-
-Mail: zha...@gm...
\ No newline at end of file
+(C) Copyright 2007, by Andrew Zhang
Modified: trunk/punit/src/org/punit/PUnit.java
===================================================================
--- trunk/punit/src/org/punit/PUnit.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/PUnit.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,10 +1,11 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit;
public class PUnit {
- private PUnit() {
-
- }
-
+ /**
+ * @return returns the version of punit.
+ */
public static String version() {
return "0.10"; //$NON-NLS-1$
}
Modified: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import java.lang.reflect.*;
@@ -4,13 +6,27 @@
import java.util.*;
import org.punit.type.*;
-import org.punit.util.*;
+/**
+ * This class is the basic implementation for <code>TestMethodBuilder</code>
+ * interface.
+ *
+ */
public abstract class PUnitAbstractTestMethodBuilder implements
TestMethodBuilder {
- private HashSet _testMethodNames = new HashSet();
+ protected final HashSet _testMethodNames = new HashSet();
+ /**
+ * Judges whether this method is a test method.
+ * @param method
+ * @return
+ */
+ protected abstract boolean isTestMethod(Method method);
+
+ /**
+ * @see TestMethodBuilder#buildTestMethods(Class)
+ */
public Object[] buildTestMethods(Class testClass) {
Method[] methods = testClass.getDeclaredMethods();
Collection testMethods;
@@ -28,31 +44,6 @@
return testMethods.toArray();
}
- protected boolean isTestMethod(Method method) {
- return isModifierValid(method) && isNameValid(method)
- && isParamValid(method);
- }
-
- protected boolean isModifierValid(Method method) {
- return ReflectionUtil.isPublic(method)
- && !ReflectionUtil.isStatic(method);
- }
-
- protected boolean isNameValid(Method method) {
- String name = method.getName();
- return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
- }
-
- protected boolean isParamValid(Method method) {
- Class clazz = method.getDeclaringClass();
- Class[] params = method.getParameterTypes();
- if(TypeUtil.isPUnitParameterizableTest((clazz))) {
- return params.length == 1 && Parameter.class.isAssignableFrom(params[0]);
- } else {
- return params.length == 0;
- }
- }
-
private boolean isAlphabetical(Class testClass) {
return Alphabetical.class.isAssignableFrom(testClass);
}
@@ -65,6 +56,9 @@
}
}
+ /**
+ * @see TestMethodBuilder#addTestInterfaces(Class[])
+ */
public void addTestInterfaces(Class[] classes) {
for (int i = 0; i < classes.length; ++i) {
addTestInterface(classes[i]);
Modified: trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,6 +1,78 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
+import java.lang.reflect.*;
+import org.punit.type.*;
+import org.punit.util.*;
+
+/**
+ * The default test method builder of punit.
+ *
+ */
public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
+ private static final long serialVersionUID = -6490270178427969475L;
+
+ /**
+ * Judges whether this method is a test method.
+ *
+ * @return returns true if the test modifier, name, and parameter conform to
+ * the convention of a test method.
+ */
+ protected boolean isTestMethod(Method method) {
+ return isModifierValid(method) && isNameValid(method)
+ && isParamValid(method);
+ }
+
+ /**
+ * Judeges whether the modifier of is method conforms to the convention of a
+ * test method.
+ *
+ * @param method
+ * to be judged
+ * @return returns true if this method is public and non static.
+ */
+ protected boolean isModifierValid(Method method) {
+ return ReflectionUtil.isPublic(method)
+ && !ReflectionUtil.isStatic(method);
+ }
+
+ /**
+ * Judeges whether the name of is method conforms to the convention of a
+ * test method.
+ *
+ * @param method
+ * to be judged
+ * @return returns true if the name of this method starts with "test", or
+ * the name is in the list of test interfaces which are added by
+ * <code>TestMethodBuilder.addTestInterfaces</code>
+ */
+ protected boolean isNameValid(Method method) {
+ String name = method.getName();
+ return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
+ }
+
+ /**
+ * Judges whether the paramaters of this method conforms to the convention
+ * of a test method.
+ *
+ * @param method
+ * @return returns true if the parameter length is zero and the test class
+ * is not marked as <code>Parameterizable</code>, or the
+ * parameter length is 1, and the parameter is assignable from
+ * <code>Parameter</code>.
+ */
+ protected boolean isParamValid(Method method) {
+ Class clazz = method.getDeclaringClass();
+ Class[] params = method.getParameterTypes();
+ if (TypeUtil.isPUnitParameterizableTest((clazz))) {
+ return params.length == 1
+ && Parameter.class.isAssignableFrom(params[0]);
+ } else {
+ return params.length == 0;
+ }
+ }
+
}
Modified: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import java.util.*;
@@ -7,6 +9,11 @@
public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
+ private static final long serialVersionUID = 633363267326297920L;
+
+ /**
+ * @see TestSuiteBuilder#buildTestClasses(Class)
+ */
public Object[] buildTestClasses(Class clazz) {
List testClasses = new ArrayList();
buildTestClasses(testClasses, clazz);
Modified: trunk/punit/src/org/punit/builder/TestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import java.io.*;
@@ -2,3 +4,6 @@
-
+/**
+ * Interface for test method builder. The method builder builds a list of
+ * methods, which will be executed by the method runner.
+ */
public interface TestMethodBuilder extends Serializable {
@@ -9,10 +14,19 @@
* The real return type should be Method[]. It returns Object[] for java 1.4
* compatibility.
*
- * @param clazz
- * @return
+ * @param clazz -
+ * the test class to be built
+ * @return an array of <code>java.lang.reflect.Method</code>.
*/
public Object[] buildTestMethods(Class testClass);
-
+
+ /**
+ * Adds test classes into the builder. TestMethodBuilder may use it to
+ * judege whether a method is a test method.
+ *
+ * @param interfaces -
+ * an array of test classes to be added.
+ * @see PUnitTestMethodBuilder#isNameValid(java.lang.reflect.Method);
+ */
public void addTestInterfaces(Class[] interfaces);
}
Modified: trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import java.io.*;
@@ -2,2 +4,6 @@
+/**
+ * Interface for test suite builder.
+ * @see TestSuiteLabel
+ */
public interface TestSuiteBuilder extends Serializable {
Modified: trunk/punit/src/org/punit/builder/TestSuiteLabel.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabel.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabel.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import org.punit.type.*;
@@ -2,4 +4,17 @@
+/**
+ * Represents a test suite label. TestSuiteBuilder inserts this label in the
+ * result to indicate the start and the end of a test suite.
+ * @see TestSuiteBuilder#buildTestClasses(Class)
+ */
public interface TestSuiteLabel {
+
+ /**
+ * @return the test suite it represents
+ */
public PUnitTestSuite suite();
+
+ /**
+ * @return returns true if it represents the start of a test suite.
+ */
public boolean isStart();
Modified: trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.builder;
import org.punit.type.*;
@@ -2,2 +4,7 @@
+
+/**
+ * Default implementation for TestSuiteLabel.
+ * @see TestSuiteLabel
+ */
public class TestSuiteLabelImpl implements TestSuiteLabel {
Modified: trunk/punit/src/org/punit/events/PUnitEventListener.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/events/PUnitEventListener.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.events;
import java.io.*;
@@ -7,32 +9,98 @@
import org.punit.type.*;
import org.punit.watcher.*;
+/**
+ * Event system for punit. The event listener can be installed by
+ * {@link PUnitEventRegsitry#addPUnitEventListener(PUnitEventListener)}.
+ *
+ * All punit runners implement {@link PUnitEventRegsitry}.
+ *
+ */
public interface PUnitEventListener extends Serializable {
+ /**
+ * It is triggered at the beginning of running the class.
+ *
+ * @param clazz
+ * the class to be run
+ * @param runner
+ * the runner who runs this class
+ */
public void onRunnerStart(Class clazz, Runner runner);
+ /**
+ * It is triggered at the end of running the class.
+ *
+ * @param clazz
+ * the class to be run
+ * @param runner
+ * the runner who runs this class
+ */
public void onRunnerEnd(Class clazz, Runner runner);
+ /**
+ * It is triggered when the test suite is to be executed.
+ *
+ */
public void onSuiteStart(PUnitTestSuite suite);
-
+
+ /**
+ * It is triggered after executing the test suite.
+ */
public void onSuiteEnd(PUnitTestSuite suite);
-
+
+ /**
+ * It is triggered when the test class is to be executed.
+ */
public void onClassStart(Class clazz);
+ /**
+ * It is triggered after executing the test class.
+ */
public void onClassEnd(Class clazz);
- public void onMethodStart(Method method, Object testInstance, Object[] params);
+ /**
+ * It is triggered when the method to be executed.
+ */
+ public void onMethodStart(Method method, Object testInstance,
+ Object[] params);
- public void onMethodEnd(Method method, Object testInstance, Object[] params, Throwable t);
-
+ /**
+ * It is triggered after executing the method.
+ */
+ public void onMethodEnd(Method method, Object testInstance,
+ Object[] params, Throwable t);
+
+ /**
+ * It is triggered before all watchers start.
+ */
public void onWatchersStart(Watcher[] watchers);
+ /**
+ * It is triggered after all watchers stop.
+ */
+ public void onWatchersEnd(Watcher[] watchers);
+
+ /**
+ * It is triggered before this watcher starts.
+ */
public void onWatcherStart(Watcher watcher);
+ /**
+ * It is triggered after this watcher stops.
+ */
public void onWatcherEnd(Watcher watcher);
- public void onWatchersEnd(Watcher[] watchers);
+ /**
+ * PUnit may executes test suites against different virtual machines. The
+ * runner who forks child virtual machine is called parent runner. Parent
+ * runner only notifies the events to the event listener who support parent
+ * runner. It is useful for logging and reporting system. For example, file
+ * logging does not care about it since the children virtual machine has
+ * given the output.
+ *
+ * @return returns true if this listener supports parent runner.
+ */
+ public boolean supportParentRunner();
- public boolean supportParentRunner();
-
}
Modified: trunk/punit/src/org/punit/events/PUnitEventRegsitry.java
===================================================================
--- trunk/punit/src/org/punit/events/PUnitEventRegsitry.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/events/PUnitEventRegsitry.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.events;
import java.util.*;
@@ -2,8 +4,25 @@
+/**
+ * Interface for punit event registry center. It can accept/remove a event
+ * listener.
+ */
public interface PUnitEventRegsitry {
-
+
+ /**
+ * Adds a new event lisetner.
+ *
+ * @param listener
+ */
public void addPUnitEventListener(PUnitEventListener listener);
+ /**
+ * Removes a event lisetern.
+ *
+ * @param listener
+ */
public void removePUnitEventListener(PUnitEventListener listener);
-
+
+ /**
+ * @return returns the registered event listeners.
+ */
public List eventListeners();
Modified: trunk/punit/src/org/punit/exception/ConcurrentException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.exception;
import java.io.*;
@@ -5,8 +7,15 @@
import org.punit.util.*;
+/**
+ * Exception for concurrent runner. There might be not only one exception thrown
+ * by different thread when executing a method concurrently. This exception can
+ * record multiple exceptions.
+ */
public class ConcurrentException extends PUnitException {
-
+
+ private static final long serialVersionUID = 6816596410667344664L;
+
private Vector _throwables = new Vector();
public void add(Throwable t) {
@@ -18,14 +27,14 @@
}
public void printStackTrace() {
- System.err.println(ConcurrentException.class.getName()+":"); //$NON-NLS-1$
+ System.err.println(ConcurrentException.class.getName() + ":"); //$NON-NLS-1$
TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
public void traverse(Object obj) {
((Throwable) obj).printStackTrace();
- }
+ }
});
}
-
+
public void printStackTrace(final PrintStream ps) {
ps.println(ConcurrentException.class.getName() + ":"); //$NON-NLS-1$
TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
@@ -34,7 +43,7 @@
}
});
}
-
+
public void printStackTrace(final PrintWriter pw) {
pw.println(ConcurrentException.class.getName() + ":"); //$NON-NLS-1$
TraverserUtil.traverse(_throwables.iterator(), new Traverser() {
@@ -43,7 +52,7 @@
}
});
}
-
+
public String getMessage() {
GetMessageVisitor visitor = new GetMessageVisitor();
TraverserUtil.traverse(_throwables.iterator(), visitor);
@@ -52,6 +61,7 @@
static class GetMessageVisitor implements Traverser {
final StringBuffer sb = new StringBuffer();
+
public void traverse(Object obj) {
sb.append(((Throwable) obj));
sb.append(ReporterUtil.LINE_SEPERATOR);
Modified: trunk/punit/src/org/punit/exception/PUnitException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitException.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/exception/PUnitException.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,6 +1,10 @@
package org.punit.exception;
-public class PUnitException extends RuntimeException {
+/**
+ * The root exception of all punit exception.
+ */
+
+public abstract class PUnitException extends RuntimeException {
public PUnitException() {
Modified: trunk/punit/src/org/punit/exception/PUnitIOException.java
===================================================================
--- trunk/punit/src/org/punit/exception/PUnitIOException.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/exception/PUnitIOException.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,7 +1,14 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.exception;
+/**
+ * Indicates an IO error.
+ */
public class PUnitIOException extends PUnitException {
-
+
+ private static final long serialVersionUID = 7098221975109413569L;
+
public PUnitIOException(Throwable e) {
super(e);
}
Modified: trunk/punit/src/org/punit/exception/ReflectionException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit/src/org/punit/exception/ReflectionException.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,7 +1,14 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.exception;
+/**
+ * Indicates reflection error.
+ */
public class ReflectionException extends PUnitException {
+ private static final long serialVersionUID = -5498831354775690972L;
+
public ReflectionException(Throwable e) {
super(e);
}
Modified: trunk/punit.samples/Copyright.txt
===================================================================
--- trunk/punit.samples/Copyright.txt 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit.samples/Copyright.txt 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,5 +1 @@
-Copyright (C) 2007 reserved
-
-Author: Andrew Zhang
-
-Mail: zha...@gm...
\ No newline at end of file
+(C) Copyright 2007, by Andrew Zhang
\ No newline at end of file
Modified: trunk/punit.test/Copyright.txt
===================================================================
--- trunk/punit.test/Copyright.txt 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit.test/Copyright.txt 2007-05-18 21:35:19 UTC (rev 121)
@@ -1,5 +1 @@
-Copyright (C) 2007 reserved
-
-Author: Andrew Zhang
-
-Mail: zha...@gm...
\ No newline at end of file
+(C) Copyright 2007, by Andrew Zhang
\ No newline at end of file
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-18 17:46:38 UTC (rev 120)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-18 21:35:19 UTC (rev 121)
@@ -21,8 +21,7 @@
}
static class MockTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
-
- protected boolean isParamValid(Method method) {
+ protected boolean isTestMethod(Method method) {
return true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-19 20:39:11
|
Revision: 128
http://p-unit.svn.sourceforge.net/p-unit/?rev=128&view=rev
Author: zhanghuangzhu
Date: 2007-05-19 13:39:12 -0700 (Sat, 19 May 2007)
Log Message:
-----------
Andrew Zhang: some test samples and changed the behaviour of PUnitConcurrentRunner. It runs even if the test does't implement Concurrent interface.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
trunk/punit.samples/.classpath
Added Paths:
-----------
trunk/punit.samples/src/samples/classes/JUnitTestClass.java
trunk/punit.samples/src/samples/classes/NormalTestClass.java
trunk/punit.samples/src/samples/classes/PUnitTestClass.java
trunk/punit.samples/src/samples/classes/ParamTestClass.java
trunk/punit.samples/src/samples/classes/SampleUtil.java
trunk/punit.samples/src/samples/vms/ListVMTest.java
Removed Paths:
-------------
trunk/punit.samples/src/samples/vms/ListSoloTest.java
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -175,9 +175,6 @@
}
private void runTestClass(Class clazz) {
- if (!accept(clazz)) {
- return;
- }
onClassStart(clazz);
Object[] testMethods = buildTestMethod(clazz);
for (int i = 0; i < testMethods.length; ++i) {
@@ -235,8 +232,6 @@
return _testMethodBuilder.buildTestMethods(testClass);
}
- public abstract boolean accept(Class testClass);
-
public TestMethodBuilder testMethodBuilder() {
return _testMethodBuilder;
}
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -7,12 +7,14 @@
public class PUnitConcurrentRunner extends PUnitAbstractRunner {
+ private static final int DEFAULT_CONCURRENT_COUNT = 10;
+
public PUnitConcurrentRunner() {
- super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(), new ConcurrentTestMethodRunner());
+ this(PUnitConcurrentRunner.DEFAULT_CONCURRENT_COUNT);
}
-
- public boolean accept(Class clazz) {
- return Concurrent.class.isAssignableFrom(clazz);
+
+ public PUnitConcurrentRunner(int concurrentCount) {
+ super(new PUnitTestSuiteBuilder(), new PUnitTestMethodBuilder(), new ConcurrentTestMethodRunner(concurrentCount));
}
public String punitName() {
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -17,10 +17,6 @@
}
- public boolean accept(Class clazz) {
- return true;
- }
-
public String punitName() {
return Messages.getString("runner.01"); //$NON-NLS-1$
}
Modified: trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit/src/org/punit/runner/method/ConcurrentTestMethodRunner.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -10,6 +10,12 @@
ConcurrentException _concurrentException = new ConcurrentException();
+ private int _concurrentCount;
+
+ public ConcurrentTestMethodRunner(int concurrentCount) {
+ _concurrentCount = concurrentCount;
+ }
+
protected void runImpl() throws Throwable {
startThreads();
joinThreads();
@@ -40,8 +46,10 @@
protected void setUpBeforeWatchers(Object[] params) throws Throwable {
super.setUpBeforeWatchers(params);
- Concurrent concurrentTestInstance = (Concurrent) _testInstance;
- int threadCount = concurrentTestInstance.concurrentCount();
+ int threadCount = _concurrentCount;
+ if(_testInstance instanceof Concurrent) {
+ threadCount = ((Concurrent)_testInstance).concurrentCount();
+ }
_threads = new TestMethodThread[threadCount];
for (int i = 0; i < _threads.length; ++i) {
_threads[i] = new TestMethodThread(this);
Modified: trunk/punit.samples/.classpath
===================================================================
--- trunk/punit.samples/.classpath 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit.samples/.classpath 2007-05-19 20:39:12 UTC (rev 128)
@@ -4,5 +4,6 @@
<classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER" kind="con"/>
<classpathentry path="/punit" combineaccessrules="false" kind="src"/>
<classpathentry path="/punit.extension" combineaccessrules="false" kind="src"/>
+ <classpathentry path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1" kind="con"/>
<classpathentry path="bin" kind="output"/>
</classpath>
Added: trunk/punit.samples/src/samples/classes/JUnitTestClass.java
===================================================================
--- trunk/punit.samples/src/samples/classes/JUnitTestClass.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/JUnitTestClass.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,35 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package samples.classes;
+
+import org.punit.runner.*;
+
+import junit.framework.*;
+
+public class JUnitTestClass extends TestCase {
+
+ public static void main(String[] args) {
+ new PUnitSoloRunner().run(JUnitTestClass.class);
+ }
+
+ protected void setUp() throws Exception {
+ System.out.println("setUp"); //$NON-NLS-1$
+ }
+
+ protected void tearDown() throws Exception {
+ System.out.println("tearDown"); //$NON-NLS-1$
+ }
+
+ public void testA() {
+ SampleUtil.doSomething();
+ }
+
+ public void testB() {
+ SampleUtil.doSomething();
+ }
+
+ public void testC() {
+ SampleUtil.doSomething();
+ }
+
+}
Added: trunk/punit.samples/src/samples/classes/NormalTestClass.java
===================================================================
--- trunk/punit.samples/src/samples/classes/NormalTestClass.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/NormalTestClass.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,24 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package samples.classes;
+
+import org.punit.runner.*;
+
+public class NormalTestClass {
+
+ public static void main(String[] args) {
+ new PUnitSoloRunner().run(NormalTestClass.class);
+ }
+
+ public void testA() {
+ SampleUtil.doSomething();
+ }
+
+ public void testB() {
+ SampleUtil.doSomething();
+ }
+
+ public void testC() {
+ SampleUtil.doSomething();
+ }
+}
Added: trunk/punit.samples/src/samples/classes/PUnitTestClass.java
===================================================================
--- trunk/punit.samples/src/samples/classes/PUnitTestClass.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/PUnitTestClass.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,23 @@
+package samples.classes;
+
+import org.punit.type.*;
+
+public class PUnitTestClass implements PUnitTest {
+
+ public void setUpBeforeWatchers() throws Exception {
+ System.out.println("This setup will not be caculated into the execution time"); //$NON-NLS-1$
+ }
+
+ public void setUpAfterWatchers() throws Exception {
+ System.out.println("This setup will be caculated into the execution time"); //$NON-NLS-1$
+ }
+
+ public void tearDownBeforeWatchers() throws Exception {
+ System.out.println("This setup will be caculated into the execution time"); //$NON-NLS-1$
+ }
+
+ public void tearDownAfterWatchers() throws Exception {
+ System.out.println("This setup will not be caculated into the execution time"); //$NON-NLS-1$
+ }
+
+}
Added: trunk/punit.samples/src/samples/classes/ParamTestClass.java
===================================================================
--- trunk/punit.samples/src/samples/classes/ParamTestClass.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/ParamTestClass.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,51 @@
+package samples.classes;
+
+import org.punit.runner.*;
+import org.punit.type.*;
+
+public class ParamTestClass implements Parameterizable {
+
+ public static void main(String[] args) {
+ new PUnitSoloRunner().run(ParamTestClass.class);
+ }
+
+ public Parameter[] parameters() {
+ return new Parameter[] { new ParameterImpl(10), new ParameterImpl(20) };
+ }
+
+ public void testA(ParameterImpl param) {
+ System.out.println("testA count = " + param.count());
+ }
+
+ public void testB(ParameterImpl param) {
+ System.out.println("testB count = " + param.count());
+ }
+
+ public void setUpAfterWatchers(Parameter param) throws Exception {
+
+ }
+
+ public void setUpBeforeWatchers(Parameter param) throws Exception {
+
+ }
+
+ public void tearDownAfterWatchers(Parameter param) throws Exception {
+
+ }
+
+ public void tearDownBeforeWatchers(Parameter param) throws Exception {
+
+ }
+
+ static class ParameterImpl implements Parameter {
+ private int _count;
+
+ ParameterImpl(int count) {
+ _count = count;
+ }
+
+ public int count() {
+ return _count;
+ }
+ }
+}
Added: trunk/punit.samples/src/samples/classes/SampleUtil.java
===================================================================
--- trunk/punit.samples/src/samples/classes/SampleUtil.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/SampleUtil.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,26 @@
+package samples.classes;
+
+import java.util.*;
+
+import org.punit.util.*;
+
+public class SampleUtil {
+
+ private static Random _random = new Random();
+
+ public static void consumeMemory(int length) {
+ byte[] data = new byte[length];
+ for(int i = 0, j = 0; i < data.length; ++i) {
+ ++j;
+ }
+ }
+
+ public static void consumeTime(int time) {
+ ThreadUtil.sleepIgnoreInterruption(time);
+ }
+
+ public static void doSomething() {
+ consumeTime(Math.abs(_random.nextInt()) % 500);
+ consumeMemory(Math.abs(_random.nextInt()) % 100000);
+ }
+}
Deleted: trunk/punit.samples/src/samples/vms/ListSoloTest.java
===================================================================
--- trunk/punit.samples/src/samples/vms/ListSoloTest.java 2007-05-19 08:33:46 UTC (rev 127)
+++ trunk/punit.samples/src/samples/vms/ListSoloTest.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -1,16 +0,0 @@
-package samples.vms;
-
-import org.punit.reporter.chart.*;
-import org.punit.reporter.chart.image.*;
-import org.punit.runner.*;
-import org.punit.type.*;
-
-import samples.classes.*;
-
-public class ListSoloTest {
- public static void main(String[] args) {
- PUnitSoloRunner runner = new PUnitSoloRunner();
- runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
- runner.runVMs(ListTestClass.class, new VM[] { VMConfig.DRLVM, VMConfig.SUNVM });
- }
-}
Copied: trunk/punit.samples/src/samples/vms/ListVMTest.java (from rev 118, trunk/punit.samples/src/samples/vms/ListSoloTest.java)
===================================================================
--- trunk/punit.samples/src/samples/vms/ListVMTest.java (rev 0)
+++ trunk/punit.samples/src/samples/vms/ListVMTest.java 2007-05-19 20:39:12 UTC (rev 128)
@@ -0,0 +1,22 @@
+/*(C) Copyright 2007, by Andrew Zhang */
+
+package samples.vms;
+
+import org.punit.reporter.chart.*;
+import org.punit.reporter.chart.image.*;
+import org.punit.runner.*;
+import org.punit.type.*;
+
+import samples.classes.*;
+
+public class ListVMTest {
+ /*
+ * Please config VMConfig before running this sample!
+ */
+ public static void main(String[] args) {
+ PUnitSoloRunner runner = new PUnitSoloRunner();
+ runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
+ runner.runVMs(ListTestClass.class, new VM[] { VMConfig.DRLVM,
+ VMConfig.SUNVM });
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-19 20:53:31
|
Revision: 130
http://p-unit.svn.sourceforge.net/p-unit/?rev=130&view=rev
Author: zhanghuangzhu
Date: 2007-05-19 13:53:33 -0700 (Sat, 19 May 2007)
Log Message:
-----------
Andrew Zhang: some test samples.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
trunk/punit.samples/src/samples/classes/ParamTestClass.java
Added Paths:
-----------
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java
trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java
trunk/punit.samples/src/samples/classes/AllTestSuite.java
trunk/punit.samples/src/samples/classes/RunnerSamples.java
Removed Paths:
-------------
trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
Copied: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java (from rev 101, trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java)
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java (rev 0)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLogger.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -0,0 +1,21 @@
+package org.punit.reporter.stream.console;
+
+import java.io.*;
+
+import org.punit.reporter.stream.*;
+
+public class ConsoleLogger extends StreamLoggerListener {
+
+ private void readObject(java.io.ObjectInputStream in) throws IOException,
+ ClassNotFoundException {
+ _ps = System.err;
+ }
+
+ public ConsoleLogger() {
+ super(System.err);
+ }
+
+ public boolean supportParentRunner() {
+ return false;
+ }
+}
Deleted: trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-19 20:41:17 UTC (rev 129)
+++ trunk/punit/src/org/punit/reporter/stream/console/ConsoleLoggerListener.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -1,21 +0,0 @@
-package org.punit.reporter.stream.console;
-
-import java.io.*;
-
-import org.punit.reporter.stream.*;
-
-public class ConsoleLoggerListener extends StreamLoggerListener {
-
- private void readObject(java.io.ObjectInputStream in) throws IOException,
- ClassNotFoundException {
- _ps = System.err;
- }
-
- public ConsoleLoggerListener() {
- super(System.err);
- }
-
- public boolean supportParentRunner() {
- return false;
- }
-}
Copied: trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java (from rev 119, trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java)
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java (rev 0)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLogger.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -0,0 +1,30 @@
+package org.punit.reporter.stream.file;
+
+import java.io.*;
+
+import org.punit.reporter.stream.*;
+import org.punit.runner.*;
+import org.punit.util.*;
+
+public class FileLogger extends StreamLoggerListener {
+
+ public void onRunnerStart(Class clazz, Runner runner) {
+ String fileName = ReporterUtil.generateFileName(clazz, runner) + ".txt"; //$NON-NLS-1$
+ try {
+ PrintStream ps = new PrintStream(fileName);
+ setOutputStream(ps);
+ } catch (Exception e) {
+ throw new IllegalStateException(e);
+ }
+ super.onRunnerStart(clazz, runner);
+ }
+
+ public void onRunnerEnd(Class clazz, Runner runner) {
+ super.onRunnerEnd(clazz, runner);
+ _ps.close();
+ }
+
+ public boolean supportParentRunner() {
+ return false;
+ }
+}
Deleted: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-19 20:41:17 UTC (rev 129)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -1,30 +0,0 @@
-package org.punit.reporter.stream.file;
-
-import java.io.*;
-
-import org.punit.reporter.stream.*;
-import org.punit.runner.*;
-import org.punit.util.*;
-
-public class FileLoggerListener extends StreamLoggerListener {
-
- public void onRunnerStart(Class clazz, Runner runner) {
- String fileName = ReporterUtil.generateFileName(clazz, runner) + ".txt"; //$NON-NLS-1$
- try {
- PrintStream ps = new PrintStream(fileName);
- setOutputStream(ps);
- } catch (Exception e) {
- throw new IllegalStateException(e);
- }
- super.onRunnerStart(clazz, runner);
- }
-
- public void onRunnerEnd(Class clazz, Runner runner) {
- super.onRunnerEnd(clazz, runner);
- _ps.close();
- }
-
- public boolean supportParentRunner() {
- return false;
- }
-}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-19 20:41:17 UTC (rev 129)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -24,7 +24,7 @@
// <PUnitEventListener>
- private ConsoleLoggerListener _consoleLogger = new ConsoleLoggerListener();
+ private ConsoleLogger _consoleLogger = new ConsoleLogger();
private RunnerProperties _properties = new RunnerProperties();
@@ -264,7 +264,7 @@
removePUnitEventListener(_consoleLogger);
}
- public ConsoleLoggerListener consoleLogger() {
+ public ConsoleLogger consoleLogger() {
return _consoleLogger;
}
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-19 20:41:17 UTC (rev 129)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -1,3 +1,4 @@
+/* (C) Copyright 2007, by Andrew Zhang */
package org.punit.runner;
import org.punit.builder.*;
Added: trunk/punit.samples/src/samples/classes/AllTestSuite.java
===================================================================
--- trunk/punit.samples/src/samples/classes/AllTestSuite.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/AllTestSuite.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -0,0 +1,18 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package samples.classes;
+
+import org.punit.type.*;
+
+public class AllTestSuite implements PUnitTestSuite {
+
+ public Class[] suite() {
+ return new Class[] {
+ JUnitTestClass.class,
+ NormalTestClass.class,
+ ParamTestClass.class,
+ PUnitTestClass.class,
+ };
+ }
+
+}
Modified: trunk/punit.samples/src/samples/classes/ParamTestClass.java
===================================================================
--- trunk/punit.samples/src/samples/classes/ParamTestClass.java 2007-05-19 20:41:17 UTC (rev 129)
+++ trunk/punit.samples/src/samples/classes/ParamTestClass.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -47,5 +47,9 @@
public int count() {
return _count;
}
+
+ public String toString() {
+ return String.valueOf(_count);
+ }
}
}
Added: trunk/punit.samples/src/samples/classes/RunnerSamples.java
===================================================================
--- trunk/punit.samples/src/samples/classes/RunnerSamples.java (rev 0)
+++ trunk/punit.samples/src/samples/classes/RunnerSamples.java 2007-05-19 20:53:33 UTC (rev 130)
@@ -0,0 +1,26 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+package samples.classes;
+
+import org.punit.reporter.chart.*;
+import org.punit.reporter.chart.image.*;
+import org.punit.reporter.chart.pdf.*;
+import org.punit.reporter.stream.file.*;
+import org.punit.runner.*;
+
+public class RunnerSamples {
+ public static void main(String[] args) {
+ /*
+ * Users can use either PUnitSoloRunner or PUnitConcurrentRunner to run
+ * any test classes and test suites. The reporters can be configured by
+ * runner.addPUnitEventListener, including Console(default)/File/Image/PDF.
+ *
+ * The result can be found in ./result/ folder.
+ */
+ Runner runner = new PUnitSoloRunner();
+ runner = new PUnitConcurrentRunner();
+ runner.addPUnitEventListener(new FileLogger());
+ runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
+ runner.addPUnitEventListener(new OverviewReporter(new PDFRender()));
+ runner.run(AllTestSuite.class);
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-23 13:22:51
|
Revision: 143
http://p-unit.svn.sourceforge.net/p-unit/?rev=143&view=rev
Author: zhanghuangzhu
Date: 2007-05-23 06:22:53 -0700 (Wed, 23 May 2007)
Log Message:
-----------
Andrew Zhang: fixed the bug when test name is passed as a main argument.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/util/RunnerUtil.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java
trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-22 22:31:51 UTC (rev 142)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-23 13:22:53 UTC (rev 143)
@@ -58,7 +58,6 @@
}
public void run(Class clazz, RunnerProperties properties) {
- initResultFolder();
_properties = properties;
run(clazz);
}
Modified: trunk/punit/src/org/punit/util/RunnerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/RunnerUtil.java 2007-05-22 22:31:51 UTC (rev 142)
+++ trunk/punit/src/org/punit/util/RunnerUtil.java 2007-05-23 13:22:53 UTC (rev 143)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.util;
import java.io.*;
@@ -15,7 +17,7 @@
throw new IllegalArgumentException(Messages.getString("runner.05")); //$NON-NLS-1$
}
Runner testRunner = runner;
- RunnerProperties properties = null;
+ RunnerProperties properties = runner.properties();
Class testClass = ReflectionUtil.newClass(args[0]);
if(length >= 2) {
testRunner = (Runner) IOUtil.getSerialiableObject(args[1]);
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java 2007-05-22 22:31:51 UTC (rev 142)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitConcurrentRunnerTest.java 2007-05-23 13:22:53 UTC (rev 143)
@@ -18,6 +18,10 @@
_runner = new PUnitConcurrentRunner();
}
+ public void testMain() {
+ PUnitSoloRunner.main(new String[] {TestSuiteClass.class.getName()});
+ }
+
public void testRun() {
_runner.run(TestSuiteClass.class);
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-22 22:31:51 UTC (rev 142)
+++ trunk/punit.test/src/tests/api/org/punit/runner/PUnitSoloRunnerTest.java 2007-05-23 13:22:53 UTC (rev 143)
@@ -19,6 +19,10 @@
_runner.addPUnitEventListener(_eventListener);
}
+ public void testMain() {
+ PUnitSoloRunner.main(new String[] {TestSuiteClass.class.getName()});
+ }
+
public void testRun() {
_runner.run(TestSuiteClass.class);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-23 15:13:57
|
Revision: 144
http://p-unit.svn.sourceforge.net/p-unit/?rev=144&view=rev
Author: zhanghuangzhu
Date: 2007-05-23 08:13:56 -0700 (Wed, 23 May 2007)
Log Message:
-----------
Andrew Zhang: allows inherited test classes.
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
Added Paths:
-----------
trunk/punit.test/src/tests/api/org/punit/testclasses/SubTestClass.java
Modified: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 13:22:53 UTC (rev 143)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 15:13:56 UTC (rev 144)
@@ -28,7 +28,7 @@
* @see TestMethodBuilder#buildTestMethods(Class)
*/
public Object[] buildTestMethods(Class testClass) {
- Method[] methods = testClass.getDeclaredMethods();
+ Method[] methods = testClass.getMethods();
Collection testMethods;
if (isAlphabetical(testClass)) {
testMethods = new TreeSet(new AlphabeticalMethodNameComparator());
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 13:22:53 UTC (rev 143)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 15:13:56 UTC (rev 144)
@@ -17,9 +17,41 @@
_builder.addTestInterfaces(new Class[] { TestInterface1.class });
Object[] methods = _builder.buildTestMethods(TestInterfaceImpl1.class);
String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContent(names, new String[] {"method1"}); //$NON-NLS-1$
+ AssertUtil.assertArrayContains(names, new String[] {"method1"}); //$NON-NLS-1$
}
+ public void testBuildTestMethods1() {
+ Object[] methods = _builder
+ .buildTestMethods(TestClass1.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ "testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testBuildTestMethods_SubClass() {
+ Object[] methods = _builder
+ .buildTestMethods(SubTestClass.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ "testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testBuildTestMethods2() {
+ Object[] methods = _builder
+ .buildTestMethods(TestClass2.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ "testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testBuildTestMethods3() {
+ Object[] methods = _builder
+ .buildTestMethods(TestClass3.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", "testa", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ "testb" }); //$NON-NLS-1$
+ }
+
static class MockTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
protected boolean isTestMethod(Method method) {
return true;
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 13:22:53 UTC (rev 143)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 15:13:56 UTC (rev 144)
@@ -15,21 +15,32 @@
}
public void testBuildTestMethods1() {
- Object[] methods = _testMethodBuidler.buildTestMethods(TestClass1.class);
+ Object[] methods = _testMethodBuidler
+ .buildTestMethods(TestClass1.class);
String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContent(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
- "testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
+ AssertUtil.assertArrayContent(new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ "testa", "testb" }, names); //$NON-NLS-1$ //$NON-NLS-2$
}
+ public void testBuildTestMethods_SubClass() {
+ Object[] methods = _testMethodBuidler
+ .buildTestMethods(SubTestClass.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContent(new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ "testa", "testb" }, names); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
public void testBuildTestMethods2() {
- Object[] methods = _testMethodBuidler.buildTestMethods(TestClass2.class);
+ Object[] methods = _testMethodBuidler
+ .buildTestMethods(TestClass2.class);
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContent(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods3() {
- Object[] methods = _testMethodBuidler.buildTestMethods(TestClass3.class);
+ Object[] methods = _testMethodBuidler
+ .buildTestMethods(TestClass3.class);
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArray(names, new String[] { "test1", "test2", "testa", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"testb" }); //$NON-NLS-1$
Added: trunk/punit.test/src/tests/api/org/punit/testclasses/SubTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/SubTestClass.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/SubTestClass.java 2007-05-23 15:13:56 UTC (rev 144)
@@ -0,0 +1,6 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package tests.api.org.punit.testclasses;
+
+public class SubTestClass extends TestClass1 {
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-23 16:03:27
|
Revision: 145
http://p-unit.svn.sourceforge.net/p-unit/?rev=145&view=rev
Author: zhanghuangzhu
Date: 2007-05-23 09:03:20 -0700 (Wed, 23 May 2007)
Log Message:
-----------
Andrew Zhang: Refactored PUnitAbstractTestMethodBuilder
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/TestMethodBuilder.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
Modified: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 15:13:56 UTC (rev 144)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
@@ -19,29 +19,35 @@
/**
* Judges whether this method is a test method.
+ *
* @param method
* @return
*/
protected abstract boolean isTestMethod(Method method);
-
+
/**
* @see TestMethodBuilder#buildTestMethods(Class)
*/
- public Object[] buildTestMethods(Class testClass) {
- Method[] methods = testClass.getMethods();
- Collection testMethods;
+ public Collection buildTestMethods(Class testClass) {
+ Collection testMethods = null;
if (isAlphabetical(testClass)) {
- testMethods = new TreeSet(new AlphabeticalMethodNameComparator());
+ testMethods = new TreeSet(
+ new AlphabeticalMethodNameComparator());
} else {
testMethods = new ArrayList();
}
- for (int i = 0; i < methods.length; ++i) {
- Method method = methods[i];
- if (isTestMethod(method)) {
- testMethods.add(method);
+ Class clazz = testClass;
+ while (clazz != Object.class) {
+ Method[] methods = clazz.getDeclaredMethods();
+ for (int i = 0; i < methods.length; ++i) {
+ Method method = methods[i];
+ if (isTestMethod(method)) {
+ testMethods.add(method);
+ }
}
+ clazz = clazz.getSuperclass();
}
- return testMethods.toArray();
+ return testMethods;
}
private boolean isAlphabetical(Class testClass) {
Modified: trunk/punit/src/org/punit/builder/TestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-23 15:13:56 UTC (rev 144)
+++ trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
@@ -3,6 +3,7 @@
package org.punit.builder;
import java.io.*;
+import java.util.*;
/**
* Interface for test method builder. The method builder builds a list of
@@ -16,9 +17,9 @@
*
* @param clazz -
* the test class to be built
- * @return an array of <code>java.lang.reflect.Method</code>.
+ * @return a <code>Collection</code> of <code>java.lang.reflect.Method</code>.
*/
- public Object[] buildTestMethods(Class testClass);
+ public Collection buildTestMethods(Class testClass);
/**
* Adds test classes into the builder. TestMethodBuilder may use it to
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-23 15:13:56 UTC (rev 144)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-23 16:03:20 UTC (rev 145)
@@ -177,13 +177,15 @@
});
}
- private void runTestClass(Class clazz) {
+ private void runTestClass(final Class clazz) {
onClassStart(clazz);
- Object[] testMethods = buildTestMethod(clazz);
- for (int i = 0; i < testMethods.length; ++i) {
- Method method = (Method) testMethods[i];
- runTestMethod(clazz, method);
- }
+ Collection testMethods = buildTestMethod(clazz);
+ TraverserUtil.traverse(testMethods.iterator(), new Traverser() {
+ public void traverse(Object obj) {
+ Method method = (Method) obj;
+ runTestMethod(clazz, method);
+ }
+ });
onClassEnd(clazz);
}
@@ -231,7 +233,7 @@
}
}
- private Object[] buildTestMethod(Class testClass) {
+ private Collection buildTestMethod(Class testClass) {
return _testMethodBuilder.buildTestMethods(testClass);
}
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 15:13:56 UTC (rev 144)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 16:03:20 UTC (rev 145)
@@ -15,43 +15,42 @@
public void testAddInterfaces() {
_builder.addTestInterfaces(new Class[] { TestInterface1.class });
- Object[] methods = _builder.buildTestMethods(TestInterfaceImpl1.class);
+ Object[] methods = _builder.buildTestMethods(TestInterfaceImpl1.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContains(names, new String[] {"method1"}); //$NON-NLS-1$
+ AssertUtil.assertArrayContent(names, new String[] { "method1" }); //$NON-NLS-1$
}
public void testBuildTestMethods1() {
- Object[] methods = _builder
- .buildTestMethods(TestClass1.class);
+ Object[] methods = _builder.buildTestMethods(TestClass1.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods_SubClass() {
- Object[] methods = _builder
- .buildTestMethods(SubTestClass.class);
+ Object[] methods = _builder.buildTestMethods(SubTestClass.class).toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods2() {
- Object[] methods = _builder
- .buildTestMethods(TestClass2.class);
+ Object[] methods = _builder.buildTestMethods(TestClass2.class).toArray();
String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
+ AssertUtil.assertArrayContent(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods3() {
- Object[] methods = _builder
- .buildTestMethods(TestClass3.class);
+ Object[] methods = _builder.buildTestMethods(TestClass3.class).toArray();
String[] names = TestUtil.toMethodNameArray(methods);
- AssertUtil.assertArrayContains(names, new String[] { "test1", "test2", "testa", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ AssertUtil.assertArrayContent(names, new String[] {
+ "test1", "test2", "testa", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"testb" }); //$NON-NLS-1$
}
-
+
static class MockTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
protected boolean isTestMethod(Method method) {
return true;
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 15:13:56 UTC (rev 144)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 16:03:20 UTC (rev 145)
@@ -8,39 +8,39 @@
import tests.util.*;
public class PUnitTestMethodBuilderTest extends TestCase {
- private PUnitTestMethodBuilder _testMethodBuidler;
+ private PUnitTestMethodBuilder _builder;
protected void setUp() throws Exception {
- _testMethodBuidler = new PUnitTestMethodBuilder();
+ _builder = new PUnitTestMethodBuilder();
}
public void testBuildTestMethods1() {
- Object[] methods = _testMethodBuidler
- .buildTestMethods(TestClass1.class);
+ Object[] methods = _builder.buildTestMethods(TestClass1.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContent(new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }, names); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods_SubClass() {
- Object[] methods = _testMethodBuidler
- .buildTestMethods(SubTestClass.class);
+ Object[] methods = _builder.buildTestMethods(SubTestClass.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContent(new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }, names); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods2() {
- Object[] methods = _testMethodBuidler
- .buildTestMethods(TestClass2.class);
+ Object[] methods = _builder.buildTestMethods(TestClass2.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArrayContent(names, new String[] { "test1", "test2", //$NON-NLS-1$ //$NON-NLS-2$
"testa", "testb" }); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testBuildTestMethods3() {
- Object[] methods = _testMethodBuidler
- .buildTestMethods(TestClass3.class);
+ Object[] methods = _builder.buildTestMethods(TestClass3.class)
+ .toArray();
String[] names = TestUtil.toMethodNameArray(methods);
AssertUtil.assertArray(names, new String[] { "test1", "test2", "testa", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"testb" }); //$NON-NLS-1$
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-23 16:07:45
|
Revision: 146
http://p-unit.svn.sourceforge.net/p-unit/?rev=146&view=rev
Author: zhanghuangzhu
Date: 2007-05-23 09:07:47 -0700 (Wed, 23 May 2007)
Log Message:
-----------
Andrew Zhang: Refactored builder package name.
Modified Paths:
--------------
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
trunk/punit/src/org/punit/runner/Runner.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java
Added Paths:
-----------
trunk/punit/src/org/punit/builder/method/
trunk/punit/src/org/punit/builder/method/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/method/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/method/TestMethodBuilder.java
trunk/punit/src/org/punit/builder/suite/
trunk/punit/src/org/punit/builder/suite/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/builder/suite/TestSuiteBuilder.java
trunk/punit/src/org/punit/builder/suite/TestSuiteLabel.java
trunk/punit/src/org/punit/builder/suite/TestSuiteLabelImpl.java
Removed Paths:
-------------
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestMethodBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
trunk/punit/src/org/punit/builder/TestSuiteLabel.java
trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
Deleted: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,80 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.punit.type.*;
-
-/**
- * This class is the basic implementation for <code>TestMethodBuilder</code>
- * interface.
- *
- */
-public abstract class PUnitAbstractTestMethodBuilder implements
- TestMethodBuilder {
-
- protected final HashSet _testMethodNames = new HashSet();
-
- /**
- * Judges whether this method is a test method.
- *
- * @param method
- * @return
- */
- protected abstract boolean isTestMethod(Method method);
-
- /**
- * @see TestMethodBuilder#buildTestMethods(Class)
- */
- public Collection buildTestMethods(Class testClass) {
- Collection testMethods = null;
- if (isAlphabetical(testClass)) {
- testMethods = new TreeSet(
- new AlphabeticalMethodNameComparator());
- } else {
- testMethods = new ArrayList();
- }
- Class clazz = testClass;
- while (clazz != Object.class) {
- Method[] methods = clazz.getDeclaredMethods();
- for (int i = 0; i < methods.length; ++i) {
- Method method = methods[i];
- if (isTestMethod(method)) {
- testMethods.add(method);
- }
- }
- clazz = clazz.getSuperclass();
- }
- return testMethods;
- }
-
- private boolean isAlphabetical(Class testClass) {
- return Alphabetical.class.isAssignableFrom(testClass);
- }
-
- private static class AlphabeticalMethodNameComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- Method m1 = (Method) o1;
- Method m2 = (Method) o2;
- return m1.getName().compareTo(m2.getName());
- }
- }
-
- /**
- * @see TestMethodBuilder#addTestInterfaces(Class[])
- */
- public void addTestInterfaces(Class[] classes) {
- for (int i = 0; i < classes.length; ++i) {
- addTestInterface(classes[i]);
- }
- }
-
- private void addTestInterface(Class testInterface) {
- Method[] methods = testInterface.getDeclaredMethods();
- for (int i = 0; i < methods.length; ++i) {
- _testMethodNames.add(methods[i].getName());
- }
- }
-}
Deleted: trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,78 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import java.lang.reflect.*;
-
-import org.punit.type.*;
-import org.punit.util.*;
-
-/**
- * The default test method builder of punit.
- *
- */
-public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
-
- private static final long serialVersionUID = -6490270178427969475L;
-
- /**
- * Judges whether this method is a test method.
- *
- * @return returns true if the test modifier, name, and parameter conform to
- * the convention of a test method.
- */
- protected boolean isTestMethod(Method method) {
- return isModifierValid(method) && isNameValid(method)
- && isParamValid(method);
- }
-
- /**
- * Judeges whether the modifier of is method conforms to the convention of a
- * test method.
- *
- * @param method
- * to be judged
- * @return returns true if this method is public and non static.
- */
- protected boolean isModifierValid(Method method) {
- return ReflectionUtil.isPublic(method)
- && !ReflectionUtil.isStatic(method);
- }
-
- /**
- * Judeges whether the name of is method conforms to the convention of a
- * test method.
- *
- * @param method
- * to be judged
- * @return returns true if the name of this method starts with "test", or
- * the name is in the list of test interfaces which are added by
- * <code>TestMethodBuilder.addTestInterfaces</code>
- */
- protected boolean isNameValid(Method method) {
- String name = method.getName();
- return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
- }
-
- /**
- * Judges whether the paramaters of this method conforms to the convention
- * of a test method.
- *
- * @param method
- * @return returns true if the parameter length is zero and the test class
- * is not marked as <code>Parameterizable</code>, or the
- * parameter length is 1, and the parameter is assignable from
- * <code>Parameter</code>.
- */
- protected boolean isParamValid(Method method) {
- Class clazz = method.getDeclaringClass();
- Class[] params = method.getParameterTypes();
- if (TypeUtil.isPUnitParameterizableTest((clazz))) {
- return params.length == 1
- && Parameter.class.isAssignableFrom(params[0]);
- } else {
- return params.length == 0;
- }
- }
-
-}
Deleted: trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,50 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import java.util.*;
-
-import org.punit.type.*;
-import org.punit.util.*;
-
-public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
-
- private static final long serialVersionUID = 633363267326297920L;
-
- /**
- * @see TestSuiteBuilder#buildTestClasses(Class)
- */
- public Object[] buildTestClasses(Class clazz) {
- List testClasses = new ArrayList();
- buildTestClasses(testClasses, clazz);
- return testClasses.toArray();
- }
-
- private void buildTestClasses(List testClasses, Class clazz) {
- if(isTestSuite(clazz)) {
- buildTestClassFromTestSuite(testClasses, clazz);
- } else {
- buildTestClassesFromClass(testClasses, clazz);
- }
- }
-
- private void buildTestClassFromTestSuite(List testClasses, Class clazz) {
- PUnitTestSuite testSuite = (PUnitTestSuite) ReflectionUtil.newInstance(clazz);
- testClasses.add(new TestSuiteLabelImpl(testSuite, true));
- Class[] suite = testSuite.suite();
- for(int i = 0; i < suite.length; ++i) {
- buildTestClasses(testClasses, suite[i]);
- }
- testClasses.add(new TestSuiteLabelImpl(testSuite, false));
- }
-
- private void buildTestClassesFromClass(List testClasses, Class clazz) {
- testClasses.add(clazz);
- }
-
-
- private boolean isTestSuite(Class clazz) {
- return PUnitTestSuite.class.isAssignableFrom(clazz);
- }
-
-}
Deleted: trunk/punit/src/org/punit/builder/TestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,33 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Interface for test method builder. The method builder builds a list of
- * methods, which will be executed by the method runner.
- */
-public interface TestMethodBuilder extends Serializable {
- /**
- * Builds the test methods from the test class. Returns a list of methods.
- * The real return type should be Method[]. It returns Object[] for java 1.4
- * compatibility.
- *
- * @param clazz -
- * the test class to be built
- * @return a <code>Collection</code> of <code>java.lang.reflect.Method</code>.
- */
- public Collection buildTestMethods(Class testClass);
-
- /**
- * Adds test classes into the builder. TestMethodBuilder may use it to
- * judege whether a method is a test method.
- *
- * @param interfaces -
- * an array of test classes to be added.
- * @see PUnitTestMethodBuilder#isNameValid(java.lang.reflect.Method);
- */
- public void addTestInterfaces(Class[] interfaces);
-}
Deleted: trunk/punit/src/org/punit/builder/TestSuiteBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/TestSuiteBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,20 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import java.io.*;
-
-/**
- * Interface for test suite builder.
- * @see TestSuiteLabel
- */
-public interface TestSuiteBuilder extends Serializable {
- /**
- * Builds the test suite. Returns a list of test classes. TestSuite will be
- * presented as TestSuiteLabel object.
- *
- * @param clazz
- * @return
- */
- public Object[] buildTestClasses(Class testSutie);
-}
Deleted: trunk/punit/src/org/punit/builder/TestSuiteLabel.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabel.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabel.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,23 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import org.punit.type.*;
-
-/**
- * Represents a test suite label. TestSuiteBuilder inserts this label in the
- * result to indicate the start and the end of a test suite.
- * @see TestSuiteBuilder#buildTestClasses(Class)
- */
-public interface TestSuiteLabel {
-
- /**
- * @return the test suite it represents
- */
- public PUnitTestSuite suite();
-
- /**
- * @return returns true if it represents the start of a test suite.
- */
- public boolean isStart();
-}
Deleted: trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,28 +0,0 @@
-/* (C) Copyright 2007, by Andrew Zhang */
-
-package org.punit.builder;
-
-import org.punit.type.*;
-
-
-/**
- * Default implementation for TestSuiteLabel.
- * @see TestSuiteLabel
- */
-public class TestSuiteLabelImpl implements TestSuiteLabel {
- private PUnitTestSuite _suite;
- private boolean _isStart;
-
- public TestSuiteLabelImpl(PUnitTestSuite suite, boolean isStart) {
- _suite = suite;
- _isStart = isStart;
- }
-
- public PUnitTestSuite suite() {
- return _suite;
- }
-
- public boolean isStart() {
- return _isStart;
- }
-}
Copied: trunk/punit/src/org/punit/builder/method/PUnitAbstractTestMethodBuilder.java (from rev 145, trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java)
===================================================================
--- trunk/punit/src/org/punit/builder/method/PUnitAbstractTestMethodBuilder.java (rev 0)
+++ trunk/punit/src/org/punit/builder/method/PUnitAbstractTestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,80 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.method;
+
+import java.lang.reflect.*;
+import java.util.*;
+
+import org.punit.type.*;
+
+/**
+ * This class is the basic implementation for <code>TestMethodBuilder</code>
+ * interface.
+ *
+ */
+public abstract class PUnitAbstractTestMethodBuilder implements
+ TestMethodBuilder {
+
+ protected final HashSet _testMethodNames = new HashSet();
+
+ /**
+ * Judges whether this method is a test method.
+ *
+ * @param method
+ * @return
+ */
+ protected abstract boolean isTestMethod(Method method);
+
+ /**
+ * @see TestMethodBuilder#buildTestMethods(Class)
+ */
+ public Collection buildTestMethods(Class testClass) {
+ Collection testMethods = null;
+ if (isAlphabetical(testClass)) {
+ testMethods = new TreeSet(
+ new AlphabeticalMethodNameComparator());
+ } else {
+ testMethods = new ArrayList();
+ }
+ Class clazz = testClass;
+ while (clazz != Object.class) {
+ Method[] methods = clazz.getDeclaredMethods();
+ for (int i = 0; i < methods.length; ++i) {
+ Method method = methods[i];
+ if (isTestMethod(method)) {
+ testMethods.add(method);
+ }
+ }
+ clazz = clazz.getSuperclass();
+ }
+ return testMethods;
+ }
+
+ private boolean isAlphabetical(Class testClass) {
+ return Alphabetical.class.isAssignableFrom(testClass);
+ }
+
+ private static class AlphabeticalMethodNameComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ Method m1 = (Method) o1;
+ Method m2 = (Method) o2;
+ return m1.getName().compareTo(m2.getName());
+ }
+ }
+
+ /**
+ * @see TestMethodBuilder#addTestInterfaces(Class[])
+ */
+ public void addTestInterfaces(Class[] classes) {
+ for (int i = 0; i < classes.length; ++i) {
+ addTestInterface(classes[i]);
+ }
+ }
+
+ private void addTestInterface(Class testInterface) {
+ Method[] methods = testInterface.getDeclaredMethods();
+ for (int i = 0; i < methods.length; ++i) {
+ _testMethodNames.add(methods[i].getName());
+ }
+ }
+}
Copied: trunk/punit/src/org/punit/builder/method/PUnitTestMethodBuilder.java (from rev 121, trunk/punit/src/org/punit/builder/PUnitTestMethodBuilder.java)
===================================================================
--- trunk/punit/src/org/punit/builder/method/PUnitTestMethodBuilder.java (rev 0)
+++ trunk/punit/src/org/punit/builder/method/PUnitTestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,78 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.method;
+
+import java.lang.reflect.*;
+
+import org.punit.type.*;
+import org.punit.util.*;
+
+/**
+ * The default test method builder of punit.
+ *
+ */
+public class PUnitTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
+
+ private static final long serialVersionUID = -6490270178427969475L;
+
+ /**
+ * Judges whether this method is a test method.
+ *
+ * @return returns true if the test modifier, name, and parameter conform to
+ * the convention of a test method.
+ */
+ protected boolean isTestMethod(Method method) {
+ return isModifierValid(method) && isNameValid(method)
+ && isParamValid(method);
+ }
+
+ /**
+ * Judeges whether the modifier of is method conforms to the convention of a
+ * test method.
+ *
+ * @param method
+ * to be judged
+ * @return returns true if this method is public and non static.
+ */
+ protected boolean isModifierValid(Method method) {
+ return ReflectionUtil.isPublic(method)
+ && !ReflectionUtil.isStatic(method);
+ }
+
+ /**
+ * Judeges whether the name of is method conforms to the convention of a
+ * test method.
+ *
+ * @param method
+ * to be judged
+ * @return returns true if the name of this method starts with "test", or
+ * the name is in the list of test interfaces which are added by
+ * <code>TestMethodBuilder.addTestInterfaces</code>
+ */
+ protected boolean isNameValid(Method method) {
+ String name = method.getName();
+ return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
+ }
+
+ /**
+ * Judges whether the paramaters of this method conforms to the convention
+ * of a test method.
+ *
+ * @param method
+ * @return returns true if the parameter length is zero and the test class
+ * is not marked as <code>Parameterizable</code>, or the
+ * parameter length is 1, and the parameter is assignable from
+ * <code>Parameter</code>.
+ */
+ protected boolean isParamValid(Method method) {
+ Class clazz = method.getDeclaringClass();
+ Class[] params = method.getParameterTypes();
+ if (TypeUtil.isPUnitParameterizableTest((clazz))) {
+ return params.length == 1
+ && Parameter.class.isAssignableFrom(params[0]);
+ } else {
+ return params.length == 0;
+ }
+ }
+
+}
Copied: trunk/punit/src/org/punit/builder/method/TestMethodBuilder.java (from rev 145, trunk/punit/src/org/punit/builder/TestMethodBuilder.java)
===================================================================
--- trunk/punit/src/org/punit/builder/method/TestMethodBuilder.java (rev 0)
+++ trunk/punit/src/org/punit/builder/method/TestMethodBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,33 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.method;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Interface for test method builder. The method builder builds a list of
+ * methods, which will be executed by the method runner.
+ */
+public interface TestMethodBuilder extends Serializable {
+ /**
+ * Builds the test methods from the test class. Returns a list of methods.
+ * The real return type should be Method[]. It returns Object[] for java 1.4
+ * compatibility.
+ *
+ * @param clazz -
+ * the test class to be built
+ * @return a <code>Collection</code> of <code>java.lang.reflect.Method</code>.
+ */
+ public Collection buildTestMethods(Class testClass);
+
+ /**
+ * Adds test classes into the builder. TestMethodBuilder may use it to
+ * judege whether a method is a test method.
+ *
+ * @param interfaces -
+ * an array of test classes to be added.
+ * @see PUnitTestMethodBuilder#isNameValid(java.lang.reflect.Method);
+ */
+ public void addTestInterfaces(Class[] interfaces);
+}
Copied: trunk/punit/src/org/punit/builder/suite/PUnitTestSuiteBuilder.java (from rev 121, trunk/punit/src/org/punit/builder/PUnitTestSuiteBuilder.java)
===================================================================
--- trunk/punit/src/org/punit/builder/suite/PUnitTestSuiteBuilder.java (rev 0)
+++ trunk/punit/src/org/punit/builder/suite/PUnitTestSuiteBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,50 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.suite;
+
+import java.util.*;
+
+import org.punit.type.*;
+import org.punit.util.*;
+
+public class PUnitTestSuiteBuilder implements TestSuiteBuilder {
+
+ private static final long serialVersionUID = 633363267326297920L;
+
+ /**
+ * @see TestSuiteBuilder#buildTestClasses(Class)
+ */
+ public Object[] buildTestClasses(Class clazz) {
+ List testClasses = new ArrayList();
+ buildTestClasses(testClasses, clazz);
+ return testClasses.toArray();
+ }
+
+ private void buildTestClasses(List testClasses, Class clazz) {
+ if(isTestSuite(clazz)) {
+ buildTestClassFromTestSuite(testClasses, clazz);
+ } else {
+ buildTestClassesFromClass(testClasses, clazz);
+ }
+ }
+
+ private void buildTestClassFromTestSuite(List testClasses, Class clazz) {
+ PUnitTestSuite testSuite = (PUnitTestSuite) ReflectionUtil.newInstance(clazz);
+ testClasses.add(new TestSuiteLabelImpl(testSuite, true));
+ Class[] suite = testSuite.suite();
+ for(int i = 0; i < suite.length; ++i) {
+ buildTestClasses(testClasses, suite[i]);
+ }
+ testClasses.add(new TestSuiteLabelImpl(testSuite, false));
+ }
+
+ private void buildTestClassesFromClass(List testClasses, Class clazz) {
+ testClasses.add(clazz);
+ }
+
+
+ private boolean isTestSuite(Class clazz) {
+ return PUnitTestSuite.class.isAssignableFrom(clazz);
+ }
+
+}
Copied: trunk/punit/src/org/punit/builder/suite/TestSuiteBuilder.java (from rev 121, trunk/punit/src/org/punit/builder/TestSuiteBuilder.java)
===================================================================
--- trunk/punit/src/org/punit/builder/suite/TestSuiteBuilder.java (rev 0)
+++ trunk/punit/src/org/punit/builder/suite/TestSuiteBuilder.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,20 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.suite;
+
+import java.io.*;
+
+/**
+ * Interface for test suite builder.
+ * @see TestSuiteLabel
+ */
+public interface TestSuiteBuilder extends Serializable {
+ /**
+ * Builds the test suite. Returns a list of test classes. TestSuite will be
+ * presented as TestSuiteLabel object.
+ *
+ * @param clazz
+ * @return
+ */
+ public Object[] buildTestClasses(Class testSutie);
+}
Copied: trunk/punit/src/org/punit/builder/suite/TestSuiteLabel.java (from rev 121, trunk/punit/src/org/punit/builder/TestSuiteLabel.java)
===================================================================
--- trunk/punit/src/org/punit/builder/suite/TestSuiteLabel.java (rev 0)
+++ trunk/punit/src/org/punit/builder/suite/TestSuiteLabel.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,23 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.suite;
+
+import org.punit.type.*;
+
+/**
+ * Represents a test suite label. TestSuiteBuilder inserts this label in the
+ * result to indicate the start and the end of a test suite.
+ * @see TestSuiteBuilder#buildTestClasses(Class)
+ */
+public interface TestSuiteLabel {
+
+ /**
+ * @return the test suite it represents
+ */
+ public PUnitTestSuite suite();
+
+ /**
+ * @return returns true if it represents the start of a test suite.
+ */
+ public boolean isStart();
+}
Copied: trunk/punit/src/org/punit/builder/suite/TestSuiteLabelImpl.java (from rev 121, trunk/punit/src/org/punit/builder/TestSuiteLabelImpl.java)
===================================================================
--- trunk/punit/src/org/punit/builder/suite/TestSuiteLabelImpl.java (rev 0)
+++ trunk/punit/src/org/punit/builder/suite/TestSuiteLabelImpl.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -0,0 +1,28 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.builder.suite;
+
+import org.punit.type.*;
+
+
+/**
+ * Default implementation for TestSuiteLabel.
+ * @see TestSuiteLabel
+ */
+public class TestSuiteLabelImpl implements TestSuiteLabel {
+ private PUnitTestSuite _suite;
+ private boolean _isStart;
+
+ public TestSuiteLabelImpl(PUnitTestSuite suite, boolean isStart) {
+ _suite = suite;
+ _isStart = isStart;
+ }
+
+ public PUnitTestSuite suite() {
+ return _suite;
+ }
+
+ public boolean isStart() {
+ return _isStart;
+ }
+}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -4,7 +4,8 @@
import java.lang.reflect.*;
import java.util.*;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import org.punit.events.*;
import org.punit.exception.*;
import org.punit.reporter.stream.console.*;
Modified: trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/runner/PUnitConcurrentRunner.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -1,7 +1,8 @@
/* (C) Copyright 2007, by Andrew Zhang */
package org.punit.runner;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import org.punit.message.*;
import org.punit.runner.method.*;
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -2,7 +2,8 @@
package org.punit.runner;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import org.punit.message.*;
import org.punit.runner.method.*;
import org.punit.util.*;
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -2,7 +2,8 @@
import java.io.*;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import org.punit.events.*;
import org.punit.runner.method.*;
import org.punit.type.*;
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -4,7 +4,8 @@
import junit.framework.*;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import tests.api.org.punit.testclasses.*;
import tests.util.*;
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestMethodBuilderTest.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -2,7 +2,8 @@
import junit.framework.*;
-import org.punit.builder.*;
+import org.punit.builder.method.*;
+import org.punit.builder.suite.*;
import tests.api.org.punit.testclasses.*;
import tests.util.*;
Modified: trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java 2007-05-23 16:03:20 UTC (rev 145)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitTestSuiteBuilderTest.java 2007-05-23 16:07:47 UTC (rev 146)
@@ -2,7 +2,7 @@
import junit.framework.*;
-import org.punit.builder.*;
+import org.punit.builder.suite.*;
import tests.api.org.punit.testclasses.*;
import tests.util.*;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-24 11:19:42
|
Revision: 150
http://p-unit.svn.sourceforge.net/p-unit/?rev=150&view=rev
Author: zhanghuangzhu
Date: 2007-05-24 04:19:44 -0700 (Thu, 24 May 2007)
Log Message:
-----------
Andrew Zhang: build xmls.
Modified Paths:
--------------
trunk/punit/build.xml
Added Paths:
-----------
trunk/punit.extension/build.xml
Modified: trunk/punit/build.xml
===================================================================
--- trunk/punit/build.xml 2007-05-24 10:30:54 UTC (rev 149)
+++ trunk/punit/build.xml 2007-05-24 11:19:44 UTC (rev 150)
@@ -5,9 +5,10 @@
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
- <property name="dist" location="dist"/>
+ <property name="dist" location="../dist"/>
<property name="project.name" value="p-unit"/>
<property name="project.version" value="0.10-dev"/>
+ <property name="punit.jar" value="${project.name}-${project.version}.jar"/>
<target name="init">
<!-- Create the time stamp -->
@@ -28,7 +29,7 @@
<mkdir dir="${dist}"/>
<!-- Put everything in ${build} into the project.name-${DSTAMP}.jar file -->
- <jar jarfile="${dist}/${project.name}-${project.version}.jar" basedir="${build}"/>
+ <jar jarfile="${dist}/${punit.jar}" basedir="${build}"/>
</target>
<target name="clean"
Added: trunk/punit.extension/build.xml
===================================================================
--- trunk/punit.extension/build.xml (rev 0)
+++ trunk/punit.extension/build.xml 2007-05-24 11:19:44 UTC (rev 150)
@@ -0,0 +1,44 @@
+<project name="p-unit" default="dist" basedir=".">
+ <description>
+ p-unit-extension build system
+ </description>
+ <!-- set global properties for this build -->
+ <import file="../punit/build.xml" />
+ <property name="src" location="src"/>
+ <property name="build" location="build"/>
+ <property name="p-unit-extension.jar" value="p-unit-extension-${project.version}.jar"/>
+
+ <target name="init">
+ <!-- Create the time stamp -->
+ <tstamp/>
+ <!-- Create the build directory structure used by compile -->
+ <mkdir dir="${build}"/>
+ </target>
+
+ <target name="compile" depends="init"
+ description="compile the source " >
+ <!-- Compile the java code from ${src} into ${build} -->
+ <javac srcdir="${src}" destdir="${build}">
+ <classpath>
+ <pathelement path="${punit.jar}"/>
+ <fileset dir="lib">
+ <include name="**/*.jar" />
+ </fileset>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="dist" depends="compile"
+ description="generate the distribution" >
+ <!-- Create the distribution directory -->
+ <mkdir dir="${dist}"/>
+ <jar jarfile="${dist}/${p-unit-extension.jar}" basedir="${build}"/>
+ </target>
+
+ <target name="clean"
+ description="clean up" >
+ <!-- Delete the ${build} and ${dist} directory trees -->
+ <delete dir="${build}"/>
+ <delete dir="${dist}"/>
+ </target>
+</project>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <zha...@us...> - 2007-05-24 12:00:52
|
Revision: 152
http://p-unit.svn.sourceforge.net/p-unit/?rev=152&view=rev
Author: zhanghuangzhu
Date: 2007-05-24 05:00:54 -0700 (Thu, 24 May 2007)
Log Message:
-----------
Andrew Zhang: fixed the compiler errors.
Removed Paths:
-------------
trunk/punit/build.xml
trunk/punit.extension/build.xml
Deleted: trunk/punit/build.xml
===================================================================
--- trunk/punit/build.xml 2007-05-24 11:30:08 UTC (rev 151)
+++ trunk/punit/build.xml 2007-05-24 12:00:54 UTC (rev 152)
@@ -1,41 +0,0 @@
-<project name="p-unit" default="dist" basedir=".">
- <description>
- p-unit build system
- </description>
- <!-- set global properties for this build -->
- <property name="src" location="src"/>
- <property name="build" location="build"/>
- <property name="dist" location="../dist"/>
- <property name="project.name" value="p-unit"/>
- <property name="project.version" value="0.10-dev"/>
- <property name="punit.jar" value="${project.name}-${project.version}.jar"/>
-
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${build}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <!-- Compile the java code from ${src} into ${build} -->
- <javac srcdir="${src}" destdir="${build}"/>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${dist}"/>
-
- <!-- Put everything in ${build} into the project.name-${DSTAMP}.jar file -->
- <jar jarfile="${dist}/${punit.jar}" basedir="${build}"/>
- </target>
-
- <target name="clean"
- description="clean up" >
- <!-- Delete the ${build} and ${dist} directory trees -->
- <delete dir="${build}"/>
- <delete dir="${dist}"/>
- </target>
-</project>
\ No newline at end of file
Deleted: trunk/punit.extension/build.xml
===================================================================
--- trunk/punit.extension/build.xml 2007-05-24 11:30:08 UTC (rev 151)
+++ trunk/punit.extension/build.xml 2007-05-24 12:00:54 UTC (rev 152)
@@ -1,44 +0,0 @@
-<project name="p-unit-extension" default="dist" basedir=".">
- <description>
- p-unit-extension build system
- </description>
- <!-- set global properties for this build -->
- <import file="../punit/build.xml" />
- <property name="src" location="src"/>
- <property name="build" location="build"/>
- <property name="p-unit-extension.jar" value="p-unit-extension-${project.version}.jar"/>
-
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${build}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <!-- Compile the java code from ${src} into ${build} -->
- <javac srcdir="${src}" destdir="${build}">
- <classpath>
- <pathelement path="${punit.jar}"/>
- <fileset dir="lib">
- <include name="**/*.jar" />
- </fileset>
- </classpath>
- </javac>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${dist}"/>
- <jar jarfile="${dist}/${p-unit-extension.jar}" basedir="${build}"/>
- </target>
-
- <target name="clean"
- description="clean up" >
- <!-- Delete the ${build} and ${dist} directory trees -->
- <delete dir="${build}"/>
- <delete dir="${dist}"/>
- </target>
-</project>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|