Commit Graph

21 Commits

Author SHA1 Message Date
Ryan Scott
ce10bc9243 Drop support for GHC 8.6
This allows us to remove gobs of CPP as a consequence.
2022-01-10 16:40:23 -05:00
Ryan Scott
c3b8bac579 CI: Test GHC 9.0.2 2022-01-10 16:40:23 -05:00
Ryan Scott
ce3e9cba13 Add notes on freeze file generation to README 2022-01-10 16:40:23 -05:00
Ryan Scott
dfeef5f332 Regenerate freeze files 2022-01-10 16:40:23 -05:00
Tristan Ravitch
a0aaa6e083
Attempt to use self-hosted CI runners (#215)
Switch the github actions configuration to use internally-hosted runners, which have enough memory to complete all of the CI jobs
2021-07-12 11:58:21 -07:00
Joe Hendrix
25e09b8688 Add script to simplify updating cabal freeze files. 2021-05-19 21:02:56 -07:00
Joe Hendrix
3d38843ea5 Github CI use ghcup 2021-05-07 17:20:42 -07:00
Joe Hendrix
fb7dbe7ae7 Update CI to cabal 3.4 2021-03-23 22:45:06 -07:00
Joe Hendrix
9b75887a9d Update CI to use GHC 8.10.4 2021-03-23 22:37:22 -07:00
Tristan Ravitch
dbb4c83f08
Add a testing framework for macaw-symbolic (#184)
The new test suites cover x86_64, PowerPC, and ARM. They test that the semantics are actually correct (rather than just seeing if symbolic execution produces any result). The `Data.Macaw.Symbolic.Testing` module in macaw-symbolic provides some common utilities for symbolic execution engine setup, while there are tailored test harnesses for each architecture.

The semantics of the test harnesses are documented in each architecture test suite, but they:
1. Discover all of the test binaries (which are generated from the included makefiles)
2. Treat each function whose name begins with `test_` as a test entry point
3. Symbolically executes each test case with fully symbolic register states
4. Extracts the return value after symbolic execution, which is treated as the predicate to an assertion that must be proved
    - If the test case is in the `pass` subdirectory, it is proved and expected to hold
    - If the test case is in the `fail` subdirectory, it is proved and expected to not hold.

Each test harness supports two options for debugging:
- Dumping generated SMT queries
- Dumping generated Macaw IR for inspection

This testing uncovered a bug in the (previously untested) macaw-aarch32-symbolic code. It required a number of submodule updates to:

- Adapt to some what4 changes
- Fix a bug in the LLVM memory model that lets these tests pass
- Adapt to changes to some crucible APIs

This change also modifies the CI configuration to install SMT solvers earlier (which are now needed for all of the symbolic package tests).
2021-03-01 09:21:44 -08:00
robdockins
a58f1e25dd
Update to follow changes in What4. Nat is no longer a base type (#190)
Nat is no longer a what4 base type, so we have to adapt various APIs to accommodate that. The template haskell in macaw-semmc is updated to remove Nat cases. Changes to the `SymFn` type required removing a type parameter.

This commit also adds macaw-refinement to CI (which requires installing SMT solvers); that code had to be updated due to the what4 changes.


Co-authored-by: Tristan Ravitch <tristan@galois.com>
2021-02-19 15:44:56 -08:00
Tristan Ravitch
765d2e43cb
ci: Have the CI build and test more things (#181)
- Use an explicit package-level build step for each architecture, which will
build utility binaries and not just the tests/libraries
- Enable builds/tests for the PowerPC backend
- Build macaw-aarch32-symbolic
2020-12-19 17:16:04 -08:00
Joe Hendrix
668a3ac238 Disable running compare-dwarfdump for now. 2020-11-13 09:23:25 -08:00
Joe Hendrix
34cdb9b855 Make sure llvm is installed for compare-dwarfdump 2020-11-12 23:45:45 -08:00
Joe Hendrix
98b69d992c Add compare-dwarfdump 2020-11-06 14:35:06 -08:00
Lisanna Dettwyler
e12f71e5be Init CI for 8.10.2 2020-10-20 13:53:09 -07:00
Lisanna Dettwyler
a5f11c114d remove 8.10 2020-10-20 13:44:37 -07:00
Lisanna Dettwyler
f0790505cc Invalidate cabal cache when dependencies change 2020-10-20 13:44:37 -07:00
Lisanna Dettwyler
66c41039a6 Init [8.6.5 8.10.1] testing 2020-10-20 13:44:37 -07:00
Lisanna Dettwyler
5ca4f4e501 Replace deprecated GitHub Actions functions 2020-10-15 09:56:29 -07:00
Joe Hendrix
0baa499c2a Migrate from Travis to Github Actions 2020-09-29 13:47:34 -07:00