[ https://issues.apache.org/jira/browse/GEODE-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Smith reassigned GEODE-3702: -------------------------------- Assignee: Dan Smith > 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 > Assignee: 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)