[P-unit-devel] SF.net SVN: p-unit: [79] trunk/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-05-15 09:32:53
|
Revision: 79
http://p-unit.svn.sourceforge.net/p-unit/?rev=79&view=rev
Author: zhanghuangzhu
Date: 2007-05-15 02:32:50 -0700 (Tue, 15 May 2007)
Log Message:
-----------
Andrew Zhang: began to implement vm competitive feature.
Modified Paths:
--------------
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/util/ArgUtil.java
trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java
Added Paths:
-----------
trunk/punit/src/org/punit/runner/PUnitArgs.java
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 08:25:22 UTC (rev 78)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -1,6 +1,5 @@
package org.punit.runner;
-import java.io.*;
import java.lang.reflect.*;
import java.util.*;
@@ -26,6 +25,8 @@
private ConsoleLoggerListener _consoleLogger = new ConsoleLoggerListener();
private FileLoggerListener _fileLogger = new FileLoggerListener();
+
+ private PUnitArgs _pargs;
public PUnitAbstractRunner(TestSuiteBuilder testSuiteBuiler,
TestMethodBuilder testMethodBuilder,
@@ -37,6 +38,17 @@
}
public void run(Class clazz) {
+ punitArgs(defaultPargs(clazz));
+ runImpl(clazz);
+ }
+
+ public void run(PUnitArgs pargs) {
+ punitArgs(pargs);
+ Class clazz = ReflectionUtil.newClass(pargs.testClassName);
+ runImpl(clazz);
+ }
+
+ private void runImpl(Class clazz) {
onRunnerStart(clazz);
Object[] testClasses = _testSuiteBuiler.buildTestClasses(clazz);
for (int i = 0; i < testClasses.length; ++i) {
@@ -45,15 +57,11 @@
onRunnerEnd(clazz);
}
- 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);
+ String command = generateVMCommand(clazz, vm[i]);
IOUtil.exec(command);
+ //TODO: generate report here.
}
}
@@ -61,7 +69,7 @@
* 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) {
+ private String generateVMCommand(Class testClass, VM vm) {
StringBuffer sb = new StringBuffer();
sb.append(vm.path());
sb.append(" -classpath "); //$NON-NLS-1$
@@ -71,6 +79,7 @@
sb.append(testClass.getName());
sb.append(" "); //$NON-NLS-1$
sb.append(IOUtil.getCurrentPath());
+ sb.append(" false"); //$NON-NLS-1$
return sb.toString();
}
@@ -224,4 +233,20 @@
public void addTestInterfaces(Class[] interfaces) {
_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);
+ }
+
+ private void punitArgs(PUnitArgs pargs) {
+ _pargs = pargs;
+ }
+
+ public PUnitArgs punitArgs() {
+ return _pargs;
+ }
+
}
Added: trunk/punit/src/org/punit/runner/PUnitArgs.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitArgs.java (rev 0)
+++ trunk/punit/src/org/punit/runner/PUnitArgs.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -0,0 +1,15 @@
+package org.punit.runner;
+
+public class PUnitArgs {
+ public PUnitArgs(String className, String folder, boolean intermediate) {
+ testClassName = className;
+ resultFolder = folder;
+ this.intermediate = intermediate;
+ }
+
+ public final String testClassName;
+
+ public final String resultFolder;
+
+ public final boolean intermediate;
+}
Modified: trunk/punit/src/org/punit/runner/PUnitSoloRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 08:25:22 UTC (rev 78)
+++ trunk/punit/src/org/punit/runner/PUnitSoloRunner.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -3,6 +3,8 @@
import org.punit.builder.*;
import org.punit.message.*;
import org.punit.runner.method.*;
+import org.punit.util.*;
+import org.punit.util.ArgUtil.*;
public class PUnitSoloRunner extends PUnitAbstractRunner {
@@ -13,12 +15,8 @@
* 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);
+ PUnitArgs parg = ArgUtil.getPUnitArgs(args);
+ new PUnitSoloRunner().run(parg);
}
public PUnitSoloRunner() {
Modified: trunk/punit/src/org/punit/runner/Runner.java
===================================================================
--- trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 08:25:22 UTC (rev 78)
+++ trunk/punit/src/org/punit/runner/Runner.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -2,13 +2,15 @@
import org.punit.builder.*;
import org.punit.events.*;
-import org.punit.result.*;
import org.punit.runner.method.*;
import org.punit.type.*;
public interface Runner extends RunnerEvent, ClassEvent, PUnitName {
+
public void run(Class clazz);
+ public PUnitArgs punitArgs();
+
public TestMethodBuilder testMethodBuilder();
public TestMethodRunner testMethodRunner();
Modified: trunk/punit/src/org/punit/util/ArgUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 08:25:22 UTC (rev 78)
+++ trunk/punit/src/org/punit/util/ArgUtil.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -1,25 +1,16 @@
package org.punit.util;
import org.punit.message.*;
+import org.punit.runner.*;
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) {
+ if (args.length < 1 || args.length > 3) {
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);
+ String resultFolder = args.length >= 2 ? args[1] : null;
+ boolean intermediate = args.length == 3 ? Boolean.parseBoolean(args[2]) : false;
+ return new PUnitArgs(className, resultFolder, intermediate);
}
}
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 08:25:22 UTC (rev 78)
+++ trunk/punit.test/src/tests/api/org/punit/util/ArgUtilTest.java 2007-05-15 09:32:50 UTC (rev 79)
@@ -2,8 +2,8 @@
import junit.framework.*;
+import org.punit.runner.*;
import org.punit.util.*;
-import org.punit.util.ArgUtil.*;
import tests.util.*;
@@ -13,27 +13,40 @@
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);
+ assertFalse(parg.intermediate);
parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER });
assertEquals(CLASS_NAME, parg.testClassName);
assertEquals(RESULT_FOLDER, parg.resultFolder);
-
+ assertFalse(parg.intermediate);
+
+
+ parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "true" }); //$NON-NLS-1$
+ assertEquals(CLASS_NAME, parg.testClassName);
+ assertEquals(RESULT_FOLDER, parg.resultFolder);
+ assertTrue(parg.intermediate);
+
+ parg = ArgUtil.getPUnitArgs(new String[] { CLASS_NAME, RESULT_FOLDER, "false" }); //$NON-NLS-1$
+ assertEquals(CLASS_NAME, parg.testClassName);
+ assertEquals(RESULT_FOLDER, parg.resultFolder);
+ assertFalse(parg.intermediate);
+
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 });
+ RESULT_FOLDER, null, null });
}
});
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|