irmin icon indicating copy to clipboard operation
irmin copied to clipboard

Multicore safety tests with qcheck-stm

Open lyrm opened this issue 1 month ago • 0 comments

This PR introduces multicore tests using qcheck-stm, enabling us to validate both semantic correctness and linearizability of the operations under test.

The tests currently pass on irmin-mem, which is great news. A useful next step would be to run the test suite under TSan, as qcheck-stm generates a large number of concurrent executions, which increases the likelihood of data races.

What is being tested?

Since qcheck-stm verifies linearizability, only operations that behave atomically can be tested. Here, a visible operation is defined as a write to the store. As a consequence, operations that manipulate the tree are not covered by these tests.

Work in Progress

  • The test suite currently targets irmin-mem and irmin-pack.
  • Some cleanup is still required.
  • Currently debugging irmin-pack test suite (the current issue is with the test not with irmin-pack)

lyrm avatar Nov 20 '25 16:11 lyrm