summaryrefslogtreecommitdiffstats
path: root/Tests/ComplexRelativePaths
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2002-07-16 21:42:56 (GMT)
committerBrad King <brad.king@kitware.com>2002-07-16 21:42:56 (GMT)
commit3d3caacf9ec9f99cebcfaeb5ab105daa1046f945 (patch)
tree7ce557ef4bbce9d386c6db2d4065415642f79b7f /Tests/ComplexRelativePaths
parent08f2876bb438d229388984b851e11bfaa86a6e24 (diff)
downloadCMake-3d3caacf9ec9f99cebcfaeb5ab105daa1046f945.zip
CMake-3d3caacf9ec9f99cebcfaeb5ab105daa1046f945.tar.gz
CMake-3d3caacf9ec9f99cebcfaeb5ab105daa1046f945.tar.bz2
ENH: Added test for IF inside a FOREACH.
Diffstat (limited to 'Tests/ComplexRelativePaths')
-rw-r--r--Tests/ComplexRelativePaths/CMakeLists.txt14
-rw-r--r--Tests/ComplexRelativePaths/Executable/complex.cxx12
-rw-r--r--Tests/ComplexRelativePaths/cmTestConfigure.h.in4
3 files changed, 28 insertions, 2 deletions
diff --git a/Tests/ComplexRelativePaths/CMakeLists.txt b/Tests/ComplexRelativePaths/CMakeLists.txt
index 0549c6f..2d6de20 100644
--- a/Tests/ComplexRelativePaths/CMakeLists.txt
+++ b/Tests/ComplexRelativePaths/CMakeLists.txt
@@ -161,6 +161,20 @@ SET(removeVar1 c e)
REMOVE(REMOVE_STRING ${removeVar1} f)
#
+# Test an IF inside a FOREACH.
+#
+FOREACH(x "a")
+ IF(1)
+ # Should always execute.
+ SET(IF_INSIDE_FOREACH_THEN_EXECUTED 1)
+ ELSE(1)
+ # Should never execute.
+ SET(IF_INSIDE_FOREACH_ELSE_EXECUTED 1)
+ ENDIF(1)
+ENDFOREACH(x)
+
+
+#
# Configure file
# (plug vars to #define so that they can be tested)
#
diff --git a/Tests/ComplexRelativePaths/Executable/complex.cxx b/Tests/ComplexRelativePaths/Executable/complex.cxx
index e8885e5..c5969cb 100644
--- a/Tests/ComplexRelativePaths/Executable/complex.cxx
+++ b/Tests/ComplexRelativePaths/Executable/complex.cxx
@@ -799,8 +799,16 @@ int main()
else
{
cmFailed("cmSystemTools::UpperCase is working");
- }
-
+ }
+
+ // ----------------------------------------------------------------------
+ // Test if IF command inside a FOREACH works.
+#if defined(IF_INSIDE_FOREACH_THEN_EXECUTED) && !defined(IF_INSIDE_FOREACH_ELSE_EXECUTED)
+ cmPassed("IF inside a FOREACH block works");
+#else
+ cmFailed("IF inside a FOREACH block is broken");
+#endif
+
// ----------------------------------------------------------------------
// Summary
diff --git a/Tests/ComplexRelativePaths/cmTestConfigure.h.in b/Tests/ComplexRelativePaths/cmTestConfigure.h.in
index f89b615..350a9c0 100644
--- a/Tests/ComplexRelativePaths/cmTestConfigure.h.in
+++ b/Tests/ComplexRelativePaths/cmTestConfigure.h.in
@@ -60,3 +60,7 @@
// Test Remove command
#define REMOVE_STRING "${REMOVE_STRING}"
+
+// Test IF inside FOREACH
+#cmakedefine IF_INSIDE_FOREACH_THEN_EXECUTED
+#cmakedefine IF_INSIDE_FOREACH_ELSE_EXECUTED