Changelog History
Page 1
-
v0.7.0 Changes
March 17, 2020Add Stack resolver lts-15 and drop lts-11;
High-level interface to the state machine API (PR #355) -- this captures the patterns described in http://www.well-typed.com/blog/2019/01/qsm-in-depth/ as a proper Haskell abstraction;
Experimental support for Markov chain-base command generation and reliability calculations;
forAllParallelCommands now gets another argument with type Maybe Int, indicating the minimum number of commands we want a test case to have.
Nothing
provides old functionality;Fixed a bug in the parallel case for the mock function (PR #348) and other bugs related to references in the parallel case;
Add a new field in the StateMachine called cleanup. This function can be used to ensure resources are cleaned between tests.
noCleanup
can be used to achieve the older functionality;Improved labelling;
Generalize parallelism, so that more than two threads can be used (PR #324);
Option to print dot visualisation of failed examples;
Handle exceptions better and provide better output.
-
v0.6.0 Changes
January 15, 2019This is a breaking release. See mentioned PRs for how to upgrade your code, and feel free to open an issue if anything isn't clear.
Generalise shrinking so that it might depend on the model (PR #263);
Drop support for GHC 8.0.* or older, by requiring base >= 4.10 (PR #267). If you need support for older GHC versions, open a ticket;
Use Stack resolver lts-13 as default (PR #261);
Generalise the
GConName
type class to make it possible to use it for commands that cannot haveGeneric1
instances. Also rename the type class toCommandNames
(PR #259).
-
v0.5.0 Changes
January 04, 2019The first and third item in the below list might break things, have a look at the diffs of the PRs on how to fix your code (feel free to open an issue if it isn't clear).
- Allow the user to explicitly stop the generation of commands (PR #256);
- Fix shrinking bug (PR #255);
- Replace MonadBaseControl IO with MonadUnliftIO (PR #252);
- Check if the pre-condition holds before executing an action (PR #251).
-
v0.4.3 Changes
December 07, 2018- Support QuickCheck-2.12.*;
- Use new compact diffing of records from tree-diff library when displaying counterexamples;
- Explain mock better in the README;
- Handle exceptions more gracefully;
- Show, possibly multiple, counterexample when parallel property fails.
-
v0.4.2 Changes
- Fix bug that made tests fail on systems without docker;
- Remove some unused dependencies found by the weeder tool.
-
v0.4.1 Changes
August 31, 2018Minor fixes release:
- Fix broken link and code in README;
- Disable web server tests when docker isn't available (issue #222).
-
v0.4.0 Changes
August 21, 2018Major rewrite, addressing many issues:
- The output of sequential runs now shows a diff of how the model changed in each step (related to issue #77);
- The datatype of actions was renamed to commands and no longer is a GADT (discussed in issue #170, also makes issue #196 obsolete);
- Commands can now return multiple references (issue #197);
- Global invariants can now more easily be expressed (issue #200);
- Counterexamples are now printed when post-conditions fail (issue #172).
-
v0.3.1 Changes
January 15, 2018- Remove upper bounds for dependencies, to easier keep up with Stackage nightly.
-
v0.3.0 Changes
December 15, 2017A propositional logic module was added to help provide better counterexamples when pre- and post-conditions don't hold;
Generation of parallel programs was improved (base on a comment by Hans Svensson about how Erlang QuickCheck does it);
Support for semantics that might fail was added;
Pretty printing of counterexamples was improved.
-
v0.2.0 Changes
October 11, 2017Z-inspired definition of relations and associated operations were added to help defining concise and showable models;
Template Haskell derivation of
shrink
and type classes:Show
,Constructors
,HFunctor
,HFoldable
,HTraversable
;New and more flexible combinators for building sequential and parallel properties replaced the old clunky ones;
Circular buffer example was added;
Two examples of how to test CRUD web applications were added.