You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2005/05/06 06:48:12 UTC
svn commit: r168520 - in /incubator/beehive/trunk/controls/test/src:
controls/org/apache/beehive/controls/test/controls/threading/
drivers/org/apache/beehive/controls/test/driver/threading/
units/org/apache/beehive/controls/test/java/context/
units/org/apache/beehive/controls/test/java/property/
units/org/apache/beehive/controls/test/java/threading/
Author: jsong
Date: Thu May 5 21:48:11 2005
New Revision: 168520
URL: http://svn.apache.org/viewcvs?rev=168520&view=rev
Log:
Update controls daily tests for multithreaded controls.
Modified:
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControlImpl.jcs
incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java
incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/CompositeTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs Thu May 5 21:48:11 2005
@@ -24,18 +24,16 @@
public int doGet()
{
- return value;
+ return value;
}
public void doSet()
{
- for(int i=0;i<LOOPS;i++){
- for(int j=0;j<900000;j++){
- String str="new String";
- }
-
- value=i;
- }
- }
-
+ for(int i=0;i<LOOPS;i++){
+ for(int j=0;j<900000;j++){
+ String str="new String";
+ }
+ value=i;
+ }
+ }
}
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java Thu May 5 21:48:11 2005
@@ -11,10 +11,9 @@
@ControlInterface
public interface MultiThreadControl
{
- public final static String METHOD1="method1";
- public final static String METHOD2="method2";
+ public final static String METHOD1="blocker";
+ public final static String METHOD2="unblocker";
public final static long EXPECTED_DELAY=150;
- public long method1();
- public long method2();
+ public long doSlowIncrement(boolean isBlocker);
}
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControlImpl.jcs
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControlImpl.jcs?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControlImpl.jcs (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControlImpl.jcs Thu May 5 21:48:11 2005
@@ -9,54 +9,30 @@
/**
* An impl of HelloControl.
- * By default, control impl is single thread.
- *
- * Test objective: method1 and method2 on same instance should
- * inter-lock each other when invoked by different thread.
- *
+ * This impl is multi-threaded
*/
@ControlImplementation
@Threading(ThreadingPolicy.MULTI_THREADED)
public class MultiThreadControlImpl implements MultiThreadControl, java.io.Serializable
{
- private long lastAccess=0;
+ private long counter=0;
+ private boolean marker=false;
- public long method1()
- {
- Date now=new Date();
- if (lastAccess==0)
- lastAccess=now.getTime();
-
- try{
- Thread.sleep(MultiThreadControl.EXPECTED_DELAY);
- }
- catch(InterruptedException e){
- }
-
- Date nowAgain=new Date();
-
- long l=nowAgain.getTime()-lastAccess;
- lastAccess=nowAgain.getTime();
- return l;
- }
- public long method2()
- {
- Date now=new Date();
- if (lastAccess==0)
- lastAccess=now.getTime();
+ public long doSlowIncrement(boolean isBlocker){
- try{
- Thread.sleep(MultiThreadControl.EXPECTED_DELAY);
- }
- catch(InterruptedException e){
+ if(isBlocker){
+ marker=true;
+ while(marker){
+ counter++;
+ try{Thread.currentThread().sleep(200);}
+ catch(InterruptedException e){e.printStackTrace();}
+ }
+ return counter;
+ }
+ else{
+ marker=false;
+ return counter;
+ }
}
-
- Date nowAgain=new Date();
-
- long l=nowAgain.getTime()-lastAccess;
- lastAccess=nowAgain.getTime();
- return l;
- }
-
}
Modified: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java (original)
+++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java Thu May 5 21:48:11 2005
@@ -11,9 +11,8 @@
{
public final static int LOOPS=20;
private MultiThreadControlBean myControl;
- private String method2invoke="";
- private long records[]=new long[LOOPS];
-
+ private boolean role;
+ private long result=0;
public DriveMultiThread(String name){
super(name);
@@ -23,32 +22,15 @@
myControl=bean;
}
- public void setMethod(String str){
- method2invoke=str;
+ public void setRole(boolean isBlocker){
+ role=isBlocker;
}
public void run() {
-
- for(int i=0;i<LOOPS;i++){
- if(method2invoke.equals(MultiThreadControl.METHOD1))
- records[i]=myControl.method1();
- else if (method2invoke.equals(MultiThreadControl.METHOD2))
- records[i]=myControl.method2();
- }
-
+ result=myControl.doSlowIncrement(role);
}
- public Report analyseRecord(){
-
- Report report=new Report();
- report.setStatus(Report.FAIL);
- for(int i=0;i<LOOPS;i++){
- System.out.println(getName()+"<<<<<<<<"+records[i]);
- if (records[i]<MultiThreadControl.EXPECTED_DELAY){
- report.setStatus(Report.PASS);
- }
- }
- return report;
+ public long getResult(){
+ return result;
}
-
}
Modified: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread.java (original)
+++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread.java Thu May 5 21:48:11 2005
@@ -43,7 +43,7 @@
Report report=new Report();
report.setStatus(Report.PASS);
for(int i=0;i<LOOPS;i++){
- System.out.println(getName()+">>>>>>>>>>"+records[i]);
+ //System.out.println(getName()+">>>>>>>>>>"+records[i]);
if (records[i]<SingleThreadControl.EXPECTED_DELAY){
report.setStatus(Report.FAIL);
}
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java Thu May 5 21:48:11 2005
@@ -11,6 +11,7 @@
import org.apache.beehive.controls.test.driver.context.DriveServiceGetter;
import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Misc;
import org.apache.beehive.test.tools.milton.common.Report;
@@ -19,6 +20,16 @@
* A TestCase that tests accessing available services via control context.
* All tests on controls instantiated declaratively are deactivated until this feature is supported.
*/
+/** When a control is instantiated the web tier or a JWS, the Control runtime automatically associates
+ * it with the current active context.
+ * When a control is instantiated in the java test case, there is no active context.
+ * One approach is to use the TestBeanContext that gets used in other places...
+ * A TestBeanContext needs to be called to startContext before instantiating the control,
+ * then any newly instantiated control in the Java test will be associated with it.
+ */
+@Freq("detailed")
+@Status("inactive")
+@Misc("to be re-designed")
public class GetServiceTest extends TestCase
{
public GetServiceTest( String s ) { super( s ); }
@@ -37,8 +48,6 @@
* In java environment, this should be an instanceof ControlBeanContext
* The control is instantiated by declaration
*/
- @Freq("checkin")
- @Status("inactive")
public void testGetServiceFromContextByDeclaration() throws Exception
{
Report report=new Report();
@@ -56,7 +65,6 @@
* In java environment, this should be "NULL"
* The control is instantiated programmatically
*/
- @Freq("detailed")
public void testGetServiceFromContextByProgram() throws Exception
{
Report report=new Report();
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java Thu May 5 21:48:11 2005
@@ -52,7 +52,7 @@
BookControlBean book=(BookControlBean)java.beans.Beans.instantiate(
Thread.currentThread().getContextClassLoader() ,
"org.apache.beehive.controls.test.controls.property.constraint.BookControlBean");
-
+ /*
int count=0;
String coverlanguage=book.getCoverlanguage();
String contentlanguage=book.getContentlanguage();
@@ -67,6 +67,16 @@
if (count>1)
fail("AT_MOST_ONE is not enforced");
+ */
+ try{
+ book.setCoverlanguage("English");
+ book.setContentlanguage("French");
+ fail("AT_MOST_ONE is not enforced");
+ }
+ catch(Exception e){
+ e.printStackTrace();
+
+ }
}
public void testRule_EXACTLY_ONE()throws Exception{
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/CompositeTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/CompositeTest.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/CompositeTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/CompositeTest.java Thu May 5 21:48:11 2005
@@ -23,8 +23,6 @@
-
-@Freq("detailed")
public class CompositeTest extends TestCase
{
public CompositeTest( String s ) { super( s ); }
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java?rev=168520&r1=168519&r2=168520&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java Thu May 5 21:48:11 2005
@@ -22,9 +22,6 @@
import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
-
-
-@Freq("detailed")
public class MultiThreadTest extends TestCase
{
public MultiThreadTest( String s ) { super( s ); }
@@ -46,22 +43,23 @@
DriveMultiThread driver1=new DriveMultiThread("MultiThread-driver1");
driver1.setControl(sBean);
- driver1.setMethod(MultiThreadControl.METHOD1);
+ driver1.setRole(true);
DriveMultiThread driver2=new DriveMultiThread("MultiThread-driver2");
driver2.setControl(sBean);
- driver2.setMethod(MultiThreadControl.METHOD2);
+ driver2.setRole(false);
driver1.start();
+ try{Thread.currentThread().sleep(2000);}
+ catch(InterruptedException e){e.printStackTrace();}
driver2.start();
- try{Thread.sleep(MultiThreadControl.EXPECTED_DELAY*DriveMultiThread.LOOPS*2);}
- catch(InterruptedException e){}
+ try{Thread.currentThread().sleep(2000);}
+ catch(InterruptedException e){e.printStackTrace();}
- Report report1=driver1.analyseRecord();
- Report report2=driver2.analyseRecord();
+ long result=driver2.getResult();
- Assert.assertEquals(Report.PASS, report1.getStatus());
- Assert.assertEquals(Report.PASS, report2.getStatus());
+ if (!(result>0))
+ fail("The control is not multithreaded");
}
@Freq("checkin")
@@ -88,6 +86,4 @@
Assert.assertEquals(Report.PASS, report2.getStatus());
}
-
-
}