diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 412c0669..fe2b6cf8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,3 @@ - set(TEST_SOURCES dep_canonicalization.cpp dependency_loop.cpp @@ -24,16 +23,22 @@ type_already_bound.cpp type_already_bound2.cpp ) +function(add_successful_compile NAME) + set(BIN ${NAME}-exec) + set(BUILD ${NAME}-build) + add_executable(${BIN} ${NAME}.cpp) + target_link_libraries(${BIN} fruit) + add_test(NAME ${BUILD} COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target ${BIN}) + set_tests_properties(${NAME} PROPERTIES DEPENDS ${BUILD}) +endfunction(add_successful_compile) + function(add_test_expected_to_pass NAME) - add_executable(${NAME}-exec ${NAME}.cpp) - target_link_libraries(${NAME}-exec fruit) add_test(NAME ${NAME} COMMAND valgrind --leak-check=full --malloc-fill=AA --track-origins=yes --read-var-info=yes --num-callers=50 --error-exitcode=1 $) + add_successful_compile(${NAME}) endfunction(add_test_expected_to_pass) function(add_test_expected_to_fail_at_runtime NAME MESSAGE) - add_executable(${NAME}-exec ${NAME}.cpp) - target_link_libraries(${NAME}-exec fruit) add_test(NAME ${NAME} COMMAND bash -c " F=`mktemp` @@ -51,6 +56,7 @@ function(add_test_expected_to_fail_at_runtime NAME MESSAGE) fi rm -f \${F} ") + add_successful_compile(${NAME}) endfunction(add_test_expected_to_fail_at_runtime) set(COMPILERS_TO_TEST "g++" "clang++")