All Versions
Latest Version
Avg Release Cycle
102 days
Latest Release
627 days ago

Changelog History
Page 1

  • v0.7.0 Changes

    March 17, 2020
    • Add Stack resolver lts-15 and drop lts-11;

    • High-level interface to the state machine API (PR #355) -- this captures the patterns described in 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, 2019

    This 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 have Generic1 instances. Also rename the type class to CommandNames (PR #259).

  • v0.5.0 Changes

    January 04, 2019

    The 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, 2018
    • Minor 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, 2018
    • Major 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, 2017
    • A 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, 2017
    • Z-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.