Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

47 lines
1.4 KiB
CMake

macro(add_test_exec tgt)
add_executable(${tgt} ${ARGN})
target_link_libraries(${tgt} fiber)
target_compile_options(${tgt} PRIVATE ${cflags})
if(CMU_COMP_MSVC)
target_compile_definitions(${tgt} PRIVATE _CRT_SECURE_NO_WARNINGS=1)
endif()
if(FIBER_LTO)
set_property(TARGET ${tgt} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()
endmacro()
macro(add_test_run tgt)
add_test_exec("${tgt}_exec" ${ARGN})
add_test(
NAME "${tgt}_run"
COMMAND "${tgt}_exec" "test_${tgt}.out"
)
add_test(
"${tgt}_cmp"
${CMAKE_COMMAND} -E compare_files "test_${tgt}.out" "${CMAKE_CURRENT_SOURCE_DIR}/test_${tgt}.out"
)
add_test(
"${tgt}_build"
"${CMAKE_COMMAND}"
--build "${CMAKE_BINARY_DIR}"
--config $<CONFIG>
--target "${tgt}_exec"
)
set_tests_properties("${tgt}_build" PROPERTIES FIXTURES_SETUP "${tgt}_build_fixture")
set_tests_properties("${tgt}_run" PROPERTIES FIXTURES_REQUIRED "${tgt}_build_fixture")
set_tests_properties("${tgt}_run" PROPERTIES FIXTURES_SETUP "${tgt}_run_fixture")
# set_tests_properties("${tgt}_run" PROPERTIES ENVIRONMENT PATH="$<TARGET_FILE_DIR:fiber>")
set_tests_properties("${tgt}_cmp" PROPERTIES FIXTURES_REQUIRED "${tgt}_run_fixture")
endmacro()
add_test_exec(hello hello.c)
add_test_run(basic basic.c)
add_test_run(coop coop.c)
add_test_run(generators generators.c)
add_test_run(fp_stress fp_stress.c)