[
https://issues.apache.org/jira/browse/OAK-3765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Reschke resolved OAK-3765.
---------------------------------
Resolution: Fixed
trunk: http://svn.apache.org/r1719288
1.2: http://svn.apache.org/r1719414
1.0: http://svn.apache.org/r1719422
> Parallelized test runner does not wait for test completion
> ----------------------------------------------------------
>
> Key: OAK-3765
> URL: https://issues.apache.org/jira/browse/OAK-3765
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: jcr
> Affects Versions: 1.2.9, 1.0.25, 1.3.12
> Reporter: Julian Reschke
> Assignee: Julian Reschke
> Priority: Minor
> Fix For: 1.3.13, 1.0.26, 1.2.10
>
>
> As analyzed by [~tomek.rekawek] in OAK-3743:
> Quote from the mailing list:
> {quote}
> On a “slow” machine, in the surefire logs for the AtomicCounterTest (which
> takes 63 sec while it should 3 sec), following test case appears:
> {noformat}
> <testcase time="2.261"
> classname="org.apache.jackrabbit.oak.jcr.RepositoryTest"
> name="importWithRegisteredType[RDBDocumentStore on
> jdbc:derby:oaktest\;create=true]"/>
> {noformat}
> It’s a test case from a completely different class. I downloaded all the
> surefire reports and it seems that the test cases from the RepositoryTest
> class are spread across CRUDTest, ConflictResolutionTest, ObservationTest and
> others. On the “fast” machines the problem doesn’t exist and all
> RepositoryTest methods are invoked within their own test case.
> {quote}
> It seems that this behaviour is caused by the
> {{org.apache.jackrabbit.oak.jcr.Parallelized}} runner, used in the
> {{AbstractRepositoryTest}}. JUnit submits a {{Runnable}} wrapping all the
> test cases from a single class to the {{ThreadPoolScheduler#schedule()}}
> method and then invokes {{#finished()}}. The latter waits for 10 minutes
> until the submitted {{Runnable}} is done. However, in case of the
> {{RepositoryTest}}, all tests takes more than 10 minutes. The {{finished()}}
> method simply returns, JUnit invokes another test class, while the
> {{RepositoryTest}} is still running in the background.
> In the attached patch, the {{finished()}} method waits indefinitely until all
> tests are done. It may seem a bit radical, but after all it's the same
> behaviour as in single-thread JUnit runner, which doesn't have internal
> timeout as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)