[jboss-cvs] JBossAS SVN: r81742 - in trunk/testsuite/src: resources/util and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 27 12:07:11 EST 2008


Author: adrian at jboss.org
Date: 2008-11-27 12:07:11 -0500 (Thu, 27 Nov 2008)
New Revision: 81742

Modified:
   trunk/testsuite/src/main/org/jboss/test/util/test/SchedulerUnitTestCase.java
   trunk/testsuite/src/resources/util/test-default-scheduler-service.xml
Log:
Make the SchedulerUnitTestCase more robust to timing issues

Modified: trunk/testsuite/src/main/org/jboss/test/util/test/SchedulerUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/util/test/SchedulerUnitTestCase.java	2008-11-27 16:52:36 UTC (rev 81741)
+++ trunk/testsuite/src/main/org/jboss/test/util/test/SchedulerUnitTestCase.java	2008-11-27 17:07:11 UTC (rev 81742)
@@ -21,10 +21,10 @@
  */
 package org.jboss.test.util.test;
 
-import java.net.URL;
 import java.util.Date;
+
+import javax.management.MBeanServerInvocationHandler;
 import javax.management.ObjectName;
-import javax.management.MBeanServerInvocationHandler;
 
 import org.jboss.test.JBossTestCase;
 import org.jboss.varia.scheduler.ScheduleManager;
@@ -127,36 +127,44 @@
 		 registered(scheduler1);
 		 registered(scheduler2);
 		 registered(manager1);
-		 check(ex1, 0, 0);
-		 check(ex2, 0, 0);
-		 check(ex3, 0, 0);
 
-		 Thread.sleep(1100); // NOW == one second
-		 check(ex1, 1, 0);
+		 Thread.sleep(2500); // Half of one period 
+		 check(ex1, 1, 0); // Only one
 		 check(ex2, 0, 0); // StartAtStartup is false
-		 check(ex3, 1, 2);
+		 check(ex3, 1, 2); // First of three
+		 
+		 // Sleep for the remainder of the period and start the other schedule
+		 Thread.sleep(2500);
 		 invoke(scheduler2, "startSchedule", null, null);
 
-		 Thread.sleep(400); // one period
+		 Thread.sleep(2500); // Half of one period
 		 check(ex1, 1, 0); // done
-		 check(ex2, 0, 0); // wait 500 more
-		 check(ex3, 2, 1); // last 
+		 check(ex2, 1, -1); // first
+		 check(ex3, 2, 1); // one more to go 
 
-		 Thread.sleep(500); // one period
+		 Thread.sleep(5000); // one period
 		 check(ex1, 1, 0); // done
-		 check(ex2, 1, -1); // first
+		 check(ex2, 2, -1); // second
 		 check(ex3, 3, 0); // done
 
-		 Thread.sleep(500); // one period
-		 check(ex2, 2, -1); // first
-		 invoke(scheduler2, "stopSchedule", new Object[] { Boolean.TRUE }, new String[] { boolean.class.getName() });
+		 Thread.sleep(5000); // one period
+         check(ex1, 1, 0); // done
+		 check(ex2, 3, -1); // third
+         check(ex3, 3, 0); // done
 
-		 Thread.sleep(500); // one period
-		 check(ex2, 2, -1); // no more
-		 invoke(scheduler2, "startSchedule", null, null);
+		 // Make sure the schedule stops
+         invoke(scheduler2, "stopSchedule", new Object[] { Boolean.TRUE }, new String[] { boolean.class.getName() });
+		 Thread.sleep(6000); // a bit more than one period
+         check(ex1, 1, 0); // done
+		 check(ex2, 3, -1); // no more
+         check(ex3, 3, 0); // done
 
-		 Thread.sleep(1001); // one period
-		 check(ex2, 3, -1); // restated
+		 // Test it restarts
+         invoke(scheduler2, "startSchedule", null, null);
+		 Thread.sleep(2500); // half of one period
+         check(ex1, 1, 0); // done
+		 check(ex2, 4, -1); // restated
+         check(ex3, 3, 0); // done
       }
       finally
       {

Modified: trunk/testsuite/src/resources/util/test-default-scheduler-service.xml
===================================================================
--- trunk/testsuite/src/resources/util/test-default-scheduler-service.xml	2008-11-27 16:52:36 UTC (rev 81741)
+++ trunk/testsuite/src/resources/util/test-default-scheduler-service.xml	2008-11-27 17:07:11 UTC (rev 81742)
@@ -31,7 +31,7 @@
       <attribute name="SchedulableMBean">test:name=SchedulableMBeanExample,instance=1</attribute>
       <attribute name="SchedulableMBeanMethod">hit( NOTIFICATION, DATE, REPETITIONS, SCHEDULER_NAME, java.lang.String )</attribute>
       <attribute name="InitialStartDate">NOW</attribute>
-      <attribute name="SchedulePeriod">500</attribute>
+      <attribute name="SchedulePeriod">5000</attribute>
       <attribute name="InitialRepetitions">1</attribute>
    </mbean>
 
@@ -46,7 +46,7 @@
       <attribute name="SchedulableMBean">test:name=SchedulableMBeanExample,instance=2</attribute>
       <attribute name="SchedulableMBeanMethod">hit( NOTIFICATION, DATE, REPETITIONS, SCHEDULER_NAME, java.lang.String )</attribute>
       <attribute name="InitialStartDate">NOW</attribute>
-      <attribute name="SchedulePeriod">500</attribute>
+      <attribute name="SchedulePeriod">5000</attribute>
       <attribute name="InitialRepetitions">-1</attribute>
    </mbean>
 
@@ -67,7 +67,7 @@
 	  <depends optional-attribute-name="TargetName">test:name=SchedulableMBeanExample,instance=3</depends>
       <attribute name="StartDate">NOW</attribute>
       <attribute name="Repetitions">3</attribute>
-      <attribute name="Period">500</attribute>
+      <attribute name="Period">5000</attribute>
    </mbean>
 
 </server>




More information about the jboss-cvs-commits mailing list