Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 08:31
· 9 commits to master since this release
5d6e5f2
  • Changed: a shrink candidate is accepted only when it fails the same way
    the original run did — the same exception class and the same place in the
    property's own file. A body that can fail in more than one place (two
    assertions, or an assertion beside a call that throws the same type) used to
    offer the descent failures it could not tell apart, so the reported minimal
    counterexample could belong to a bug the run never found, with nothing in the
    output saying so. The place is the line of the property's own file in the
    failure's stack, which is not where the exception was raised: an assertion
    library raises every assertion of a body from one line of its own, while the
    line that called in is the assertion the body wrote. Where the place cannot be read —
    an id that names no loaded class, a body written in another file (a trait, an
    included fixture), a failure the engine raised rather than the body — the
    exception class stays the whole criterion. Minimised counterexamples may
    therefore differ from 1.0.0 on such a body (compatibility policy §2: what a
    descent minimises to is not under SemVer); a corpus recorded before this
    release replays unchanged. Worth knowing for stateful properties: the
    rule-based façade's #[Rule] methods live in the test file, so a command
    sequence whose failure moves from one rule to another now stops the descent
    rather than being minimised into the other rule's bug.