Jelajahi Sumber

ENH: add a new test to test try compile

Bill Hoffman 23 tahun lalu
induk
melakukan
d94c0e0429
3 mengubah file dengan 60 tambahan dan 0 penghapusan
  1. 53 0
      Tests/TryCompile/CMakeLists.txt
  2. 1 0
      Tests/TryCompile/fail.c
  3. 6 0
      Tests/TryCompile/pass.c

+ 53 - 0
Tests/TryCompile/CMakeLists.txt

@@ -0,0 +1,53 @@
+PROJECT(TryCompileTest)
+
+# try to compile a file that should compile
+TRY_COMPILE(SHOULD_PASS
+    ${TryCompileTest_BINARY_DIR}/CMakeTmp  
+    ${TryCompileTest_SOURCE_DIR}/pass.c
+    OUTPUT_VARIABLE TRY_OUT)
+IF(NOT SHOULD_PASS)
+  MESSAGE(SEND_ERROR "should pass failed ")
+ENDIF(NOT SHOULD_PASS)
+MESSAGE( "output from TRY_COMPILE ${TRY_OUT} ")
+
+# try to compile a file that should not compile
+TRY_COMPILE(SHOULD_FAIL
+    ${TryCompileTest_BINARY_DIR}/CMakeTmp  
+    ${TryCompileTest_SOURCE_DIR}/fail.c
+    OUTPUT_VARIABLE TRY_OUT)
+IF(SHOULD_FAIL)
+   MESSAGE(SEND_ERROR "Should fail passed")
+ENDIF(SHOULD_FAIL)
+MESSAGE("output from TRY_COMPILE ${TRY_OUT} ")
+
+# try to compile a file that should compile
+TRY_COMPILE(SHOULD_PASS
+    ${TryCompileTest_BINARY_DIR}/CMakeTmp  
+    ${TryCompileTest_SOURCE_DIR}/pass.c
+    OUTPUT_VARIABLE TRY_OUT)
+IF(NOT SHOULD_PASS)
+  MESSAGE(SEND_ERROR "should pass failed ")
+ENDIF(NOT SHOULD_PASS)
+MESSAGE("output from TRY_COMPILE ${TRY_OUT} ")
+
+# try to compile a file that should not compile
+TRY_COMPILE(SHOULD_FAIL
+    ${TryCompileTest_BINARY_DIR}/CMakeTmp 
+    ${TryCompileTest_SOURCE_DIR}/fail.c
+    OUTPUT_VARIABLE TRY_OUT)
+IF(SHOULD_FAIL)
+   MESSAGE(SEND_ERROR "Should fail passed")
+ENDIF(SHOULD_FAIL)
+MESSAGE("output from TRY_COMPILE ${TRY_OUT} ")
+
+IF(NOT SHOULD_FAIL)
+  IF(SHOULD_PASS)
+    MESSAGE("All Tests passed, ignore all previous output.")
+  ELSE(SHOULD_PASS)
+    MESSAGE("Test failed")
+  ENDIF(SHOULD_PASS)
+ELSE(NOT SHOULD_FAIL)
+  MESSAGE("Test failed")
+ENDIF(NOT SHOULD_FAIL)
+
+ 

+ 1 - 0
Tests/TryCompile/fail.c

@@ -0,0 +1 @@
+asdflkjasdlj

+ 6 - 0
Tests/TryCompile/pass.c

@@ -0,0 +1,6 @@
+int main()
+{
+  return 0;
+}
+
+