[P-unit-devel] SF.net SVN: p-unit: [201] trunk/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-06-07 03:40:44
|
Revision: 201
http://p-unit.svn.sourceforge.net/p-unit/?rev=201&view=rev
Author: zhanghuangzhu
Date: 2007-06-06 20:40:32 -0700 (Wed, 06 Jun 2007)
Log Message:
-----------
Andrew Zhang: Refactored name, and added IntParameter default implementation.
Modified Paths:
--------------
trunk/punit/src/org/punit/method/runner/ConcurrentMethodRunner.java
trunk/punit/src/org/punit/runner/Filter.java
trunk/punit/src/org/punit/runner/NameConventionFilter.java
trunk/punit/src/org/punit/util/IOUtil.java
trunk/punit/src/org/punit/util/ReflectionUtil.java
trunk/punit/src/org/punit/util/RunnerUtil.java
trunk/punit.extension/src/org/punit/annotation/Test.java
trunk/punit.extension/src/org/punit/runner/AnnotationFilter.java
trunk/punit.samples/src/samples/vms/VMConfig.java
trunk/punit.test/src/tests/api/org/punit/runner/AnnotationFilterTest.java
trunk/punit.test/src/tests/api/org/punit/runner/NameConventionFilterTest.java
trunk/punit.test/src/tests/api/org/punit/testclasses/AnnotationTestClass.java
Added Paths:
-----------
trunk/punit/src/org/punit/util/IntParameter.java
Modified: trunk/punit/src/org/punit/method/runner/ConcurrentMethodRunner.java
===================================================================
--- trunk/punit/src/org/punit/method/runner/ConcurrentMethodRunner.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/method/runner/ConcurrentMethodRunner.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -3,7 +3,6 @@
package org.punit.method.runner;
import org.punit.exception.*;
-import org.punit.type.*;
public class ConcurrentMethodRunner extends AbstractMethodRunner {
@@ -45,14 +44,23 @@
protected void setUpBeforeWatchers(Object[] params) throws Throwable {
super.setUpBeforeWatchers(params);
+ initThreads();
+ }
+
+ private void initThreads() {
int threadCount = _concurrentCount;
- if(_testInstance instanceof Concurrent) {
- threadCount = ((Concurrent)_testInstance).concurrentCount();
+ int count = _filter.getConcurrentCount(_testInstance);
+ if(count > 0) {
+ threadCount = count;
}
+ count = _filter.getConcurrentCount(_method);
+ if(count > 0) {
+ threadCount = count;
+ }
_threads = new TestMethodThread[threadCount];
for (int i = 0; i < _threads.length; ++i) {
_threads[i] = new TestMethodThread(this, "punit concurrent method runner"); //$NON-NLS-1$
- }
+ }
}
protected String getCheckMethodName() {
Modified: trunk/punit/src/org/punit/runner/Filter.java
===================================================================
--- trunk/punit/src/org/punit/runner/Filter.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/runner/Filter.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -31,4 +31,8 @@
public Method getCheckMethod(Method method);
public Class getExpectedException(Method method);
+
+ public int getConcurrentCount(Method method);
+
+ public int getConcurrentCount(Object testInstance);
}
Modified: trunk/punit/src/org/punit/runner/NameConventionFilter.java
===================================================================
--- trunk/punit/src/org/punit/runner/NameConventionFilter.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/runner/NameConventionFilter.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -84,4 +84,17 @@
public Class getExpectedException(Method method) {
return null;
}
+
+ public int getConcurrentCount(Method method) {
+ return 0;
+ }
+
+ public int getConcurrentCount(Object testInstance) {
+ if(testInstance instanceof Concurrent) {
+ return ((Concurrent)testInstance).concurrentCount();
+ }
+ return 0;
+ }
+
+
}
Modified: trunk/punit/src/org/punit/util/IOUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/IOUtil.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/util/IOUtil.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.util;
import java.io.*;
Added: trunk/punit/src/org/punit/util/IntParameter.java
===================================================================
--- trunk/punit/src/org/punit/util/IntParameter.java (rev 0)
+++ trunk/punit/src/org/punit/util/IntParameter.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -0,0 +1,23 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
+package org.punit.util;
+
+import org.punit.type.*;
+
+public class IntParameter implements Parameter {
+
+ private int _intValue;
+
+ public IntParameter(int value) {
+ _intValue = value;
+ }
+
+ public int intValue() {
+ return _intValue;
+ }
+
+ public String toString() {
+ return String.valueOf(_intValue);
+ }
+
+}
Modified: trunk/punit/src/org/punit/util/ReflectionUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/ReflectionUtil.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/util/ReflectionUtil.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -1,3 +1,5 @@
+/* (C) Copyright 2007, by Andrew Zhang */
+
package org.punit.util;
import java.lang.reflect.*;
Modified: trunk/punit/src/org/punit/util/RunnerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/RunnerUtil.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit/src/org/punit/util/RunnerUtil.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -2,8 +2,6 @@
package org.punit.util;
-import java.io.*;
-
import org.punit.message.*;
import org.punit.runner.*;
@@ -23,12 +21,6 @@
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/annotation/Test.java
===================================================================
--- trunk/punit.extension/src/org/punit/annotation/Test.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.extension/src/org/punit/annotation/Test.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -12,6 +12,8 @@
String checkMethod() default "";
boolean excluded() default false;
+
+ int concurrentCount() default 0;
public class NoException extends Throwable {
private static final long serialVersionUID = 3987745685001380514L;
Modified: trunk/punit.extension/src/org/punit/runner/AnnotationFilter.java
===================================================================
--- trunk/punit.extension/src/org/punit/runner/AnnotationFilter.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.extension/src/org/punit/runner/AnnotationFilter.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -13,7 +13,7 @@
NameConventionFilter _delegate = new NameConventionFilter();
public Method getCheckMethod(Method method) {
- Test testAnnotation = method.getAnnotation(Test.class);
+ Test testAnnotation = getTestAnnotation(method);
String checkMethodName = null;
if (testAnnotation != null) {
checkMethodName = testAnnotation.checkMethod();
@@ -24,10 +24,10 @@
}
return _delegate.getCheckMethod(method);
}
-
+
@SuppressWarnings("unchecked")
public boolean isExcluded(Class clazz) {
- Test testAnnotation = (Test) clazz.getAnnotation(Test.class);
+ Test testAnnotation = getTestAnnotation(clazz);
if(testAnnotation == null) {
return false;
}
@@ -35,12 +35,12 @@
}
public boolean isTestMethod(Method method) {
- Test testAnnotation = method.getAnnotation(Test.class);
+ Test testAnnotation = getTestAnnotation(method);
return (testAnnotation != null) || _delegate.isTestMethod(method);
}
public Class<? extends Throwable> getExpectedException(Method method) {
- Test testAnnotation = method.getAnnotation(Test.class);
+ Test testAnnotation = getTestAnnotation(method);
if(testAnnotation == null) {
return null;
}
@@ -51,4 +51,27 @@
return expected;
}
+ public int getConcurrentCount(Method method) {
+ Test testAnnotation = getTestAnnotation(method);
+ if(testAnnotation == null) {
+ return 0;
+ }
+ return testAnnotation.concurrentCount();
+ }
+
+ public int getConcurrentCount(Object testInstnace) {
+ Test testAnnotation = getTestAnnotation(testInstnace.getClass());
+ if(testAnnotation == null) {
+ return _delegate.getConcurrentCount(testInstnace);
+ }
+ return testAnnotation.concurrentCount();
+ }
+
+ private Test getTestAnnotation(Method method) {
+ return method.getAnnotation(Test.class);
+ }
+
+ private Test getTestAnnotation(Class<?> clazz) {
+ return (Test) clazz.getAnnotation(Test.class);
+ }
}
Modified: trunk/punit.samples/src/samples/vms/VMConfig.java
===================================================================
--- trunk/punit.samples/src/samples/vms/VMConfig.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.samples/src/samples/vms/VMConfig.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -4,7 +4,7 @@
public class VMConfig {
- private static String CLASSPATH = " -cp d:\\workspace_3.2\\punit.samples\\bin;d:\\workspace_3.2\\punit\\bin;d:\\workspace_3.2\\punit.extension\\bin;D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"; //$NON-NLS-1$
+ private static String CLASSPATH = " -cp .;d:\\workspace_3.2\\punit.samples\\bin;d:\\workspace_3.2\\punit\\bin;d:\\workspace_3.2\\punit.extension\\bin;D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"; //$NON-NLS-1$
private static String DRLVM_PATH = "D:\\harmony-jre-r530500\\bin\\java" + CLASSPATH; //$NON-NLS-1$
Modified: trunk/punit.test/src/tests/api/org/punit/runner/AnnotationFilterTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/AnnotationFilterTest.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.test/src/tests/api/org/punit/runner/AnnotationFilterTest.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -10,6 +10,8 @@
import org.punit.runner.*;
import org.punit.util.*;
+import tests.api.org.punit.testclasses.*;
+
public class AnnotationFilterTest extends TestCase {
AnnotationFilter _filter = new AnnotationFilter();
@@ -63,6 +65,25 @@
assertNull(exception);
}
+ public void testGetConcurrentCount1() {
+ ConcurrentTestClass test = new ConcurrentTestClass();
+ int count = _filter.getConcurrentCount(test);
+ assertEquals(test.concurrentCount(), count);
+ assertEquals(0, _filter.getConcurrentCount(new TestClass()));
+ }
+
+ public void testGetConcurrentCountClass() {
+ AnnotationTestClass test = new AnnotationTestClass();
+ int count = _filter.getConcurrentCount(test);
+ assertEquals(5, count);
+ }
+
+ public void testGetConcurrentCountMethod() {
+ Method method = ReflectionUtil.getMethod(AnnotationTestClass.class, "_test2", new Class[] {}); //$NON-NLS-1$
+ int count = _filter.getConcurrentCount(method);
+ assertEquals(6, count);
+ }
+
public void _test1() {
}
Modified: trunk/punit.test/src/tests/api/org/punit/runner/NameConventionFilterTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/runner/NameConventionFilterTest.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.test/src/tests/api/org/punit/runner/NameConventionFilterTest.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -9,9 +9,12 @@
import org.punit.runner.*;
import org.punit.util.*;
+import tests.api.org.punit.testclasses.*;
+
public class NameConventionFilterTest extends TestCase {
- AnnotationFilter _filter = new AnnotationFilter();
+ NameConventionFilter _filter = new NameConventionFilter();
+
public void testIsTestMethod() {
Method method;
method = ReflectionUtil.getMethod(getClass(), "test1", new Class[] {}); //$NON-NLS-1$
@@ -32,6 +35,12 @@
assertEquals("check__test2", checkMethod.getName()); //$NON-NLS-1$
}
+ public void testGetConcurrentCount() {
+ ConcurrentTestClass test = new ConcurrentTestClass();
+ int count = _filter.getConcurrentCount(test);
+ assertEquals(test.concurrentCount(), count);
+ assertEquals(0, _filter.getConcurrentCount(new TestClass()));
+ }
public void test1() {
Modified: trunk/punit.test/src/tests/api/org/punit/testclasses/AnnotationTestClass.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/AnnotationTestClass.java 2007-06-04 07:15:18 UTC (rev 200)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/AnnotationTestClass.java 2007-06-07 03:40:32 UTC (rev 201)
@@ -5,6 +5,7 @@
import org.punit.annotation.Test;
import org.punit.runner.*;
+@Test(concurrentCount=5)
public class AnnotationTestClass {
public static void main(String[] args) {
@@ -52,6 +53,7 @@
_test1 = true;
}
+ @Test(checkMethod="annotation_check_2", concurrentCount=6)
public void _test2() {
_test2 = true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|