Kaynağa Gözat

ENH: Added test for IF inside a FOREACH.

Brad King 23 yıl önce
ebeveyn
işleme
3d3caacf9e

+ 14 - 0
Tests/Complex/CMakeLists.txt

@@ -160,6 +160,20 @@ SET(REMOVE_STRING a b c d e f)
 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)

+ 10 - 2
Tests/Complex/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
 

+ 4 - 0
Tests/Complex/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

+ 14 - 0
Tests/ComplexOneConfig/CMakeLists.txt

@@ -160,6 +160,20 @@ SET(REMOVE_STRING a b c d e f)
 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)

+ 10 - 2
Tests/ComplexOneConfig/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
 

+ 4 - 0
Tests/ComplexOneConfig/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

+ 14 - 0
Tests/ComplexRelativePaths/CMakeLists.txt

@@ -160,6 +160,20 @@ SET(REMOVE_STRING a b c d e f)
 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)

+ 10 - 2
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
 

+ 4 - 0
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