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 14:54:58 UTC
svn commit: r168597 - 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/property/
units/org/apache/beehive/controls/test/java/threading/
Author: jsong
Date: Fri May 6 05:54:57 2005
New Revision: 168597
URL: http://svn.apache.org/viewcvs?rev=168597&view=rev
Log:
Update tests on single-threaded controls.
Modified:
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControl.java
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs
incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveDefaultThread.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/property/ConstraintTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java Fri May 6 05:54:57 2005
@@ -11,7 +11,5 @@
@ControlInterface
public interface DefaultThreadControl
{
-
- public int doGet();
- public void doSet();
+ public long doSlowIncrement(boolean isBlocker);
}
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs Fri May 6 05:54:57 2005
@@ -18,23 +18,24 @@
public class DefaultThreadControlImpl implements DefaultThreadControl, java.io.Serializable
{
- public final static int LOOPS=100;
- private int value=0;
+ private long counter=0;
+ private boolean marker=false;
- public int doGet()
- {
- 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;
+ public long doSlowIncrement(boolean isBlocker){
+
+ if(isBlocker){
+ marker=true;
+ while(marker){
+ counter++;
+ try{Thread.currentThread().sleep(200);}
+ catch(InterruptedException e){e.printStackTrace();}
+ }
+ return counter;
+ }
+ else{
+ marker=false;
+ return counter;
+ }
}
- }
-
}
Modified: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControl.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControl.java?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControl.java (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControl.java Fri May 6 05:54:57 2005
@@ -11,10 +11,5 @@
@ControlInterface
public interface SingleThreadControl
{
- public final static String METHOD1="method1";
- public final static String METHOD2="method2";
- public final static long EXPECTED_DELAY=100;
-
- 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/SingleThreadControlImpl.jcs
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs (original)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs Fri May 6 05:54:57 2005
@@ -9,56 +9,29 @@
/**
* 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.
- *
*/
@ControlImplementation
@Threading(ThreadingPolicy.SINGLE_THREADED)
public class SingleThreadControlImpl implements SingleThreadControl, 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(SingleThreadControl.EXPECTED_DELAY);
- }
- catch(InterruptedException e){
- e.printStackTrace();
- }
-
- 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(SingleThreadControl.EXPECTED_DELAY);
- }
- catch(InterruptedException e){
- e.printStackTrace();
+ 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/DriveDefaultThread.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveDefaultThread.java?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveDefaultThread.java (original)
+++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveDefaultThread.java Fri May 6 05:54:57 2005
@@ -12,12 +12,9 @@
public class DriveDefaultThread extends Thread
{
- public final static String GETTER="DriveDefaultThread-getter";
- public final static String SETTER="DriveDefaultThread-setter";
- public final static int LOOPS=95;
-
+ private boolean role;
+ private long result=0;
private DefaultThreadControlBean myControl;
- private int records[]=new int[LOOPS];
public DriveDefaultThread(String name){
super(name);
@@ -27,41 +24,15 @@
myControl=bean;
}
-
- public void run() {
-
- //int j=0;
- if (getName().equals(GETTER)){
-
- for(int i=0;i<LOOPS;i++){
-
- for(int j=0;j<900000;j++){
- String str="new String";
- }
- records[i]=myControl.doGet();
- //System.out.println(getName()+">>>>>"+records[i]+"<<<<<");
- }
- }
- else
- myControl.doSet();
+ public void setRole(boolean isBlocker){
+ role=isBlocker;
}
- public Report analyseRecord(){
-
- Report report=new Report();
- report.setStatus(Report.PASS);
-
- for(int i=0;i<LOOPS;i++){
-
- if ((records[i]>0)&&(records[i]<99)){
- report.setStatus(Report.FAIL);
- report.setMessage("getter gets a value in the middle:"+Integer.toString(records[i]));
- break;
- }
-
- }
+ public void run() {
+ result=myControl.doSlowIncrement(role);
+ }
- 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=168597&r1=168596&r2=168597&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 Fri May 6 05:54:57 2005
@@ -9,11 +9,9 @@
public class DriveSingleThread extends Thread
{
- public final static int LOOPS=10;
private SingleThreadControlBean myControl;
- private String method2invoke="";
- private long records[]=new long[LOOPS];
-
+ private boolean role;
+ private long result=0;
public DriveSingleThread(String name){
super(name);
@@ -23,32 +21,15 @@
myControl=bean;
}
- public void setMethod(String str){
- method2invoke=str;
+ public void setRole(boolean isBlocker){
+ role=isBlocker;
}
public void run() {
- //System.out.println("DONE! " + getName());
- for(int i=0;i<LOOPS;i++){
- if(method2invoke.equals(SingleThreadControl.METHOD1))
- records[i]=myControl.method1();
- else if (method2invoke.equals(SingleThreadControl.METHOD2))
- records[i]=myControl.method2();
- }
-
+ result=myControl.doSlowIncrement(role);
}
- public Report analyseRecord(){
-
- Report report=new Report();
- report.setStatus(Report.PASS);
- for(int i=0;i<LOOPS;i++){
- //System.out.println(getName()+">>>>>>>>>>"+records[i]);
- if (records[i]<SingleThreadControl.EXPECTED_DELAY){
- report.setStatus(Report.FAIL);
- }
- }
- return report;
+ public long getResult(){
+ return result;
}
-
}
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=168597&r1=168596&r2=168597&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 Fri May 6 05:54:57 2005
@@ -17,7 +17,7 @@
-@Freq("detailed")
+
public class ConstraintTest extends TestCase
{
public ConstraintTest( String s ) { super( s ); }
@@ -31,7 +31,7 @@
{
return new TestBeanContext();
}
-
+ @Freq("detailed")
public void testRule_AT_LEAST_ONE()throws Exception{
Report report=new Report();
@@ -45,7 +45,7 @@
if ((usprice==null)&&(caprice==null)&&(euprice==null))
fail("Rule AT_LEAST_ONE is not enforced");
}
-
+ @Freq("detailed")
public void testRule_AT_MOST_ONE()throws Exception{
Report report=new Report();
@@ -70,15 +70,27 @@
*/
try{
book.setCoverlanguage("English");
- book.setContentlanguage("French");
- fail("AT_MOST_ONE is not enforced");
+ book.setAuthorlanguage("Spanish");
+
+ String cover=book.getCoverlanguage();
+ String author=book.getAuthorlanguage();
+
+ System.out.println("******************************************************");
+ System.out.println(cover);
+ System.out.println(author);
+ System.out.println("******************************************************");
+
+ Assert.assertEquals("English",book.getCoverlanguage());
+ Assert.assertNull(book.getAuthorlanguage());
+
}
catch(Exception e){
e.printStackTrace();
+ fail(e.getMessage());
}
}
-
+ @Freq("detailed")
public void testRule_EXACTLY_ONE()throws Exception{
Report report=new Report();
@@ -101,7 +113,7 @@
if (!(count==1))
fail("EXACTLY_ONE is not enforced");
}
-
+ @Freq("detailed")
public void testRule_ALL_IF_ANY()throws Exception{
Report report=new Report();
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java?rev=168597&r1=168596&r2=168597&view=diff
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java Fri May 6 05:54:57 2005
@@ -42,21 +42,25 @@
Thread.currentThread().getContextClassLoader() ,
"org.apache.beehive.controls.test.controls.threading.DefaultThreadControlBean");
- DriveDefaultThread driver1=new DriveDefaultThread(DriveDefaultThread.SETTER);
+ DriveDefaultThread driver1=new DriveDefaultThread("DefaultThread-driver1");
driver1.setControl(sBean);
- DriveDefaultThread driver2=new DriveDefaultThread(DriveDefaultThread.GETTER);
+ driver1.setRole(true);
+ DriveDefaultThread driver2=new DriveDefaultThread("DefaultThread-driver2");
driver2.setControl(sBean);
+ driver2.setRole(false);
driver1.start();
+ try{Thread.currentThread().sleep(2000);}
+ catch(InterruptedException e){e.printStackTrace();}
driver2.start();
- try{Thread.sleep(1000);}
- 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, report2.getStatus());
+ if (result>0)
+ fail("The control is not singlethreaded");
}
/**
@@ -71,24 +75,25 @@
Thread.currentThread().getContextClassLoader() ,
"org.apache.beehive.controls.test.controls.threading.SingleThreadControlBean");
- DriveSingleThread driver1=new DriveSingleThread("SigleThread-driver1");
+ DriveSingleThread driver1=new DriveSingleThread("SingleThread-driver1");
driver1.setControl(sBean);
- driver1.setMethod(SingleThreadControl.METHOD1);
+ driver1.setRole(true);
DriveSingleThread driver2=new DriveSingleThread("SingleThread-driver2");
driver2.setControl(sBean);
- driver2.setMethod(SingleThreadControl.METHOD2);
+ driver2.setRole(false);
driver1.start();
+ try{Thread.currentThread().sleep(2000);}
+ catch(InterruptedException e){e.printStackTrace();}
driver2.start();
- try{Thread.sleep(SingleThreadControl.EXPECTED_DELAY*DriveSingleThread.LOOPS*3);}
- 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 singlethreaded");
}
@Freq("checkin")