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());
     }
-
-
 }