From bf755c7c381d8d7d84578bf2dc4ac673aefa090a Mon Sep 17 00:00:00 2001 From: "Daniele E. Domenichelli" Date: Wed, 13 Nov 2013 09:18:18 +0100 Subject: [PATCH] set: Add unit tests for set/unset PARENT_SCOPE Create a RunCMake.set test to cover set() command cases, starting with PARENT_SCOPE. --- Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/set/CMakeLists.txt | 3 ++ Tests/RunCMake/set/PARENT_SCOPE-result.txt | 1 + Tests/RunCMake/set/PARENT_SCOPE.cmake | 33 ++++++++++++++++++++++ Tests/RunCMake/set/RunCMakeTest.cmake | 3 ++ 5 files changed, 41 insertions(+) create mode 100644 Tests/RunCMake/set/CMakeLists.txt create mode 100644 Tests/RunCMake/set/PARENT_SCOPE-result.txt create mode 100644 Tests/RunCMake/set/PARENT_SCOPE.cmake create mode 100644 Tests/RunCMake/set/RunCMakeTest.cmake diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index bf3dcc143..bb1b90953 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -107,6 +107,7 @@ add_RunCMake_test(list) add_RunCMake_test(message) add_RunCMake_test(string) add_RunCMake_test(try_compile) +add_RunCMake_test(set) add_RunCMake_test(variable_watch) add_RunCMake_test(CMP0004) add_RunCMake_test(TargetPolicies) diff --git a/Tests/RunCMake/set/CMakeLists.txt b/Tests/RunCMake/set/CMakeLists.txt new file mode 100644 index 000000000..4b3de84d9 --- /dev/null +++ b/Tests/RunCMake/set/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8.12) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/set/PARENT_SCOPE-result.txt b/Tests/RunCMake/set/PARENT_SCOPE-result.txt new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/Tests/RunCMake/set/PARENT_SCOPE-result.txt @@ -0,0 +1 @@ +0 diff --git a/Tests/RunCMake/set/PARENT_SCOPE.cmake b/Tests/RunCMake/set/PARENT_SCOPE.cmake new file mode 100644 index 000000000..9bd6bcace --- /dev/null +++ b/Tests/RunCMake/set/PARENT_SCOPE.cmake @@ -0,0 +1,33 @@ +set(FOO ) +set(BAR "bar") +set(BAZ "baz") +set(BOO "boo") + +function(_parent_scope) + set(FOO "foo" PARENT_SCOPE) + set(BAR "" PARENT_SCOPE) + set(BAZ PARENT_SCOPE) + unset(BOO PARENT_SCOPE) +endfunction() + +_parent_scope() + +if(NOT DEFINED FOO) + message(FATAL_ERROR "FOO not defined") +elseif(NOT "${FOO}" STREQUAL "foo") + message(FATAL_ERROR "FOO should be \"foo\", not \"${FOO}\"") +endif() + +if(NOT DEFINED BAR) + message(FATAL_ERROR "BAR not defined") +elseif(NOT "${BAR}" STREQUAL "") + message(FATAL_ERROR "BAR should be an empty string, not \"${BAR}\"") +endif() + +if(DEFINED BAZ) + message(FATAL_ERROR "BAZ defined") +endif() + +if(DEFINED BOO) + message(FATAL_ERROR "BOO defined") +endif() diff --git a/Tests/RunCMake/set/RunCMakeTest.cmake b/Tests/RunCMake/set/RunCMakeTest.cmake new file mode 100644 index 000000000..5d036e3b8 --- /dev/null +++ b/Tests/RunCMake/set/RunCMakeTest.cmake @@ -0,0 +1,3 @@ +include(RunCMake) + +run_cmake(PARENT_SCOPE)