[jboss-svn-commits] JBL Code SVN: r27943 - in labs/jbosstm/trunk/ArjunaCore/arjuna: tests and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jul 13 05:34:56 EDT 2009
Author: adinn
Date: 2009-07-13 05:34:55 -0400 (Mon, 13 Jul 2009)
New Revision: 27943
Added:
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/objectstore.txt
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/reaper.txt
Modified:
labs/jbosstm/trunk/ArjunaCore/arjuna/build.xml
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest2.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest2.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest2.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/ObjectStoreTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/reaper/ReaperMonitorTest.java
Log:
modified objectstore tests so they actually use the store specified in Environment.OBJECTSTORE_TYPE by setting Environment.TRANSACTION_LOG to ON, added byteman scripts for several of the reaper and objectstore tests and modified build script to run these tests using the script
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/build.xml 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/build.xml 2009-07-13 09:34:55 UTC (rev 27943)
@@ -38,7 +38,6 @@
</target>
<target name="run.tests">
-
<run.tests.macro>
<tests>
<fileset dir="tests/classes" includes="**/*.java">
@@ -57,10 +56,38 @@
<!-- ReaperTestCase2 and 3 have timing issues - adinn to fix - JBTM-567 -->
<exclude name="**/ReaperTestCase2.java"/>
<exclude name="**/ReaperTestCase3.java"/>
+ <!-- tests which have been modified to run using byteman scripts -->
+ <exclude name="**/reaper/ReaperMonitorTest.java"/>
+ <exclude name="**/objectstore/LogStoreRecoveryTest.java"/>
+ <exclude name="**/objectstore/LogStoreTest2.java"/>
</fileset>
</tests>
</run.tests.macro>
-
+ <!-- reaper tests run using script reaper.txt -->
+ <run.tests.macro script="reaper.txt">
+ <tests>
+ <fileset dir="tests/classes">
+ <include name="**/reaper/ReaperMonitorTest.java"/>
+ </fileset>
+ </tests>
+ <!--
+ <additional.jvmargs>
+ <jvmarg value="-Dorg.jboss.byteman.dump.generated.classes"/>
+ <jvmarg value="-Dorg.jboss.byteman.dump.generated.classes.directory=dump"/>
+ <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
+ </additional.jvmargs>
+ -->
+ </run.tests.macro>
+ <!-- object store tests run using script objectstore.txt -->
+ <run.tests.macro script="objectstore.txt">
+ <tests>
+ <fileset dir="tests/classes">
+ <include name="**/objectstore/LogStoreRecoveryTest.java"/>
+ <include name="**/objectstore/LogStoreTest2.java"/>
+ </fileset>
+ </tests>
+ </run.tests.macro>
</target>
</project>
Added: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/objectstore.txt
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/objectstore.txt (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/objectstore.txt 2009-07-13 09:34:55 UTC (rev 27943)
@@ -0,0 +1,96 @@
+########################################################################
+#
+# byteman script used to ensure that core tests can sequence various
+# operations which normally depend upon waiting around for a background
+# thread to be scheduled.
+#
+
+#########################################################################
+# 3 rules to stop the log purger from proceeding until it is signalled
+# at a suitable point during a test. the log purger also signals in
+# order to allow the test code to detect that a purge has completed
+# should it wish to do so
+
+# rule to ensure the transaction log purger uses a very small timeout
+# so that it is ready to proceed straight away when signalled
+
+RULE override TRANSACTION_LOG_PURGE_TIME
+CLASS com.arjuna.ats.internal.arjuna.objectstore.LogStore
+METHOD <clinit>
+AT ENTRY
+BIND NOTHING
+IF TRUE
+DO System.setProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_LOG_PURGE_TIME, "100")
+ENDRULE
+
+# rule to ensure that the LogStore does not proceed to purge any
+# logs until the test signals it do so
+
+RULE delay log purge
+CLASS com.arjuna.ats.internal.arjuna.objectstore.LogPurger
+METHOD run()
+AT CALL writeRemovalEntries
+BIND NOTHING
+IF TRUE
+DO debug("LogStore waiting before purge"),
+ waitFor("LogStore.purge"),
+ debug("LogStore proceeding with purge")
+ENDRULE
+
+# matching rule to ensure that the LogStore signals any thread which
+# is waiting for it to finish purging the logs
+
+RULE done log purge
+CLASS com.arjuna.ats.internal.arjuna.objectstore.LogPurger
+METHOD run()
+AFTER CALL truncateLogs
+BIND NOTHING
+IF TRUE
+DO debug("Signalling purge complete"),
+ signalWake("LogStore.purged", true),
+ debug("Signalled purge complete")
+ENDRULE
+
+#########################################################################
+#
+# rules appropriate to specific tests
+#
+# n.b. several of the test don't want the purger to run. this happens by
+# default since the purger hist the waitFor and never gets signalled
+#
+
+#########################################################################
+# LogStoreRecoveryTest wants to delay the purge until it is ready for it
+# and then delay proceeding with the test until the purge has actually
+# happened
+
+RULE log store recovery test allow purge to proceed
+CLASS com.hp.mwtests.ts.arjuna.objectstore.LogStoreRecoveryTest
+METHOD test()
+AT CALL InputObjectState.<init>
+BIND NOTHING
+IF TRUE
+DO debug("Signalling purge to proceed"),
+ signalWake("LogStore.purge", true),
+ debug("Signalled purge to proceed -- waiting for completion"),
+ waitFor("LogStore.purged"),
+ debug("Purge completed")
+ENDRULE
+
+#########################################################################
+# LogStoreTest2 wants to delay the purge until it is ready for it
+# and then delay proceeding with the test until the purge has actually
+# happened
+
+RULE log store recovery test allow purge to proceed
+CLASS com.hp.mwtests.ts.arjuna.objectstore.LogStoreTest2
+METHOD test()
+AT CALL InputObjectState.<init>
+BIND NOTHING
+IF TRUE
+DO debug("Signalling purge to proceed"),
+ signalWake("LogStore.purge", true),
+ debug("Signalled purge to proceed -- waiting for completion"),
+ waitFor("LogStore.purged"),
+ debug("Purge completed")
+ENDRULE
Added: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/reaper.txt
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/reaper.txt (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/byteman-scripts/reaper.txt 2009-07-13 09:34:55 UTC (rev 27943)
@@ -0,0 +1,76 @@
+########################################################################
+#
+# byteman script used to ensure that core transaction reaper tests can
+# sequence various operations which normally depend upon waiting around
+# for the reaper thread and reaper worker thread to be scheduled.
+#
+
+#########################################################################
+# rules to control progress of the transaction reaper thread
+#
+
+# rule to pause the reaper thread inside its check method before it processes
+# a timed out entry. this rule also counts how many times this point has been
+# reached allowing other rules to ensure that they know which reapable is being
+# processes. It also signals before waiting so that other rules can delay until
+# this point is reached.
+
+RULE pause transaction reaper
+CLASS com.arjuna.ats.arjuna.coordinator.TransactionReaper
+METHOD check
+AT READ _status
+BIND reaper: TransactionReaper = $0,
+ element : ReaperElement = $e
+IF isRendezvous(reaper, 2)
+DO createCounter(element, 0)
+ rendezvous(reaper)
+ENDRULE
+
+#########################################################################
+# rules to control progress of the transaction reaper worker threads
+#
+
+# this rule makes sure the reaper worker thread pauses before starting
+# to process a queued reapable. this rule alsoadds a counter associated
+# with the reapable which is incremented as the status of the reapable
+# changes to reflect the new state.
+
+RULE pause transaction reaper worker
+CLASS com.arjuna.ats.arjuna.coordinator.TransactionReaper
+METHOD doCancellations
+AT READ _control
+BIND element : ReaperElement = $e,
+ worker : Thread = element._worker
+IF isRendezvous(worker, 2)
+DO incrementCounter(worker),
+ rendezvous(worker, 2)
+ENDRULE
+
+#########################################################################
+#
+# rules appropriate to specific tests
+
+#########################################################################
+# ReaperMonitorTest wants remote control of the reaper thread
+#
+
+RULE ReaperMonitorTest reaper remote control
+CLASS com.hp.mwtests.ts.arjuna.reaper.ReaperMonitorTest
+METHOD test()
+AT ENTRY
+BIND NOTHING
+IF TRUE
+DO createRendezvous($reaper, 2)
+ENDRULE
+
+# ReaperMonitorTest wants to delay the reaper check until it has inserted
+# a reapable
+
+RULE ReaperMonitorTest unlatch reaper thread
+CLASS com.hp.mwtests.ts.arjuna.reaper.ReaperMonitorTest
+METHOD test()
+AFTER CALL TransactionReaper.insert
+BIND NOTHING
+IF TRUE
+DO rendezvous($reaper)
+ENDRULE
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -49,8 +49,10 @@
{
System.setProperty(Environment.COMMIT_ONE_PHASE, "NO");
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
System.setProperty(Environment.TRANSACTION_LOG_SYNC_REMOVAL, "false");
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
+ // the byteman script will enforce this
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
AtomicAction A = new AtomicAction();
Uid txId = A.get_uid();
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest2.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreReactivationTest2.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -49,8 +49,10 @@
{
System.setProperty(Environment.COMMIT_ONE_PHASE, "NO");
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
System.setProperty(Environment.TRANSACTION_LOG_SYNC_REMOVAL, "true");
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
+ // the byteman script will enforce this
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
AtomicAction A = new AtomicAction();
Uid txId = A.get_uid();
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -48,7 +48,8 @@
public void test()
{
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
ObjectStore objStore = TxControl.getStore();
final int numberOfTransactions = 1000;
@@ -86,18 +87,20 @@
ex.printStackTrace();
}
}
-
+ /*
try {
+ */
/*
* Give the purger thread a chance to run and delete
* the entries we've "removed" (really only marked as
* being removable.)
*/
-
+ /*
Thread.sleep(12000);
}
catch (final Exception ex) {
}
+ */
/*
* Now get a list of entries to work on.
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest2.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest2.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -81,8 +81,10 @@
System.setProperty(Environment.COMMIT_ONE_PHASE, "NO");
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
System.setProperty(Environment.TRANSACTION_LOG_SYNC_REMOVAL, "false");
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
+ // the byteman script will enforce this
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "1000000"); // essentially infinite
TestWorker[] workers = new TestWorker[threads];
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -47,6 +47,7 @@
public void test()
{
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
ObjectStore objStore = TxControl.getStore();
final int numberOfTransactions = 1000;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -47,7 +47,9 @@
public void test()
{
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
+ // the byteman script will manage this
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
ObjectStore objStore = TxControl.getStore();
final int numberOfTransactions = 1000;
@@ -75,16 +77,19 @@
ex.printStackTrace();
}
+ /*
try {
+ */
/*
* Give the purger thread a chance to run and delete
* the entry.
*/
-
+ /*
Thread.sleep(12000);
}
catch (final Exception ex) {
}
+ */
InputObjectState ios = new InputObjectState();
boolean passed = false;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -98,8 +98,10 @@
System.setProperty(Environment.COMMIT_ONE_PHASE, "NO");
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
- System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
+ // the byteman script will manage this
+ //System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
StressWorker[] workers = new StressWorker[threads];
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest2.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest2.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -51,6 +51,7 @@
{
System.setProperty(Environment.COMMIT_ONE_PHASE, "NO");
System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
System.setProperty(Environment.TRANSACTION_LOG_SIZE, "10000");
int timeLimit = 4; // hours
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/ObjectStoreTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/ObjectStoreTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/ObjectStoreTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -55,6 +55,7 @@
ObjectName objName = new ObjectName("JNS:myname");
objName.setClassNameAttribute(Environment.OBJECTSTORE_TYPE, imple);
+ System.setProperty(Environment.TRANSACTION_LOG, "ON");
objName.setStringAttribute(Environment.LOCALOSROOT, localOSRoot);
objName.setStringAttribute(Environment.OBJECTSTORE_DIR, objectStoreDir);
objName.setStringAttribute(Environment.OBJECTSTORE_SHARE, shareStatus);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/reaper/ReaperMonitorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/reaper/ReaperMonitorTest.java 2009-07-13 09:09:07 UTC (rev 27942)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/reaper/ReaperMonitorTest.java 2009-07-13 09:34:55 UTC (rev 27943)
@@ -33,17 +33,35 @@
{
class DummyMonitor implements ReaperMonitor
{
- public void rolledBack (Uid txId)
+ public synchronized void rolledBack (Uid txId)
{
success = true;
+ notify();
+ notified = true;
}
- public void markedRollbackOnly (Uid txId)
+ public synchronized void markedRollbackOnly (Uid txId)
{
success = false;
+ notify();
+ notified = true;
}
public boolean success = false;
+ public boolean notified = false;
+
+ public synchronized boolean checkSucceeded(int msecsTimeout)
+ {
+ if (!notified) {
+ try {
+ wait(msecsTimeout);
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ }
+
+ return success;
+ }
}
@Test
@@ -59,29 +77,14 @@
A.begin();
+ /*
+ * the reaper byteman script will make sure we synchronize with the reaper after this call
+ * just before it schedules the reapable for processing. the timout in the check method is
+ * there in case something is really wrong and the reapabel does not get cancelled
+ */
reaper.insert(A, 1);
-
- try
- {
- Thread.sleep(1100);
- }
- catch (final Throwable ex)
- {
- }
- reaper.check();
-
- try
- {
- Thread.sleep(500);
- }
- catch (final Throwable ex)
- {
- }
-
- reaper.check();
-
- assertTrue(listener.success);
+ assertTrue(listener.checkSucceeded(30 * 1000));
}
public static boolean success = false;
More information about the jboss-svn-commits
mailing list