Increase coverage. Intentionally trigger error conditions. Call all the else*/end* functions without proper opening or containing code structure: else, elseif, endforeach, endfunction, endif, endmacro, endwhile.
This commit is contained in:
parent
8a5ae4c15e
commit
5b74d031db
|
@ -26,6 +26,11 @@ AddCMakeTest(String "")
|
||||||
AddCMakeTest(Math "")
|
AddCMakeTest(Math "")
|
||||||
AddCMakeTest(CMakeMinimumRequired "")
|
AddCMakeTest(CMakeMinimumRequired "")
|
||||||
|
|
||||||
|
SET(EndStuff_PreArgs
|
||||||
|
"-Ddir:STRING=${CMAKE_CURRENT_BINARY_DIR}/EndStuffTest"
|
||||||
|
)
|
||||||
|
AddCMakeTest(EndStuff "${EndStuff_PreArgs}")
|
||||||
|
|
||||||
SET(GetPrerequisites_PreArgs
|
SET(GetPrerequisites_PreArgs
|
||||||
"-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}"
|
"-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}"
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Execute each test listed in:
|
||||||
|
#
|
||||||
|
set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/EndStuffTestScript.cmake")
|
||||||
|
set(number_of_tests_expected 9)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
|
||||||
|
execute_all_script_tests(${scriptname} number_of_tests_executed)
|
||||||
|
|
||||||
|
# And verify that number_of_tests_executed is at least as many as we know
|
||||||
|
# about as of this writing...
|
||||||
|
#
|
||||||
|
message(STATUS "scriptname='${scriptname}'")
|
||||||
|
message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
|
||||||
|
message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
|
||||||
|
|
||||||
|
if(number_of_tests_executed LESS number_of_tests_expected)
|
||||||
|
message(FATAL_ERROR "error: some test cases were skipped")
|
||||||
|
endif()
|
|
@ -0,0 +1,70 @@
|
||||||
|
message(STATUS "testname='${testname}'")
|
||||||
|
|
||||||
|
if(testname STREQUAL bad_else) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"else()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_elseif) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"elseif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endforeach) # fail
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endfunction) # fail
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endif) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"cmake_minimum_required(VERSION 2.8)
|
||||||
|
endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL endif_low_min_version) # pass
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"cmake_minimum_required(VERSION 1.2)
|
||||||
|
endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL endif_no_min_version) # pass
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endmacro) # fail
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endwhile) # fail
|
||||||
|
endwhile()
|
||||||
|
|
||||||
|
else() # fail
|
||||||
|
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
|
||||||
|
|
||||||
|
endif()
|
|
@ -6,6 +6,7 @@ function(execute_one_script_test scriptname testname expected_result)
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D "dir:STRING=${dir}"
|
||||||
-D "testname:STRING=${testname}"
|
-D "testname:STRING=${testname}"
|
||||||
-P "${scriptname}"
|
-P "${scriptname}"
|
||||||
OUTPUT_VARIABLE out
|
OUTPUT_VARIABLE out
|
||||||
|
|
Loading…
Reference in New Issue