Author: jsong Date: Fri Jan 21 15:39:28 2005 New Revision: 125984 URL: http://svn.apache.org/viewcvs?view=rev&rev=125984 Log: Update tests for controls threading.
Added: 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/MultiThread2Control.java 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/SingleThread2Control.java incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2ControlImpl.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/DriveMultiThread2.java incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread2.java Modified: 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/SingleThreadControlImpl.jcs incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java Added: 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?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControl.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,17 @@ +package org.apache.beehive.controls.test.controls.threading; + +import org.apache.beehive.controls.api.bean.ControlInterface; + +/** + * A control interface with two methods declared. + * This control interface is designed to test threading model of + * control framework. + */ + [EMAIL PROTECTED] +public interface DefaultThreadControl +{ + + public int doGet(); + public void doSet(); +} Added: 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?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/DefaultThreadControlImpl.jcs Fri Jan 21 15:39:28 2005 @@ -0,0 +1,40 @@ +package org.apache.beehive.controls.test.controls.threading; + +import java.lang.Thread; +import java.lang.InterruptedException; +import java.util.Date; +import org.apache.beehive.controls.api.bean.ControlImplementation; +import org.apache.beehive.controls.api.bean.Threading; +import org.apache.beehive.controls.api.bean.ThreadingPolicy; + +/** + * An impl of DefaultThreadControl. + * + * Test objective: create an instance of this impl, have one thread + * invoke doGet, and another thread invoke doSet + * + */ [EMAIL PROTECTED] +public class DefaultThreadControlImpl implements DefaultThreadControl +{ + + public final static int LOOPS=100; + private int value=0; + + 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; + } + } + +} Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2Control.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2Control.java?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2Control.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,17 @@ +package org.apache.beehive.controls.test.controls.threading; + +import org.apache.beehive.controls.api.bean.ControlInterface; + +/** + * A control interface with two methods declared. + * This control interface is designed to test threading model of + * control framework. + */ + [EMAIL PROTECTED] +public interface MultiThread2Control +{ + + public int doGet(); + public void doSet(); +} Added: 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?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThread2ControlImpl.jcs Fri Jan 21 15:39:28 2005 @@ -0,0 +1,41 @@ +package org.apache.beehive.controls.test.controls.threading; + +import java.lang.Thread; +import java.lang.InterruptedException; +import java.util.Date; +import org.apache.beehive.controls.api.bean.ControlImplementation; +import org.apache.beehive.controls.api.bean.Threading; +import org.apache.beehive.controls.api.bean.ThreadingPolicy; + +/** + * An impl of MultiThread2Control. + * + * Test objective: create an instance of this impl, have one thread + * invoke doGet, and another thread invoke doSet + * + */ [EMAIL PROTECTED] [EMAIL PROTECTED](ThreadingPolicy.MULTI_THREADED) +public class MultiThread2ControlImpl implements MultiThread2Control +{ + + public final static int LOOPS=100; + private int value=0; + + 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; + } + } + +} 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?view=diff&rev=125984&p1=incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java&r1=125983&p2=incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/MultiThreadControl.java&r2=125984 ============================================================================== --- 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 Fri Jan 21 15:39:28 2005 @@ -13,7 +13,7 @@ { public final static String METHOD1="method1"; public final static String METHOD2="method2"; - public final static long EXPECTED_DELAY=10; + public final static long EXPECTED_DELAY=150; public long method1(); public long method2(); Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2Control.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2Control.java?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2Control.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,17 @@ +package org.apache.beehive.controls.test.controls.threading; + +import org.apache.beehive.controls.api.bean.ControlInterface; + +/** + * A control interface with two methods declared. + * This control interface is designed to test threading model of + * control framework. + */ + [EMAIL PROTECTED] +public interface SingleThread2Control +{ + + public int doGet(); + public void doSet(); +} Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2ControlImpl.jcs Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2ControlImpl.jcs?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThread2ControlImpl.jcs Fri Jan 21 15:39:28 2005 @@ -0,0 +1,41 @@ +package org.apache.beehive.controls.test.controls.threading; + +import java.lang.Thread; +import java.lang.InterruptedException; +import java.util.Date; +import org.apache.beehive.controls.api.bean.ControlImplementation; +import org.apache.beehive.controls.api.bean.Threading; +import org.apache.beehive.controls.api.bean.ThreadingPolicy; + +/** + * An impl of SignleThread2Control. + * + * Test objective: create an instance of this impl, have one thread + * invoke doGet, and another thread invoke doSet + * + */ [EMAIL PROTECTED] [EMAIL PROTECTED](ThreadingPolicy.SINGLE_THREADED) +public class SingleThread2ControlImpl implements SingleThread2Control +{ + + public final static int LOOPS=100; + private int value=0; + + 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; + } + } + +} 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?view=diff&rev=125984&p1=incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs&r1=125983&p2=incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/SingleThreadControlImpl.jcs&r2=125984 ============================================================================== --- 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 Jan 21 15:39:28 2005 @@ -4,7 +4,8 @@ import java.lang.InterruptedException; import java.util.Date; import org.apache.beehive.controls.api.bean.ControlImplementation; -//import org.apache.beehive.controls.api.bean.ThreadingModel; +import org.apache.beehive.controls.api.bean.Threading; +import org.apache.beehive.controls.api.bean.ThreadingPolicy; /** * An impl of HelloControl. @@ -15,6 +16,7 @@ * */ @ControlImplementation [EMAIL PROTECTED](ThreadingPolicy.SINGLE_THREADED) public class SingleThreadControlImpl implements SingleThreadControl { private long lastAccess=0; Added: 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?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveDefaultThread.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,67 @@ +package org.apache.beehive.controls.test.driver.threading; + + +import java.lang.Integer; +import java.lang.Thread; +import java.lang.InterruptedException; +import org.apache.beehive.controls.test.controls.threading.DefaultThreadControl; +import org.apache.beehive.controls.test.controls.threading.DefaultThreadControlBean; + +import org.apache.beehive.test.tools.milton.common.Report; + +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 DefaultThreadControlBean myControl; + private int records[]=new int[LOOPS]; + + public DriveDefaultThread(String name){ + super(name); + } + + public void setControl(DefaultThreadControlBean bean){ + 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 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; + } + + } + + return report; + } + +} 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?view=diff&rev=125984&p1=incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java&r1=125983&p2=incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread.java&r2=125984 ============================================================================== --- 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 Fri Jan 21 15:39:28 2005 @@ -9,7 +9,7 @@ public class DriveMultiThread extends Thread { - public final static int LOOPS=3; + public final static int LOOPS=20; private MultiThreadControlBean myControl; private String method2invoke=""; private long records[]=new long[LOOPS]; Added: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread2.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread2.java?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveMultiThread2.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,65 @@ +package org.apache.beehive.controls.test.driver.threading; + + +import java.lang.Integer; +import java.lang.Thread; +import java.lang.InterruptedException; +import org.apache.beehive.controls.test.controls.threading.MultiThread2Control; +import org.apache.beehive.controls.test.controls.threading.MultiThread2ControlBean; + +import org.apache.beehive.test.tools.milton.common.Report; + +public class DriveMultiThread2 extends Thread +{ + + public final static String GETTER="DriveMultiThread2-getter"; + public final static String SETTER="DriveMultiThread2-setter"; + public final static int LOOPS=95; + + private MultiThread2ControlBean myControl; + private int records[]=new int[LOOPS]; + + public DriveMultiThread2(String name){ + super(name); + } + + public void setControl(MultiThread2ControlBean bean){ + 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 Report analyseRecord(){ + + Report report=new Report(); + report.setStatus(Report.FAIL); + report.setMessage("No value in the middle is found."); + + for(int i=0;i<LOOPS;i++){ + + if ((records[i]>0)&&(records[i]<99)){ + report.setStatus(Report.PASS); + report.setMessage("A value in the middle is found:"+Integer.toString(records[i])); + break; + } + } + return report; + } +} \ No newline at end of file Added: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread2.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread2.java?view=auto&rev=125984 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/threading/DriveSingleThread2.java Fri Jan 21 15:39:28 2005 @@ -0,0 +1,67 @@ +package org.apache.beehive.controls.test.driver.threading; + + +import java.lang.Integer; +import java.lang.Thread; +import java.lang.InterruptedException; +import org.apache.beehive.controls.test.controls.threading.SingleThread2Control; +import org.apache.beehive.controls.test.controls.threading.SingleThread2ControlBean; + +import org.apache.beehive.test.tools.milton.common.Report; + +public class DriveSingleThread2 extends Thread +{ + + public final static String GETTER="DriveSingleThread2-getter"; + public final static String SETTER="DriveSingleThread2-setter"; + public final static int LOOPS=95; + + private SingleThread2ControlBean myControl; + private int records[]=new int[LOOPS]; + + public DriveSingleThread2(String name){ + super(name); + } + + public void setControl(SingleThread2ControlBean bean){ + 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 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; + } + + } + + return report; + } + +} 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?view=diff&rev=125984&p1=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java&r1=125983&p2=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/MultiThreadTest.java&r2=125984 ============================================================================== --- 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 Fri Jan 21 15:39:28 2005 @@ -12,7 +12,10 @@ import org.apache.beehive.controls.api.bean.ControlBean; import org.apache.beehive.controls.test.controls.threading.MultiThreadControl; import org.apache.beehive.controls.test.controls.threading.MultiThreadControlBean; +import org.apache.beehive.controls.test.controls.threading.MultiThread2Control; +import org.apache.beehive.controls.test.controls.threading.MultiThread2ControlBean; import org.apache.beehive.controls.test.driver.threading.DriveMultiThread; +import org.apache.beehive.controls.test.driver.threading.DriveMultiThread2; import org.apache.beehive.test.tools.milton.common.Report; import org.apache.beehive.test.tools.mantis.annotations.tch.Freq; @@ -51,7 +54,7 @@ driver1.start(); driver2.start(); - try{Thread.sleep(MultiThreadControl.EXPECTED_DELAY*2+5);} + try{Thread.sleep(MultiThreadControl.EXPECTED_DELAY*DriveMultiThread.LOOPS*2);} catch(InterruptedException e){} Report report1=driver1.analyseRecord(); @@ -60,5 +63,31 @@ Assert.assertEquals(Report.PASS, report1.getStatus()); Assert.assertEquals(Report.PASS, report2.getStatus()); } + + @Freq("checkin") + public void testMultiThread2() throws Exception + { + + MultiThread2ControlBean sBean=(MultiThread2ControlBean)java.beans.Beans.instantiate( + Thread.currentThread().getContextClassLoader() , + "org.apache.beehive.controls.test.controls.threading.MultiThread2ControlBean"); + + DriveMultiThread2 driver1=new DriveMultiThread2(DriveMultiThread2.SETTER); + driver1.setControl(sBean); + DriveMultiThread2 driver2=new DriveMultiThread2(DriveMultiThread2.GETTER); + driver2.setControl(sBean); + + driver1.start(); + driver2.start(); + + try{Thread.sleep(1000);} + catch(InterruptedException e){} + + Report report1=driver1.analyseRecord(); + Report report2=driver2.analyseRecord(); + + Assert.assertEquals(Report.PASS, report2.getStatus()); + } + } 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?view=diff&rev=125984&p1=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java&r1=125983&p2=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/threading/SingleThreadTest.java&r2=125984 ============================================================================== --- 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 Jan 21 15:39:28 2005 @@ -10,9 +10,15 @@ import junit.framework.TestCase; import org.apache.beehive.controls.api.bean.ControlBean; +import org.apache.beehive.controls.test.controls.threading.DefaultThreadControl; +import org.apache.beehive.controls.test.controls.threading.DefaultThreadControlBean; import org.apache.beehive.controls.test.controls.threading.SingleThreadControl; import org.apache.beehive.controls.test.controls.threading.SingleThreadControlBean; +import org.apache.beehive.controls.test.controls.threading.SingleThread2Control; +import org.apache.beehive.controls.test.controls.threading.SingleThread2ControlBean; +import org.apache.beehive.controls.test.driver.threading.DriveDefaultThread; import org.apache.beehive.controls.test.driver.threading.DriveSingleThread; +import org.apache.beehive.controls.test.driver.threading.DriveSingleThread2; import org.apache.beehive.test.tools.milton.common.Report; import org.apache.beehive.test.tools.mantis.annotations.tch.Freq; @@ -28,6 +34,30 @@ public void setUp() { } + @Freq("detailed") + public void testDefaultThread() throws Exception + { + + DefaultThreadControlBean sBean=(DefaultThreadControlBean)java.beans.Beans.instantiate( + Thread.currentThread().getContextClassLoader() , + "org.apache.beehive.controls.test.controls.threading.DefaultThreadControlBean"); + + DriveDefaultThread driver1=new DriveDefaultThread(DriveDefaultThread.SETTER); + driver1.setControl(sBean); + DriveDefaultThread driver2=new DriveDefaultThread(DriveDefaultThread.GETTER); + driver2.setControl(sBean); + + driver1.start(); + driver2.start(); + + try{Thread.sleep(1000);} + catch(InterruptedException e){} + + Report report1=driver1.analyseRecord(); + Report report2=driver2.analyseRecord(); + + Assert.assertEquals(Report.PASS, report2.getStatus()); + } /** * Makes an instance of a single threaded control, passes it to two different @@ -58,6 +88,31 @@ Report report2=driver2.analyseRecord(); Assert.assertEquals(Report.PASS, report1.getStatus()); + Assert.assertEquals(Report.PASS, report2.getStatus()); + } + + @Freq("checkin") + public void testSingleThread2() throws Exception + { + + SingleThread2ControlBean sBean=(SingleThread2ControlBean)java.beans.Beans.instantiate( + Thread.currentThread().getContextClassLoader() , + "org.apache.beehive.controls.test.controls.threading.SingleThread2ControlBean"); + + DriveSingleThread2 driver1=new DriveSingleThread2(DriveSingleThread2.SETTER); + driver1.setControl(sBean); + DriveSingleThread2 driver2=new DriveSingleThread2(DriveSingleThread2.GETTER); + driver2.setControl(sBean); + + driver1.start(); + driver2.start(); + + try{Thread.sleep(1000);} + catch(InterruptedException e){} + + Report report1=driver1.analyseRecord(); + Report report2=driver2.analyseRecord(); + Assert.assertEquals(Report.PASS, report2.getStatus()); }
