mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-11-29 21:44:11 +03:00
073e774a43
This introduces a new datatype CValue for representing constants in Macaw programs, modifies the existing Value datatype to use then, and introduces patterns for compatibility with existing datatypes. The patch also updates the function argument analysis to use more explicit argument passing rather than monadic updates. The intent is to help clarify when data is initialized rather than updated. Finally this updates a README and does some minor updates.
24 lines
1.2 KiB
ReStructuredText
24 lines
1.2 KiB
ReStructuredText
This directory contains some automated tests for macaw-x86. The tests
|
|
currently cover the code discovery implementation in macaw.
|
|
Specifically, they check:
|
|
|
|
1) That the correct number of functions are found,
|
|
2) Each function starts at the expected address,
|
|
3) Each function contains the correct number of basic blocks,
|
|
4) Each basic block starts at the expected address
|
|
|
|
The ``Makefile`` in the tests directory rebuilds the test files from
|
|
source. The resulting binaries are checked in to the repository so
|
|
that Mac OS users can run the tests without having to have a Linux
|
|
build toolchain available. Additionally, having the binaries in the
|
|
repository keeps the code layout stable. Expected addresses are
|
|
hard-coded into the expected results of the test suite; regenerating
|
|
the binaries on a different system or with a different compiler could
|
|
change the offsets in the test binaries, which would require the
|
|
expected results to be tweaked. This is unfortunate, but difficult to
|
|
avoid in a robust way.
|
|
|
|
Note that the tests are bare-bones and do not link against libc. They
|
|
issue the exit system call directly to terminate. This lets us get
|
|
small and comprehensible test cases.
|