usage
To run ABI Cafe, just cargo install abi-cafe
and run abi-cafe
!
While ABI Cafe isn't a For Reals Fuzzer (yet?), it accomplishes a similar goal through the magic of procedural generation and combinatorics. These docs serve to describe the N layers of combinatorics we use to turn a grain of sand into a mountain of broken compilers.
- test files:
--tests
- calling conventions:
--conventions
- type reprs:
--reprs
- toolchain pairings:
--pairs
- value generators:
--gen-vals
- value selectors:
--select-vals
- value writers:
--write-vals
When you run abi-cafe
we will end up running the cross-product of all of these settings, typically resulting in thousands of function calls. See the subsections for details!
You can also run --help
to get information on all the supported features.
As Part Of Your Testsuite
We're still cleaning up the details of this usecase to make it nicer. If you would like to use abi-cafe in your testsuite, please let us know what you'd need/want!
At a minimum, all you need to "do" to run abi-cafe in your test suite is run abi-cafe
and check its status.
Of course that's not so helpful when you don't know what it does! The default behaviours you are most likely to want to configure are:
(FIXME: write some docs that go over how to read test failures. grafitti is really useful to understand, as is the minimizer, although that needs work).
Examples
The following uses of abi-cafe all vendor it, as previously this was required.