blob: a4be05140e3f85e6e34340975d187780f0f7fbfc [file] [log] [blame] [view]
# Test data for the unwinder
This is used for testing certain unwinding implementations that need a real binary to parse. At this
time, these tests are heavily reliant on the binary layout of the file being stable, so the
binary itself is checked into the tree. Follow the below instructions to update the binary when the
source file is changed.
## Building a new binary
1. Add `//src/lib/unwinder/test_data:unwind_info_test_data(//build/toolchain:linux_arm-shared)` to
the build graph. The easiest way to do this is to have the test binary in
`//src/lib/unwinder:unwinder_tests_bin` dep on that target. The toolchain argument is important
because the binary is specifically meant to be generated with the aarch32 toolchain and
generate Arm32 bit unwind tables.
2. The resulting shared object file will be at
`//out/<dir>/linux_arm-shared/libunwind_info_test_data.so`. Copy that file to
`//src/lib/unwinder/test_data/libunwind_info_test_data.targetso`, then remove the dep from step
1.
This could be updated in the future to pull prebuilt binaries from CIPD if they get too big to keep
checked into the tree. See the zxdb documentation at
`//src/developer/debug/zxdb/symbols/test_data/README.md` for an example of how to do that.