test: add a test for clearing regex results

This commit is contained in:
Ben Boeckel 2014-11-26 12:46:55 -05:00
parent 3350e4d209
commit 7878d06189
5 changed files with 116 additions and 0 deletions

View File

@ -0,0 +1,54 @@
^Matched string properly
results from: setting up initial state
CMAKE_MATCH_0: -->01<--
CMAKE_MATCH_1: -->0<--
CMAKE_MATCH_2: -->1<--
CMAKE_MATCH_COUNT: -->2<--
Matched string properly
results from: making a match inside of find_package
CMAKE_MATCH_0: -->01<--
CMAKE_MATCH_1: -->0<--
CMAKE_MATCH_2: -->1<--
CMAKE_MATCH_COUNT: -->2<--
Matched nothing properly
results from: making a failure inside of find_package
CMAKE_MATCH_0: --><--
CMAKE_MATCH_1: --><--
CMAKE_MATCH_2: --><--
CMAKE_MATCH_COUNT: -->0<--
Matched nothing properly
results from: checking after find_package
CMAKE_MATCH_0: --><--
CMAKE_MATCH_1: --><--
CMAKE_MATCH_2: --><--
CMAKE_MATCH_COUNT: -->0<--
Matched nothing properly
results from: clearing out results with a failing match
CMAKE_MATCH_0: --><--
CMAKE_MATCH_1: --><--
CMAKE_MATCH_2: --><--
CMAKE_MATCH_COUNT: -->0<--
Matched string properly
results from: making a successful match before add_subdirectory
CMAKE_MATCH_0: -->01<--
CMAKE_MATCH_1: -->0<--
CMAKE_MATCH_2: -->1<--
CMAKE_MATCH_COUNT: -->2<--
Matched string properly
results from: check for success in add_subdirectory
CMAKE_MATCH_0: -->01<--
CMAKE_MATCH_1: -->0<--
CMAKE_MATCH_2: -->1<--
CMAKE_MATCH_COUNT: -->2<--
Matched nothing properly
results from: failing inside of add_subdirectory
CMAKE_MATCH_0: --><--
CMAKE_MATCH_1: --><--
CMAKE_MATCH_2: --><--
CMAKE_MATCH_COUNT: -->0<--
Matched string properly
results from: ensuring the subdirectory did not interfere with the parent
CMAKE_MATCH_0: -->01<--
CMAKE_MATCH_1: -->0<--
CMAKE_MATCH_2: -->1<--
CMAKE_MATCH_COUNT: -->2<--$

View File

@ -0,0 +1,54 @@
cmake_minimum_required (VERSION 3.0)
project (RegexClear C)
function (output_results msg)
message("results from: ${msg}")
message("CMAKE_MATCH_0: -->${CMAKE_MATCH_0}<--")
message("CMAKE_MATCH_1: -->${CMAKE_MATCH_1}<--")
message("CMAKE_MATCH_2: -->${CMAKE_MATCH_2}<--")
message("CMAKE_MATCH_COUNT: -->${CMAKE_MATCH_COUNT}<--")
endfunction ()
function (check_for_success msg)
if (CMAKE_MATCH_1 STREQUAL "0" AND
CMAKE_MATCH_2 STREQUAL "1")
message("Matched string properly")
else ()
message("Failed to match properly")
endif ()
output_results("${msg}")
endfunction ()
function (check_for_failure msg)
if (CMAKE_MATCH_1 STREQUAL "" AND
CMAKE_MATCH_2 STREQUAL "")
message("Matched nothing properly")
else ()
message("Found a match where there should be none")
endif ()
output_results("${msg}")
endfunction ()
macro (do_regex_success msg)
string(REGEX MATCH "(0)(1)" output "01")
check_for_success("${msg}")
endmacro ()
macro (do_regex_failure msg)
string(REGEX MATCH "(0)(1)" output "12")
check_for_failure("${msg}")
endmacro ()
do_regex_success("setting up initial state")
list(INSERT CMAKE_MODULE_PATH 0
"${CMAKE_CURRENT_SOURCE_DIR}/cmake")
find_package(dummy) # Ensure cmMakefile::PushScope/PopScope work.
check_for_failure("checking after find_package")
do_regex_failure("clearing out results with a failing match")
do_regex_success("making a successful match before add_subdirectory")
add_subdirectory(subdir)
check_for_success("ensuring the subdirectory did not interfere with the parent") # Ensure that the subdir didn't mess with this scope.

View File

@ -10,3 +10,5 @@ run_cmake(UuidBadNamespace)
run_cmake(UuidMissingNameValue)
run_cmake(UuidMissingTypeValue)
run_cmake(UuidBadType)
run_cmake(RegexClear)

View File

@ -0,0 +1,4 @@
check_for_success("making a match inside of find_package")
do_regex_failure("making a failure inside of find_package")
set(dummy_FOUND 1)

View File

@ -0,0 +1,2 @@
check_for_success("check for success in add_subdirectory")
do_regex_failure("failing inside of add_subdirectory")