Skip to content

Commit 90619be

Browse files
authored
Merge pull request #126 from elbeno/better-tests
Improve noisy mull logs and compile fail tests
2 parents aacce79 + f18ca60 commit 90619be

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

cmake/mull.cmake

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ endfunction()
4040

4141
find_mull()
4242

43+
option(INFRA_LOUD_MULL_FAILURE
44+
"Output per-target warning when mull is not available." OFF)
45+
4346
function(add_mull_test name)
4447
set(options EXCLUDE_CTEST)
4548
set(singleValueArgs PLUGIN_DIR RUNNER_DIR)
@@ -66,10 +69,12 @@ function(add_mull_test name)
6669
set(MULL_RUNNER_DIR "<RUNNER_DIR not provided>")
6770
endif()
6871
if(NOT MULL_RUNNER)
69-
message(
70-
WARNING
71-
"mull-runner-${version} not found at ${MULL_RUNNER_DIR}. mull_${name} is a failing test."
72-
)
72+
if(INFRA_LOUD_MULL_FAILURE)
73+
message(
74+
WARNING
75+
"mull-runner-${version} not found at ${MULL_RUNNER_DIR}. mull_${name} is a failing test."
76+
)
77+
endif()
7378
add_custom_target(mull_${name} ${MULL_RUNNER_NOT_FOUND_COMMAND})
7479
add_dependencies(mull_tests mull_${name})
7580
return()
@@ -83,10 +88,12 @@ function(add_mull_test name)
8388
set(MULL_PLUGIN_DIR "<PLUGIN_DIR not provided>")
8489
endif()
8590
if(NOT MULL_PLUGIN)
86-
message(
87-
WARNING
88-
"mull-ir-frontend-${version} not found at ${MULL_PLUGIN_DIR}. mull_${name} is a failing test."
89-
)
91+
if(INFRA_LOUD_MULL_FAILURE)
92+
message(
93+
WARNING
94+
"mull-ir-frontend-${version} not found at ${MULL_PLUGIN_DIR}. mull_${name} is a failing test."
95+
)
96+
endif()
9097
add_custom_target(mull_${name} ${MULL_PLUGIN_NOT_FOUND_COMMAND})
9198
add_dependencies(mull_tests mull_${name})
9299
return()

cmake/test.cmake

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -460,16 +460,20 @@ macro(add_fuzz_test)
460460
endmacro()
461461

462462
function(add_compile_fail_test test_file)
463+
set(singleValueArgs NAME)
463464
set(multiValueArgs INCLUDE_DIRECTORIES LIBRARIES SYSTEM_LIBRARIES)
464-
cmake_parse_arguments(CF "" "" "${multiValueArgs}" ${ARGN})
465+
cmake_parse_arguments(CF "" "${singleValueArgs}" "${multiValueArgs}"
466+
${ARGN})
465467

466-
string(REPLACE "/" "_" test_name "${test_file}")
467-
string(PREPEND test_name "EXPECT_FAIL.")
468-
add_executable(${test_name} EXCLUDE_FROM_ALL ${test_file})
468+
if(NOT CF_NAME)
469+
string(REPLACE "/" "_" CF_NAME "${test_file}")
470+
endif()
471+
string(PREPEND CF_NAME "EXPECT_FAIL.")
472+
add_executable(${CF_NAME} EXCLUDE_FROM_ALL ${test_file})
469473

470-
target_include_directories(${test_name} PRIVATE ${CF_INCLUDE_DIRECTORIES})
471-
target_link_libraries(${test_name} PRIVATE ${CF_LIBRARIES})
472-
target_link_libraries_system(${test_name} PRIVATE ${CF_SYSTEM_LIBRARIES})
474+
target_include_directories(${CF_NAME} PRIVATE ${CF_INCLUDE_DIRECTORIES})
475+
target_link_libraries(${CF_NAME} PRIVATE ${CF_LIBRARIES})
476+
target_link_libraries_system(${CF_NAME} PRIVATE ${CF_SYSTEM_LIBRARIES})
473477

474478
file(STRINGS ${test_file} pattern REGEX "// EXPECT: ")
475479
if(NOT pattern)
@@ -478,9 +482,8 @@ function(add_compile_fail_test test_file)
478482
string(REGEX REPLACE ".*// EXPECT: " "" pattern ${pattern})
479483
endif()
480484

481-
add_test(NAME ${test_name}
482-
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target
483-
${test_name})
484-
set_tests_properties(${test_name} PROPERTIES PASS_REGULAR_EXPRESSION
485-
"${pattern}")
485+
add_test(NAME ${CF_NAME} COMMAND ${CMAKE_COMMAND} --build
486+
${CMAKE_BINARY_DIR} --target ${CF_NAME})
487+
set_tests_properties(${CF_NAME} PROPERTIES PASS_REGULAR_EXPRESSION
488+
"${pattern}")
486489
endfunction()

0 commit comments

Comments
 (0)