This is important for BPO builds on the buildds. Backported (from future 2.8.12) and adapted patches: - 0001-Fix-test-failures-caused-by-regexp-sensitive-charact.patch - tests-fix-Memcheck-tests-in-a-dir-with-regex-special.patchci/unstable
parent
f5f605b6a8
commit
43d1f32370
@ -0,0 +1,305 @@
|
|||||||
|
From: Modestas Vainius <modax@debian.org>
|
||||||
|
Date: Sun, 2 Jun 2013 15:47:05 +0200
|
||||||
|
Subject: [PATCH 1/2] Fix test failures caused by regexp-sensitive characters
|
||||||
|
in the build paths
|
||||||
|
Origin: backport, commit: 30b246ded16774a2cce792d24b51edca3c8e4996
|
||||||
|
Forwarded: yes
|
||||||
|
Bug: http://cmake.org/Bug/view.php?id=14183
|
||||||
|
Applied-Upstream: 2.8.12
|
||||||
|
|
||||||
|
Checkout [1] as an example of the test failures. In that particular cases, the
|
||||||
|
failures is caused by the plus sign in the path being pass unescaped
|
||||||
|
(buildd-cmake_2.8.9-1~bpo60+1-armel-3Lvkef) to the regexp.
|
||||||
|
|
||||||
|
In addition to failures in the log, the following new tests also fail in 2.8.11:
|
||||||
|
|
||||||
|
243 - CTestTestMemcheckUnknown (Failed)
|
||||||
|
244 - CTestTestMemcheckUnknownQuoted (Failed)
|
||||||
|
248 - CTestTestMemcheckDummyValgrindFailPre (Failed)
|
||||||
|
249 - CTestTestMemcheckDummyValgrindFailPost (Failed)
|
||||||
|
250 - CTestTestMemcheckDummyPurify (Failed)
|
||||||
|
251 - CTestTestMemcheckDummyBC (Failed)
|
||||||
|
253 - CMake.List (Failed)
|
||||||
|
|
||||||
|
[1] https://buildd.debian.org/status/fetch.php?pkg=cmake&arch=armel&ver=2.8.9-1~bpo60%2B1&stamp=1369243896
|
||||||
|
---
|
||||||
|
Tests/CMakeLists.txt | 5 +----
|
||||||
|
Tests/CMakeTests/GetPropertyTest.cmake.in | 29 ++++++++++++++++-------------
|
||||||
|
Tests/CMakeTests/IfTest.cmake.in | 5 ++++-
|
||||||
|
Tests/CMakeTests/ListTest.cmake.in | 21 ++++++++++++---------
|
||||||
|
Tests/CMakeTests/WhileTest.cmake.in | 14 +++++++++-----
|
||||||
|
Tests/RegexEscapeString.cmake | 4 ++++
|
||||||
|
6 files changed, 46 insertions(+), 32 deletions(-)
|
||||||
|
create mode 100644 Tests/RegexEscapeString.cmake
|
||||||
|
|
||||||
|
--- a/Tests/CMakeLists.txt
|
||||||
|
+++ b/Tests/CMakeLists.txt
|
||||||
|
@@ -15,10 +15,7 @@ macro(ADD_TEST_MACRO NAME COMMAND)
|
||||||
|
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
-macro(REGEX_ESCAPE_STRING _OUT _IN)
|
||||||
|
- # Escape special regex metacharacters with a backslash
|
||||||
|
- string(REGEX REPLACE "([$^.[|*+?()]|])" "\\\\\\1" ${_OUT} "${_IN}")
|
||||||
|
-endmacro()
|
||||||
|
+include(${CMAKE_CURRENT_SOURCE_DIR}/RegexEscapeString.cmake)
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_SOURCE_DIR}/CheckFortran.cmake)
|
||||||
|
|
||||||
|
--- a/Tests/CMakeTests/GetPropertyTest.cmake.in
|
||||||
|
+++ b/Tests/CMakeTests/GetPropertyTest.cmake.in
|
||||||
|
@@ -28,92 +28,95 @@ if(NOT result STREQUAL "alpha")
|
||||||
|
message(SEND_ERROR "bad value of VARIABLE PROPERTY test_var: got '${result}' instead of 'alpha'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
+REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
+
|
||||||
|
set(Missing-Argument-RESULT 1)
|
||||||
|
-set(Missing-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Missing-Argument.cmake:1 \\(get_property\\):.*get_property called with incorrect number of arguments.*")
|
||||||
|
+set(Missing-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Missing-Argument.cmake:1 \\(get_property\\):.*get_property called with incorrect number of arguments.*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Missing-Argument
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Bad-Scope-RESULT 1)
|
||||||
|
-set(Bad-Scope-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Scope.cmake:1 \\(get_property\\):.*get_property given invalid scope FOO\\..*")
|
||||||
|
+set(Bad-Scope-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Scope.cmake:1 \\(get_property\\):.*get_property given invalid scope FOO\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Bad-Scope
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Bad-Argument-RESULT 1)
|
||||||
|
-set(Bad-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Argument.cmake:1 \\(get_property\\):.*get_property given invalid argument \"FOO\"\\..*")
|
||||||
|
+set(Bad-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Argument.cmake:1 \\(get_property\\):.*get_property given invalid argument \"FOO\"\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Bad-Argument
|
||||||
|
)
|
||||||
|
|
||||||
|
set(No-Property-RESULT 1)
|
||||||
|
-set(No-Property-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Property.cmake:1 \\(get_property\\):.*get_property not given a PROPERTY <name> argument\\..*")
|
||||||
|
+set(No-Property-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Property.cmake:1 \\(get_property\\):.*get_property not given a PROPERTY <name> argument\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
No-Property
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Global-Name-RESULT 1)
|
||||||
|
-set(Global-Name-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Global-Name.cmake:1 \\(get_property\\):.*get_property given name for GLOBAL scope\\..*")
|
||||||
|
+set(Global-Name-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Global-Name.cmake:1 \\(get_property\\):.*get_property given name for GLOBAL scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Global-Name
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Bad-Directory-RESULT 1)
|
||||||
|
-set(Bad-Directory-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Directory.cmake:1 \\(get_property\\):.*get_property DIRECTORY scope provided but requested directory was not.*found\\..*")
|
||||||
|
+set(Bad-Directory-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Directory.cmake:1 \\(get_property\\):.*get_property DIRECTORY scope provided but requested directory was not.*found\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Bad-Directory
|
||||||
|
)
|
||||||
|
|
||||||
|
set(No-Target-RESULT 1)
|
||||||
|
-set(No-Target-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Target.cmake:1 \\(get_property\\):.*get_property not given name for TARGET scope\\..*")
|
||||||
|
+set(No-Target-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Target.cmake:1 \\(get_property\\):.*get_property not given name for TARGET scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
No-Target
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Bad-Target-RESULT 1)
|
||||||
|
-set(Bad-Target-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Target.cmake:1 \\(get_property\\):.*get_property could not find TARGET FOO\\..*")
|
||||||
|
+set(Bad-Target-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Target.cmake:1 \\(get_property\\):.*get_property could not find TARGET FOO\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Bad-Target
|
||||||
|
)
|
||||||
|
|
||||||
|
set(No-Source-RESULT 1)
|
||||||
|
-set(No-Source-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Source.cmake:1 \\(get_property\\):.*get_property not given name for SOURCE scope\\..*")
|
||||||
|
+set(No-Source-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Source.cmake:1 \\(get_property\\):.*get_property not given name for SOURCE scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
No-Source
|
||||||
|
)
|
||||||
|
|
||||||
|
set(No-Test-RESULT 1)
|
||||||
|
-set(No-Test-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Test.cmake:1 \\(get_property\\):.*get_property not given name for TEST scope\\..*")
|
||||||
|
+set(No-Test-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Test.cmake:1 \\(get_property\\):.*get_property not given name for TEST scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
No-Test
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Bad-Test-RESULT 1)
|
||||||
|
-set(Bad-Test-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Bad-Test.cmake:1 \\(get_property\\):.*get_property given TEST name that does not exist: FOO.*")
|
||||||
|
+set(Bad-Test-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Bad-Test.cmake:1 \\(get_property\\):.*get_property given TEST name that does not exist: FOO.*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Bad-Test
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Variable-Name-RESULT 1)
|
||||||
|
-set(Variable-Name-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-Variable-Name.cmake:1 \\(get_property\\):.*get_property given name for VARIABLE scope\\..*")
|
||||||
|
+set(Variable-Name-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-Variable-Name.cmake:1 \\(get_property\\):.*get_property given name for VARIABLE scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
Variable-Name
|
||||||
|
)
|
||||||
|
|
||||||
|
set(No-Cache-RESULT 1)
|
||||||
|
-set(No-Cache-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?GetProperty-No-Cache.cmake:1 \\(get_property\\):.*get_property not given name for CACHE scope\\..*")
|
||||||
|
+set(No-Cache-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?GetProperty-No-Cache.cmake:1 \\(get_property\\):.*get_property not given name for CACHE scope\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(GetProperty
|
||||||
|
No-Cache
|
||||||
|
--- a/Tests/CMakeTests/IfTest.cmake.in
|
||||||
|
+++ b/Tests/CMakeTests/IfTest.cmake.in
|
||||||
|
@@ -7,6 +7,9 @@ foreach(_arg "" 0 1 2 ${TRUE_NAMES} ${FA
|
||||||
|
set(VAR_${_arg} "${_arg}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
+include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
+REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
+
|
||||||
|
macro(test_vars _old)
|
||||||
|
# Variables set to false or not set.
|
||||||
|
foreach(_var "" 0 ${FALSE_NAMES} UNDEFINED)
|
||||||
|
@@ -158,7 +161,7 @@ endforeach()
|
||||||
|
test_vars("")
|
||||||
|
|
||||||
|
set(Invalid-Argument-RESULT 1)
|
||||||
|
-set(Invalid-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?If-Invalid-Argument.cmake:1 \\(if\\):.*Unknown arguments specified.*")
|
||||||
|
+set(Invalid-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?If-Invalid-Argument.cmake:1 \\(if\\):.*Unknown arguments specified.*")
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
|
check_cmake_test(If
|
||||||
|
--- a/Tests/CMakeTests/ListTest.cmake.in
|
||||||
|
+++ b/Tests/CMakeTests/ListTest.cmake.in
|
||||||
|
@@ -1,5 +1,8 @@
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
|
|
||||||
|
+include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
+REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
+
|
||||||
|
macro(TEST command expected)
|
||||||
|
if("x${result}" STREQUAL "x${expected}")
|
||||||
|
#message("TEST \"${command}\" success: \"${result}\" expected: \"${expected}\"")
|
||||||
|
@@ -101,7 +104,7 @@ list(SORT result)
|
||||||
|
TEST("SORT empty result" "")
|
||||||
|
|
||||||
|
set(No-Arguments-RESULT 1)
|
||||||
|
-set(No-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
|
||||||
|
+set(No-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
|
||||||
|
|
||||||
|
# these trigger top-level condition
|
||||||
|
foreach(cmd IN ITEMS Append Find Get Insert Length Reverse Remove_At Remove_Duplicates Remove_Item Sort)
|
||||||
|
@@ -130,33 +133,33 @@ foreach(cmd IN ITEMS Find Get Insert Len
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(Length-Too-Many-Arguments-RESULT 1)
|
||||||
|
-set(Length-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Length-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command LENGTH requires two arguments.*")
|
||||||
|
+set(Length-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Length-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command LENGTH requires two arguments.*")
|
||||||
|
|
||||||
|
set(Reverse-Too-Many-Arguments-RESULT 1)
|
||||||
|
-set(Reverse-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Reverse-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REVERSE only takes one argument.*")
|
||||||
|
+set(Reverse-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Reverse-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REVERSE only takes one argument.*")
|
||||||
|
|
||||||
|
set(Remove_Duplicates-Too-Many-Arguments-RESULT 1)
|
||||||
|
-set(Remove_Duplicates-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Remove_Duplicates-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_DUPLICATES only takes one argument.*")
|
||||||
|
+set(Remove_Duplicates-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Remove_Duplicates-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_DUPLICATES only takes one argument.*")
|
||||||
|
|
||||||
|
set(Sort-Too-Many-Arguments-RESULT 1)
|
||||||
|
-set(Sort-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Sort-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command SORT only takes one argument.*")
|
||||||
|
+set(Sort-Too-Many-Arguments-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Sort-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command SORT only takes one argument.*")
|
||||||
|
|
||||||
|
set(Invalid-Subcommand-RESULT 1)
|
||||||
|
-set(Invalid-Subcommand-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Invalid-Subcommand.cmake:1 \\(list\\):.*list does not recognize sub-command NO_SUCH_SUBCOMMAND.*")
|
||||||
|
+set(Invalid-Subcommand-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Invalid-Subcommand.cmake:1 \\(list\\):.*list does not recognize sub-command NO_SUCH_SUBCOMMAND.*")
|
||||||
|
|
||||||
|
foreach(cmd Get Insert Remove_At)
|
||||||
|
set(${cmd}-Invalid-Index-RESULT 1)
|
||||||
|
- set(${cmd}-Invalid-Index-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-${cmd}-Invalid-Index.cmake:2 \\(list\\):.*list index: 3 out of range \\(-3, 2\\).*")
|
||||||
|
+ set(${cmd}-Invalid-Index-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-${cmd}-Invalid-Index.cmake:2 \\(list\\):.*list index: 3 out of range \\(-3, 2\\).*")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
foreach(cmd Remove_Item Reverse Remove_Duplicates Sort Remove_At)
|
||||||
|
string(TOUPPER ${cmd} Cmd)
|
||||||
|
set(${cmd}-Nonexistent-List-RESULT 1)
|
||||||
|
- 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 (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-${cmd}-Nonexistent-List.cmake:2 \\(list\\):.*sub-command ${Cmd} requires list to be present.*")
|
||||||
|
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:.*")
|
||||||
|
+set(Get-CMP0007-Warn-STDERR ".*CMake Warning \\(dev\\) at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?List-Get-CMP0007-Warn.cmake:3 \\(list\\):.*Policy CMP0007 is not set:.*")
|
||||||
|
|
||||||
|
check_cmake_test(List
|
||||||
|
No-Arguments
|
||||||
|
--- a/Tests/CMakeTests/WhileTest.cmake.in
|
||||||
|
+++ b/Tests/CMakeTests/WhileTest.cmake.in
|
||||||
|
@@ -1,6 +1,9 @@
|
||||||
|
set(NUMBERS "")
|
||||||
|
set(COUNT 0)
|
||||||
|
|
||||||
|
+include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
+REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||||
|
+
|
||||||
|
while(COUNT LESS 200)
|
||||||
|
set(NUMBERS "${NUMBERS} ${COUNT}")
|
||||||
|
set(COUNT "2${COUNT}")
|
||||||
|
@@ -16,8 +19,9 @@ if(NOT NUMBERS STREQUAL " 0 3 30 20 3 30
|
||||||
|
message(SEND_ERROR "while loop nesting error, result: '${NUMBERS}'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+
|
||||||
|
set(Missing-Argument-RESULT 1)
|
||||||
|
-set(Missing-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Argument.cmake:1 \\(while\\):.*while called with incorrect number of arguments.*")
|
||||||
|
+set(Missing-Argument-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Argument.cmake:1 \\(while\\):.*while called with incorrect number of arguments.*")
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake")
|
||||||
|
check_cmake_test(While
|
||||||
|
@@ -25,28 +29,28 @@ check_cmake_test(While
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Missing-Endwhile-RESULT 1)
|
||||||
|
-set(Missing-Endwhile-STDERR ".*CMake Error in (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Endwhile.cmake:.*A logical block opening on the line.*(@CMAKE_CURRENT_SOURCE_DIR@/)?While-Missing-Endwhile.cmake:1 \\(while\\).*is not closed\\..*")
|
||||||
|
+set(Missing-Endwhile-STDERR ".*CMake Error in (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Endwhile.cmake:.*A logical block opening on the line.*(${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Missing-Endwhile.cmake:1 \\(while\\).*is not closed\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(While
|
||||||
|
Missing-Endwhile
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Endwhile-Mismatch-RESULT 0)
|
||||||
|
-set(Endwhile-Mismatch-STDERR ".*CMake Warning \\(dev\\) in (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Mismatch.cmake:.*A logical block opening on the line.*(@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Mismatch.cmake:1 \\(while\\).*with mis-matching arguments\\..*")
|
||||||
|
+set(Endwhile-Mismatch-STDERR ".*CMake Warning \\(dev\\) in (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Mismatch.cmake:.*A logical block opening on the line.*(${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Mismatch.cmake:1 \\(while\\).*with mis-matching arguments\\..*")
|
||||||
|
|
||||||
|
check_cmake_test(While
|
||||||
|
Endwhile-Mismatch
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Endwhile-Alone-RESULT 1)
|
||||||
|
-set(Endwhile-Alone-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Alone.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\.\n.*$")
|
||||||
|
+set(Endwhile-Alone-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Alone.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\.\n.*$")
|
||||||
|
|
||||||
|
check_cmake_test(While
|
||||||
|
Endwhile-Alone
|
||||||
|
)
|
||||||
|
|
||||||
|
set(Endwhile-Alone-Args-RESULT 1)
|
||||||
|
-set(Endwhile-Alone-Args-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?While-Endwhile-Alone-Args.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\. Or its arguments did not.*$")
|
||||||
|
+set(Endwhile-Alone-Args-STDERR ".*CMake Error at (${CTEST_ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/)?While-Endwhile-Alone-Args.cmake:1 \\(endwhile\\):.*An ENDWHILE command was found outside of a proper WHILE ENDWHILE.*structure\\. Or its arguments did not.*$")
|
||||||
|
|
||||||
|
check_cmake_test(While
|
||||||
|
Endwhile-Alone-Args
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/Tests/RegexEscapeString.cmake
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+macro(REGEX_ESCAPE_STRING _OUT _IN)
|
||||||
|
+ # Escape special regex metacharacters with a backslash
|
||||||
|
+ string(REGEX REPLACE "([$^.[|*+?()]|])" "\\\\\\1" ${_OUT} "${_IN}")
|
||||||
|
+endmacro()
|
@ -0,0 +1,47 @@
|
|||||||
|
From: Modestas Vainius <modax@debian.org>
|
||||||
|
Date: Sun, 02 Jun 2013 22:04:53 +0300
|
||||||
|
Subject: tests: fix Memcheck tests in a dir with regex special chars (#14183)
|
||||||
|
Origin: vendor
|
||||||
|
Forwarded: yes
|
||||||
|
Bug: http://cmake.org/Bug/view.php?id=14183
|
||||||
|
Applied-Upstream: 2.8.12
|
||||||
|
|
||||||
|
Adapted version of upstream commit ec5b59a3d39ec9687ebde69b299de77992f82518 for 2.8.11.
|
||||||
|
|
||||||
|
--- a/Tests/CTestTestMemcheck/CMakeLists.txt
|
||||||
|
+++ b/Tests/CTestTestMemcheck/CMakeLists.txt
|
||||||
|
@@ -1,3 +1,6 @@
|
||||||
|
+include("@CMAKE_CURRENT_SOURCE_DIR@/../RegexEscapeString.cmake")
|
||||||
|
+REGEX_ESCAPE_STRING(CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
+
|
||||||
|
foreach (_retval 0 1)
|
||||||
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ret${_retval}.c" "int main(){return ${_retval};}\n")
|
||||||
|
endforeach ()
|
||||||
|
@@ -49,7 +52,7 @@ string(REPLACE "+" "\\+" CMAKE_COMMAND_E
|
||||||
|
|
||||||
|
foreach (_unkn Unknown UnknownQuoted)
|
||||||
|
set_tests_properties(CTestTestMemcheck${_unkn} PROPERTIES
|
||||||
|
- PASS_REGULAR_EXPRESSION "Do not understand memory checker: ${CMAKE_COMMAND_ESCAPED}\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/${_unkn}/test.cmake\n")
|
||||||
|
+ PASS_REGULAR_EXPRESSION "Do not understand memory checker: ${CMAKE_COMMAND_ESCAPED}\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/${_unkn}/test.cmake\n")
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
set_tests_properties(CTestTestMemcheckNotExist PROPERTIES
|
||||||
|
@@ -67,7 +70,7 @@ foreach (_pp Pre Post)
|
||||||
|
string(TOLOWER ${_pp} _pp_lower)
|
||||||
|
set_tests_properties(CTestTestMemcheckDummyValgrindFail${_pp}
|
||||||
|
PROPERTIES
|
||||||
|
- PASS_REGULAR_EXPRESSION "\nProblem running command: ${CMAKE_CURRENT_BINARY_DIR}[^\n]*fail[^\n]*\n(.*\n)?Problem executing ${_pp_lower}-memcheck command\\(s\\\).\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyValgrindFail${_pp}/test.cmake\n")
|
||||||
|
+ PASS_REGULAR_EXPRESSION "\nProblem running command: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}[^\n]*fail[^\n]*\n(.*\n)?Problem executing ${_pp_lower}-memcheck command\\(s\\\).\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyValgrindFail${_pp}/test.cmake\n")
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
set_tests_properties(CTestTestMemcheckDummyValgrindIgnoreMemcheck
|
||||||
|
@@ -75,7 +78,7 @@ set_tests_properties(CTestTestMemcheckDu
|
||||||
|
PASS_REGULAR_EXPRESSION "\n2/2 Test #2: RunCMakeAgain .*\n1/1 MemCheck #1: RunCMake .*${NORMAL_CTEST_OUTPUT}")
|
||||||
|
|
||||||
|
set_tests_properties(CTestTestMemcheckDummyPurify PROPERTIES
|
||||||
|
- PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CMAKE_CURRENT_BINARY_DIR}/DummyPurify/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyPurify/test.cmake\n")
|
||||||
|
+ PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyPurify/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyPurify/test.cmake\n")
|
||||||
|
|
||||||
|
set_tests_properties(CTestTestMemcheckDummyBC PROPERTIES
|
||||||
|
- PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CMAKE_CURRENT_BINARY_DIR}/DummyBC/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error parsing XML in stream at line 1: no element found\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyBC/test.cmake\n")
|
||||||
|
+ PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyBC/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error parsing XML in stream at line 1: no element found\n(.*\n)?Error in read script: ${CTEST_ESCAPED_CMAKE_CURRENT_BINARY_DIR}/DummyBC/test.cmake\n")
|
Loading…
Reference in new issue