Skip to content

Regression testing infrastructure for the SMT backend #5982

Closed
@SaswatPadhi

Description

@SaswatPadhi

This is based on a recent discussion I had with @tautschnig. I wanted to open this RFC and get some feedback before introducing a new tag in #5973.

Currently we seem to have 3 tags for our regression tests that relevant to the SMT backend:

  • smt-backend: Tests that require the SMT backend, and don't work with the SAT backend
  • broken-smt-backend: Tests that pass with the SAT backend, but don't work with the SMT backend
  • thorough-smt-backend: Tests that pass with the SAT backend, but take a long time with the SMT backend

While working on #5973, I came across a regression test that works with both Z3 and CVC4, but doesn't work with CPROVER SMT2 because it lacks support for quantifiers. So I think it would make sense to add a few new tags that are solver-specific:

  • broken-cprover-smt2-smt-backend and thorough-cprover-smt2-smt-backend
  • broken-z3-smt-backend and thorough-z3-smt-backend
  • broken-cvc4-smt-backend and thorough-cvc4-smt-backend

The -smt-backend suffix for these tags would be useful for grep-ing all regression tests related to the SMT-backend in any way. The tags can also be combined, e.g.

  • smt-backend broken-cprover-smt2-smt-backend would indicate that the test requires SMT backend, but doesn't work CPROVER SMT2 solver
  • thorough-smt-backend broken-cvc4-smt-backend would indicate that the test runs slower with the SMT backend, and doesn't work at all with CVC4 backend

I also suggest running the same version of these solvers across all platforms on our CI. That way, each time we bump up the version of solver X on our CI, we can revisit all of the broken-X-smt-backend and thorough-X-smt-backend tests and check if any of them are now fixed.

How many solvers we want our CI to be running is a separate discussion, but I think we should definitely at least be running Z3, and preferably both Z3 and CVC4 (in future).

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCRequest for commentSMT Backend InterfaceTestsawsBugs or features of importance to AWS CBMC users

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions