Dan Smith created GEODE-3702: -------------------------------- Summary: New framework for concurrency testing Key: GEODE-3702 URL: https://issues.apache.org/jira/browse/GEODE-3702 Project: Geode Issue Type: Improvement Components: tests Reporter: Dan Smith
>From the mailing list discussion: I'd like to propose two things: 1) We introduce a framework for writing unit tests of code that is supposed to be thread safe. This framework should let a developer easily write a test with multiple things going on in parallel. The framework can then take that code and try to run it with different thread interleavings. Here's an example of what this could look like: @RunWith(ConcurrentTestRunner.class) public class AtomicIntegerTest { @Test public void parallelIncrementReturns2(ParallelExecutor executor) throws ExecutionException, InterruptedException { AtomicInteger atomicInteger = new AtomicInteger(); executor.inParallel(() -> atomicInteger.incrementAndGet()); executor.inParallel(() -> atomicInteger.incrementAndGet()); executor.execute(); assertEquals(2, atomicInteger.get()); } 2) We implement this framework initially using Java Pathfinder, but allow for other methods of testing the code to be plugged in for example just running the test in the loop. Java pathfinder is cool because it can run the code with different interleavings but it does have some serious limitations. -- This message was sent by Atlassian JIRA (v6.4.14#64029)