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(CMakeMinimumRequired "")
|
||||
|
||||
SET(EndStuff_PreArgs
|
||||
"-Ddir:STRING=${CMAKE_CURRENT_BINARY_DIR}/EndStuffTest"
|
||||
)
|
||||
AddCMakeTest(EndStuff "${EndStuff_PreArgs}")
|
||||
|
||||
SET(GetPrerequisites_PreArgs
|
||||
"-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(
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D "dir:STRING=${dir}"
|
||||
-D "testname:STRING=${testname}"
|
||||
-P "${scriptname}"
|
||||
OUTPUT_VARIABLE out
|
||||
|
|
Loading…
Reference in New Issue