Hey everyone!
I've just released a new version of my library for testing
stateful systems with test.check! Now with added race condition
detection!
[org.clojars.czan/stateful-check "0.4.0"]
https://github.com/czan/stateful-check
https://clojars.org/org.clojars.czan/stateful-check
This version is a major release, and given the long timescale (my
last release was August 2015), I've taken the chance to break a
lot of things. In return, though, we can now run parallel test
cases to detect race conditions. If you watched John Hughes' talk
at Clojure/West 2014[1], then you have some idea of what I'm
talking about. If you haven't watched it, then you should, because
it's great.
The main changes are:
- more clearly delineate separate phases (generation, execution,
verification), this most noticeably changes the time when
postcondition functions are run, and what they are permitted to
do
- add support for race condition detection (see doc/
queue.org[2]
for an example, and see doc/
race-conditions.org[3] for a bit of
explanation about what it's testing)
- change to the MIT license
If you've used stateful-check before then you should be careful
and check your assumptions before doing things. If you've not used
stateful-check before then now might be a fun time to give it a
go!
Carlo
[1]:
https://www.youtube.com/watch?v=zi0rHwfiX1Q
[2]:
https://github.com/czan/stateful-check/blob/0.4.0/doc/queue.org
[3]:
https://github.com/czan/stateful-check/blob/0.4.0/doc/race-conditions.org