Multicoretests - Parallel Testing Libraries for OCaml 5.0
summary
Two testing libraries target OCaml 5.0 multicore: Lin checks linearizability and STM runs state-machine (model-based) tests, both built on QCheck. The tools run randomized parallel command sequences, record return values, search all sequential interleavings, and shrink failing cases; a 10,000-test run fails on the 5th case and exposes a non-linearizable behavior in the standard Hash table (length/add), showing a real bug in stdlib and in other runtime components during fuzzing.
AI-written summary · about
chapters (5)
- 0:00Start
- 1:11An Example: Testing Hashtbl with Lin
- 2:39Running the Hashtbl Example
- 6:43All tests share the same shape: a sequential prefix + two parallel Domains we generate arbitrary inputs to each call and
- 17:11Summary and Conclusion
related talks
40mWhen magic meets multicore - OCaml and its elegant era of parallelism
23mParallel Sequences in Multicore OCaml
31mLincheck: Testing Concurrent Algorithms on JVM
42mSurprise yourself with Property Based Testing
36mTesting Stateful and Concurrent Systems Using test.check
45mHow we test concurrent algorithms in Kotlin Coroutines
25mPowerful Testing with test.check
39mLincheck: Testing concurrency on the JVM
