Rerunning a test repeatedly may not reproduce some failures that Jenkins
might hit with end-to-end tests such as our dunit tests. Failures in our
dunit tests often fall into the following categories:

1) test pollution -- a previous test leaves around some changes to the JVM
(static values, System properties, DistributedSystem config)

2) race conditions under machine load -- test may use Thread.sleeps that
work well on an unloaded machine or test may use WaitCriterion that appears
correct but is actually checking some related criteria that doesn't 100%
remove a race condition (more difficult to explain but maybe Darrel could
share a recent test bug along these lines)

#1 may require running all (or a subset of) tests repeatedly until the
failure reproduces.

#2 may require some artificial system load using a tool such as ConTest [1]
or anything for simulating CPU-load [2]

[1] - https://www.research.ibm.com/haifa/projects/verification/contest/
[2] -
http://superuser.com/questions/443406/how-can-i-produce-high-cpu-load-on-a-linux-server

-Kirk


On Tue, Jul 21, 2015 at 2:39 PM, Dan Smith <[email protected]> wrote:

> A couple of other people have run into this. I think I have a fix for this
> in the gradle build.
>
> https://issues.apache.org/jira/browse/GEODE-149
> https://reviews.apache.org/r/36660/
>
> -Dan
>
> On Tue, Jul 21, 2015 at 7:26 AM, Amogh Shetkar <[email protected]>
> wrote:
>
> > Hi,
> > I'm trying to run a unit test multiple times to reproduce a failure which
> > is seen intermittently.
> > I use the gradle command:
> >
> > ./gradlew -DdistributedTest.single=<UnitTestName>
> > gemfire-core:distributedTest
> >
> > Is there any support available in gradle to do that?
> >
> > If I simply repeat above command, only the first iteration executes the
> > unit test and subsequent ones
> > do not, unless I delete the test-results directory.
> >
> > Thanks,
> > Amogh.
> >
>

Reply via email to