Lincheck guide

Last modified: 21 October 2022

Lincheck is a practical and user-friendly framework for testing concurrent algorithms on the JVM. It provides a simple and declarative way to write concurrent tests.

With the Lincheck framework, instead of describing how to perform tests, you can specify what to test by declaring all the operations to examine and the required correctness property. As a result, a typical concurrent Lincheck test contains only about 15 lines.

When given a list of operations, Lincheck automatically:

  • Generates a set of random concurrent scenarios.

  • Examines them using either stress-testing or bounded model checking.

  • Verifies that the results of each invocation satisfy the required correctness property (linearizability is the default one).