Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add test generation models #180 #328

Merged
merged 5 commits into from
Oct 9, 2024

Commits on Oct 8, 2024

  1. Implement Enumerator

    The concept of an `Enumerator` replaces the existing concept of a
    `BaseIterator`.  Furthermore, functionality is provided for enumerating
    all combinations of a given set for a fixed value of `n`.
    DavePearce committed Oct 8, 2024
    Configuration menu
    Copy the full SHA
    adc9de8 View commit details
    Browse the repository at this point in the history
  2. Fix property assertions

    Property assertions are now operational again.  The key is that, for a
    valid trace, all property assertions should hold.  However, for invalid
    traces (i.e. where the given constraints fail) then we cannot expect a
    property assertion to hold.
    DavePearce committed Oct 8, 2024
    Configuration menu
    Copy the full SHA
    f0b8be5 View commit details
    Browse the repository at this point in the history
  3. Preliminary Property-Based Testing

    This puts in place a preliminary property-based testing framework which
    will enumerate inputs and compare against a test oracle (as determined
    by property assertions embedded within the constraints file).
    DavePearce committed Oct 8, 2024
    Configuration menu
    Copy the full SHA
    0487e2e View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Support Test Generator

    This adds support for a "test generator" which automatically generates
    test traces, and splits them using a given "oracle".  The latter is a
    piece of Go code written specifically for this task.
    DavePearce committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    dee24dd View commit details
    Browse the repository at this point in the history
  2. Tweak test command

    This tweaks the test command so that it doesn't treat property
    assertions as "absolute truth".  Rather, it attempts to find traces
    which are accepted but where the property assertions don't hold.
    
    At this stage, the system is fairly simplistic.  We need to think more
    carefully about how to generate the traces.  This includes avoiding the
    brute-force enumeration currently in play.  Likewise, thinking more
    carefully about the "pool" of values used for testing.
    DavePearce committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0a40e87 View commit details
    Browse the repository at this point in the history