Thanks for taking the time to share some classes to help me. I downloaded
your jar and I had a look. The class utmj.tests.AllTests doesn't compile, so
I removed it. Unfortunately not all the other tests pass. Although all the
utmj.threaded.AllTests tests pass, the utmj.threaded.example.AllTests don't
Time: 20.229 There were 39 failures:
oundedBufferTest)junit.framework.AssertionFailedError: Buffer is empty
expected:<0> but was:<1>
<snipped for brevity>
FAILURES!!! Tests run: 72, Failures: 39, Errors: 0
(run with JUnit 3.7 on Windows NT, java 1.3)
I'm hesitant to look more closely into your code when the tests bundled with
it don't run.
> Sorry for not answering your particular questions on the topic and not
> referring to your example.
> What I want to provide is some code I have had in my drawer for some
> time. It basically consists of a few utility classes for testing in a
> multithreaded environment:
> - ThreadedTest: A decorator for running a test in a thread of its own.
> (More or less stolen from JUnitPerf)
> - MultiThreadedTest: A decorator which catches exceptions and test
> failures in spawned threads and makes the testcase fail.
> - ExceptionAssert: A helper class to test for expected exceptions in
> spawned threads.
> - RetriedAssert: A helper class to test for an assert
> condition up to a
> given time limit. (also stolen)
> - ConcurrentTestCase: A subclass of TestCase which provides
> some help in
> doing the kind of semi-deterministic testing which you want to do in
> your example. An example for using this class is also provided in a
> subpackage *.example. Therein you find a test suite for the
> BoundedBuffer example discussed in
> I just uploaded the code to the group's files area:
> Comments appreciated.