mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-29 05:03:46 +08:00
Hack around CMake < 3.9 reporting skipped tests as failed
This commit is contained in:
parent
9151acc498
commit
e0476cf219
|
@ -121,6 +121,14 @@ add_custom_target(tests_buildroot_target
|
||||||
${TEST_ROOT_DIR}
|
${TEST_ROOT_DIR}
|
||||||
DEPENDS fish fish_test_helper)
|
DEPENDS fish fish_test_helper)
|
||||||
|
|
||||||
|
# CMake less than 3.9.0 "fully supports" setting an exit code to denote a skipped test, but then
|
||||||
|
# it just goes ahead and reports it as failed. Really?
|
||||||
|
if(${CMAKE_VERSION} VERSION_LESS "3.9.0")
|
||||||
|
set(CMAKE_SKIPPED_HACK "env" "CMAKE_SKIPPED_HACK=1")
|
||||||
|
else()
|
||||||
|
set(CMAKE_SKIPPED_HACK)
|
||||||
|
endif()
|
||||||
|
|
||||||
foreach(LTEST ${LOW_LEVEL_TESTS})
|
foreach(LTEST ${LOW_LEVEL_TESTS})
|
||||||
add_test(
|
add_test(
|
||||||
NAME ${LTEST}
|
NAME ${LTEST}
|
||||||
|
@ -137,7 +145,7 @@ foreach(CHECK ${FISH_CHECKS})
|
||||||
get_filename_component(CHECK_NAME ${CHECK} NAME)
|
get_filename_component(CHECK_NAME ${CHECK} NAME)
|
||||||
get_filename_component(CHECK ${CHECK} NAME_WE)
|
get_filename_component(CHECK ${CHECK} NAME_WE)
|
||||||
add_test(NAME ${CHECK_NAME}
|
add_test(NAME ${CHECK_NAME}
|
||||||
COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/tests/test_driver.sh
|
COMMAND ${CMAKE_SKIPPED_HACK} sh ${CMAKE_CURRENT_BINARY_DIR}/tests/test_driver.sh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/test.fish ${CHECK}
|
${CMAKE_CURRENT_BINARY_DIR}/tests/test.fish ${CHECK}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
||||||
)
|
)
|
||||||
|
@ -149,7 +157,7 @@ FILE(GLOB PEXPECTS CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/tests/pexpects/*.py)
|
||||||
foreach(PEXPECT ${PEXPECTS})
|
foreach(PEXPECT ${PEXPECTS})
|
||||||
get_filename_component(PEXPECT ${PEXPECT} NAME)
|
get_filename_component(PEXPECT ${PEXPECT} NAME)
|
||||||
add_test(NAME ${PEXPECT}
|
add_test(NAME ${PEXPECT}
|
||||||
COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/tests/test_driver.sh
|
COMMAND ${CMAKE_SKIPPED_HACK} sh ${CMAKE_CURRENT_BINARY_DIR}/tests/test_driver.sh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/interactive.fish ${PEXPECT}
|
${CMAKE_CURRENT_BINARY_DIR}/tests/interactive.fish ${PEXPECT}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests
|
||||||
)
|
)
|
||||||
|
|
|
@ -75,5 +75,14 @@ fish_init_cmd="${fish_init_cmd} && source ${TESTS_ROOT}/test_util.fish";
|
||||||
"$fish_script" "$script_args")
|
"$fish_script" "$script_args")
|
||||||
test_status="$?"
|
test_status="$?"
|
||||||
|
|
||||||
|
# CMake less than 3.9.0 "fully supports" setting an exit code to denote a skipped test, but then
|
||||||
|
# it just goes ahead and reports them as failed anyway. Really?
|
||||||
|
if test -n $CMAKE_SKIPPED_HACK; then
|
||||||
|
if test $test_status -eq 125; then
|
||||||
|
echo "Overriding SKIPPED return code from test" 1>&2
|
||||||
|
test_status=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
rm -rf "$homedir"
|
rm -rf "$homedir"
|
||||||
exit "$test_status"
|
exit "$test_status"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user