It is my pleasure to announce the first release of Monolith.
Monolith offers facilities for testing an OCaml library (for instance, a data
structure implementation) by comparing it against a reference implementation.
It uses a form of black-box testing, and relies on
afl-fuzz for efficiency.
The user must describe what types and operations the library provides. Under
the best circumstances, this requires 2-3 lines of code per type or operation.
The user must also provide a reference implementation of the library.
Then, like a monkey typing on a keyboard, Monolith attempts to exercise the
library in every possible way, in the hope of discovering a scenario where the
library behaves incorrectly. If such a scenario is discovered, it is printed
in the form of an OCaml program, so as to help the user reproduce the problem.
At this time, a tutorial is not yet available. There is however an API
documentation and a number of demos.
opam update opam install monolith