26 lines
1.5 KiB
CMake
26 lines
1.5 KiB
CMake
# Host tests for the shim's trace/compare infrastructure (src/shim/trace). The Python
|
|
# oracle (sots-re/verify/harness/compare) is used when SOTS_TRACECMP_DIR points at it;
|
|
# the tests skip those steps cleanly otherwise.
|
|
set(SOTS_TRACECMP_DIR "$ENV{HOME}/sots-re/verify/harness/compare" CACHE PATH
|
|
"Directory holding tracecmp.py + mkfixture.py (python oracle for the trace tests)")
|
|
|
|
set(_out ${CMAKE_CURRENT_BINARY_DIR}/out)
|
|
file(MAKE_DIRECTORY ${_out})
|
|
|
|
foreach(_t sha256 emitter diff hook coverage)
|
|
add_executable(shim_trace_test_${_t} test_${_t}.cpp)
|
|
target_link_libraries(shim_trace_test_${_t} PRIVATE shim_trace)
|
|
target_compile_options(shim_trace_test_${_t} PRIVATE -Wall -Wextra -Werror)
|
|
target_compile_definitions(shim_trace_test_${_t} PRIVATE SOTS_TRACECMP_DIR="${SOTS_TRACECMP_DIR}")
|
|
endforeach()
|
|
target_link_libraries(shim_trace_test_hook PRIVATE pthread)
|
|
|
|
add_test(NAME shim_trace_sha256 COMMAND shim_trace_test_sha256)
|
|
add_test(NAME shim_trace_emitter COMMAND shim_trace_test_emitter ${_out}/emitter_oracle.jsonl
|
|
${CMAKE_CURRENT_SOURCE_DIR}/oracle_emit.py)
|
|
add_test(NAME shim_trace_diff COMMAND shim_trace_test_diff)
|
|
# Every hook descriptor's coverage declaration, checked on the host (the descriptors themselves
|
|
# only compile on the MinGW cross build, so this is where an unaudited hook gets caught).
|
|
target_link_libraries(shim_trace_test_coverage PRIVATE shim_techfx)
|
|
add_test(NAME shim_trace_coverage COMMAND shim_trace_test_coverage)
|
|
add_test(NAME shim_trace_hook COMMAND shim_trace_test_hook ${_out})
|