Fray: General-Purpose Concurrency Testing Fray is a concurrency testing tool for Java that can help you find and debug tricky race conditions that manifest as assertion violations, run-time exceptions, or deadlocks. It performs controlled concurrency testing using state-of-the-art techniques such as probabilistic concurrency testing or partial order sampling. Fray also provides deterministic replay capabilities for debugging specific thread interleavings. Fray is designed to be easy to use and can be integrated into existing testing frameworks. Quick Start JUnit 5 If you are using JUnit 5, you can use the @ConcurrencyTest annotation to mark a test as a concurrency test. You also need to add the @ExtendWith(FrayTestExtension.class) annotation to the test class. import org . pastalab . fray . junit . junit5 . FrayTestExtension ; import org . pastalab . fray . junit . junit5 . annotations . ConcurrencyTest ; @ ExtendWith ( FrayTestExtension . class ) public class SimpleTest { @ ConcurrencyTest public void concurrencyTest () { ... // some multithreaded code assert ( ...); } } Other Testing Frameworks Fray can be used with other testing frameworks as well. You may use the FrayInTestLauncher import org . pastalab . fray . junit . plain . FrayInTestLauncher ; public void test () { FrayInTestLauncher . INSTANCE . launchFrayTest (() -> { ... // some multithreaded code assert ( ...); }); } Gradle To use Fray with Gradle, add the following plugin to your build.gradle file: plugins { id( " org.pastalab.fray.gradle " ) version " 0.5.1 " } Maven First please add Fray plugin to your project < plugin > < groupId >org.pastalab.fray.maven</ groupId > < artifactId >fray-plugins-maven</ artifactId > < version >0.5.1</ version > < executions > < execution > < id >prepare-fray</ id > < goals > < goal >prepare-fray</ goal > </ goals > </ execution > </ executions > </ plugin > Next, please add the fray-junit dependency < dependency > < groupId >org.pastalab.fray</ groupId > < artifactId >...
First seen: 2025-06-08 08:14
Last seen: 2025-06-08 12:14