- A Concurrent Affair - https://www.concurrentaffair.org -

JUnit 3.8.1 Modified

I just quickly moved over the changes from my 4.0-based source to the JUnit 3.8.2 source. I found that, when being restricted to the Java 1.4 API, debugging information is a lot harder to get. I can’t find stack traces of the threads involved, for example.

When I ran the DrJava unit test suite with the modified version of JUnit 3.8.2, I got these results:

Testsuite: edu.rice.cs.drjava.model.GlobalModelJUnitTest
Tests run: 14, Failures: 1, Errors: 0, Time elapsed: 18.958 sec

Testcase: testJUnitAllWithErrors
(edu.rice.cs.drjava.model.GlobalModelJUnitTest):
FAILED
junit.framework.AssertionFailedError:
test case has one error reported expected:
<2> but was:<1>


Testsuite: edu.rice.cs.drjava.model.MultiThreadedTestCaseTest
Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.011 sec

Testcase: testUncaught
(edu.rice.cs.drjava.model.MultiThreadedTestCaseTest):
FAILED
junit.framework.AssertionFailedError:
expected:<1> but was:<0>


Testsuite: edu.rice.cs.drjava.model.junit.JUnitErrorModelTest
Tests run: 4, Failures: 1, Errors: 1, Time elapsed: 6.293 sec

Testcase: testErrorsArrayInOrder
(edu.rice.cs.drjava.model.junit.JUnitErrorModelTest):
FAILED
junit.framework.AssertionFailedError:
the test results should have one error and one failure 1 expected:
<2> but was:<1>


Testcase: testVerifyErrorHandledCorrectly
(edu.rice.cs.drjava.model.junit.JUnitErrorModelTest):
Caused an ERROR
edu.rice.cs.util.UnexpectedException: java.lang.InterruptedException


Testsuite: edu.rice.cs.drjava.model.repl.InteractionsModelTest
Tests run: 10, Failures: 0, Errors: 1, Time elapsed: 1.486 sec

Testcase: testInterpretCurrentInteractionWithIncompleteInput
(edu.rice.cs.drjava.model.repl.InteractionsModelTest):
Caused an ERROR
junit.framework.TestCase$MultithreadedTestError:
The test did not perform a join on all spawned threads.


Testsuite: edu.rice.cs.drjava.ui.InteractionsPaneTest
Tests run: 14, Failures: 0, Errors: 1, Time elapsed: 4.876 sec

Testcase: testPromptListClearedOnReset
(edu.rice.cs.drjava.ui.InteractionsPaneTest):
Caused an ERROR
junit.framework.TestCase$MultithreadedTestError:
The test did not perform a join on all spawned threads.


Testsuite: edu.rice.cs.util.CompletionMonitorTest
Tests run: 2, Failures: 0, Errors: 1, Time elapsed: 0.061 sec

Testcase: testDegenerateSignal
(edu.rice.cs.util.CompletionMonitorTest):
Caused an ERROR
junit.framework.TestCase$MultithreadedTestError:
The test did not perform a join on all spawned threads.


Testsuite: edu.rice.cs.util.ReaderWriterLockTest
Tests run: 7, Failures: 0, Errors: 1, Time elapsed: 0.138 sec

Testcase: testMultipleReaders
(edu.rice.cs.util.ReaderWriterLockTest):
Caused an ERROR
junit.framework.TestCase$MultithreadedTestError:
The test did not perform a join on all spawned threads.

This already looks a lot better than the weird RMI “unmarshall” exceptions. It looks like we have three failed tests due to wrong counts, one due to an InterruptedException, and a whole four tests with bad join policies.

I’ll look at it more in the morning. I don’t really like this 3.8.2 system. It constrains me too much. I want something 5.0, with annotations, so I’ll have to see if I can rewrite DrJava or bring the missing files back to JUnit4.

[1] [2]Share [3]