Randomized concurrency testing for Erlang.
This library uses the randomized scheduling algorithms introduced in our publication:
Xinhao Yuan, Junfeng Yang, and Ronghui Gu. Partial Order Aware Concurrency Sampling. In Computer Aided Verification - 30th International Conference, CAV 2018.
Compile the SUT with instrumentations that gives control to Firedrill on synchronization points.
Keep runing your tests repeatly to reveal potential concurrency bugs, if there is any.
It alone cannot determinisitcally reproduce any bugs found. See Morpheus Integration.
No guarantee of verification. This is NOT a model checking approach.
Testing in distributed setting has considerable overhead. Try to support single node testing in SUT if possible.
Usage and Examples
See the unit testcases in
test/ for basic examples.
$ rebar3 compile
TODO - Documentation
APL 2.0 -- See LICENSE