1
0
Эх сурвалжийг харах

Tests: Add test for bad foreach inside a function

Add test for a case fixed by commit 6a4a61d9e1 (cmForEachCommand:
prevent leakage, 2017-10-09).  Prior to that fix, this test case
could trigger an assertion failure.

Fixes: #17464
Brad King 8 жил өмнө
parent
commit
fb114a40aa

+ 1 - 0
Tests/RunCMake/CMakeLists.txt

@@ -218,6 +218,7 @@ add_RunCMake_test(find_library)
 add_RunCMake_test(find_package)
 add_RunCMake_test(find_package)
 add_RunCMake_test(find_path)
 add_RunCMake_test(find_path)
 add_RunCMake_test(find_program -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
 add_RunCMake_test(find_program -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
+add_RunCMake_test(foreach)
 add_RunCMake_test(get_filename_component)
 add_RunCMake_test(get_filename_component)
 add_RunCMake_test(get_property)
 add_RunCMake_test(get_property)
 add_RunCMake_test(if)
 add_RunCMake_test(if)

+ 1 - 0
Tests/RunCMake/foreach/BadRangeInFunction-result.txt

@@ -0,0 +1 @@
+1

+ 5 - 0
Tests/RunCMake/foreach/BadRangeInFunction-stderr.txt

@@ -0,0 +1,5 @@
+^CMake Error at BadRangeInFunction.cmake:2 \(foreach\):
+  foreach called with incorrect range specification: start 2, stop 1, step 1
+Call Stack \(most recent call first\):
+  BadRangeInFunction.cmake:5 \(func\)
+  CMakeLists.txt:3 \(include\)$

+ 5 - 0
Tests/RunCMake/foreach/BadRangeInFunction.cmake

@@ -0,0 +1,5 @@
+function(func)
+  foreach(bad_range RANGE 2 1 1)
+  endforeach()
+endfunction()
+func()

+ 3 - 0
Tests/RunCMake/foreach/CMakeLists.txt

@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 3.10)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)

+ 3 - 0
Tests/RunCMake/foreach/RunCMakeTest.cmake

@@ -0,0 +1,3 @@
+include(RunCMake)
+
+run_cmake(BadRangeInFunction)