47 lines
1.4 KiB
CMake
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)
|