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. > > >
