macaw/macaw-aarch32/tests
Ryan Scott 6e020bcde6 Fix -Wincomplete-uni-patterns warnings
GHC 9.2 adds `-Wincomplete-uni-patterns` to `-Wall`, which uncovers a slew of
previously unnoticed warnings in `macaw`. This patch fixes them, mostly by
adding explicit fall-through cases.
2022-05-31 15:50:48 -04:00
..
arm aarch32: Implement support for conditional calls (#289) 2022-05-20 15:17:26 -07:00
ARMTests.hs Fix -Wincomplete-uni-patterns warnings 2022-05-31 15:50:48 -04:00
MismatchTests.hs Fix macaw-aarch32 tests. 2020-11-12 19:22:20 -08:00
README.md Support for mixed ARM/Thumb binaries (#174) 2020-11-02 12:48:01 -08:00
Shared.hs Fix -Wincomplete-uni-patterns warnings 2022-05-31 15:50:48 -04:00
TestMain.hs AArch32: Support conditional returns (#243) 2021-11-19 16:20:50 -08:00

Overview

The tests in this directory attempt to test both ARM and Thumb decoding/discovery. The test suite only runs on the binaries with corresponding .mcw.expected files, which describe the expected discovered basic blocks.

  • test-just-exit-a32.exe: Ensures that the very basics of anything at all works
  • test-conditional-a32.exe: Ensures that conditional branches in A32 mode are handled correctly
  • test-direct-call-a32.exe: Ensures that call and return sequences work in A32 mode
  • test-direct-call-t32.exe: Ensures that transitions (via call) to Thumb mode work correctly
  • test-conditional-mixed.exe: Ensures that multi-block Thumb functions are handled correctly
  • test-just-exit-t32.exe: Ensures that Thumb entry points work correctly

Notes

The test-just-exit-t32.exe test is interesting because executables with Thumb entry points have the low bit set (even though it isn't technically the address where the function starts - it happens to work because the ISA clears the bit before jumping). We want to make sure that macaw handles it correctly.