list: add tests for CMP0007 behavior

This commit is contained in:
Rolf Eike Beer 2012-09-30 10:44:18 +02:00
parent 48ed48f7ad
commit 56125a3f36
2 changed files with 20 additions and 0 deletions

View File

@ -0,0 +1,6 @@
set(thelist "" NEW OLD)
list(GET thelist 1 thevalue)
if (NOT thevalue STREQUAL "OLD")
message(SEND_ERROR "returned element '${thevalue}', but expected 'OLD'")
endif()

View File

@ -155,6 +155,9 @@ foreach(cmd Remove_Item Reverse Remove_Duplicates Sort Remove_At)
set(${cmd}-Nonexistent-List-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-${cmd}-Nonexistent-List.cmake:2 \\(list\\):.*sub-command ${Cmd} requires list to be present.*") set(${cmd}-Nonexistent-List-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-${cmd}-Nonexistent-List.cmake:2 \\(list\\):.*sub-command ${Cmd} requires list to be present.*")
endforeach() endforeach()
set(Get-CMP0007-Warn-RESULT 0)
set(Get-CMP0007-Warn-STDERR ".*CMake Warning \\(dev\\) at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Get-CMP0007-Warn.cmake:3 \\(list\\):.*Policy CMP0007 is not set:.*")
check_cmake_test(List check_cmake_test(List
No-Arguments No-Arguments
Length-Too-Many-Arguments Length-Too-Many-Arguments
@ -170,4 +173,15 @@ check_cmake_test(List
Sort-Nonexistent-List Sort-Nonexistent-List
Remove_At-Nonexistent-List Remove_At-Nonexistent-List
Remove_At-Invalid-Index Remove_At-Invalid-Index
Get-CMP0007-Warn
) )
set(thelist "" NEW OLD)
foreach (_pol ${thelist})
cmake_policy(SET CMP0007 ${_pol})
list(GET thelist 1 thevalue)
if (NOT thevalue STREQUAL _pol)
message(SEND_ERROR "returned element '${thevalue}', but expected '${_pol}'")
endif()
endforeach (_pol)