summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2020-10-20 14:47:38 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2020-10-22 15:40:48 (GMT)
commit12f6e37eb79ad66c30269a3f19dfc28a9cb834e2 (patch)
tree056b3662153bfdae6859fd5030582ced45880eb0 /Tests/CMakeTests
parent67383725bd40a92db85738f8d0c120e2c9bb2100 (diff)
downloadCMake-12f6e37eb79ad66c30269a3f19dfc28a9cb834e2.zip
CMake-12f6e37eb79ad66c30269a3f19dfc28a9cb834e2.tar.gz
CMake-12f6e37eb79ad66c30269a3f19dfc28a9cb834e2.tar.bz2
cmListFileCache: Enforce proper nesting of flow control statements
Fixes: #19153
Diffstat (limited to 'Tests/CMakeTests')
-rw-r--r--Tests/CMakeTests/EndStuffTestScript.cmake60
1 files changed, 16 insertions, 44 deletions
diff --git a/Tests/CMakeTests/EndStuffTestScript.cmake b/Tests/CMakeTests/EndStuffTestScript.cmake
index 9f40818..6a6b162 100644
--- a/Tests/CMakeTests/EndStuffTestScript.cmake
+++ b/Tests/CMakeTests/EndStuffTestScript.cmake
@@ -1,68 +1,40 @@
message(STATUS "testname='${testname}'")
-if(testname STREQUAL bad_else) # fail
- file(WRITE "${dir}/${testname}.cmake"
-"else()
-")
+function(do_end content)
+ file(WRITE "${dir}/${testname}.cmake" "${content}")
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
RESULT_VARIABLE rv)
if(NOT rv EQUAL 0)
message(FATAL_ERROR "${testname} failed")
endif()
+endfunction()
+
+if(testname STREQUAL bad_else) # fail
+ do_end("else()\n")
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()
+ do_end("elseif()\n")
elseif(testname STREQUAL bad_endforeach) # fail
- endforeach()
+ do_end("endforeach()\n")
elseif(testname STREQUAL bad_endfunction) # fail
- endfunction()
+ do_end("endfunction()\n")
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()
+ do_end("cmake_minimum_required(VERSION 2.8)\nendif()\n")
-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_low_min_version) # fail
+ do_end("cmake_minimum_required(VERSION 1.2)\nendif()\n")
-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 endif_no_min_version) # fail
+ do_end("endif()\n")
elseif(testname STREQUAL bad_endmacro) # fail
- endmacro()
+ do_end("endmacro()\n")
elseif(testname STREQUAL bad_endwhile) # fail
- endwhile()
+ do_end("endwhile()\n")
else() # fail
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")