Browse Source

ENH: clean up loaded command test so you can tell what really failed

Bill Hoffman 21 years ago
parent
commit
5eda379907

+ 4 - 2
Tests/LoadCommand/CMakeLists.txt

@@ -5,6 +5,7 @@ SET (TEST_COMMAND_TEST1 1)
 
 INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
 CHECK_TYPE_SIZE(char  SIZEOF_CHAR)
+CHECK_TYPE_SIZE(short  SIZEOF_SHORT)
 
 INCLUDE (CheckFunctionExists)
 CHECK_FUNCTION_EXISTS(printf        HAVE_PRINTF)
@@ -55,8 +56,9 @@ ELSE (COMPILE_OK)
   MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
 ENDIF (COMPILE_OK)
 
-IF (TEST_DEF)
+# TEST_DEF is set by the loaded command cmTestCommand.c
+IF (TEST_DEF AND SOME_CACHE_VARIABLE)
   ADD_DEFINITIONS(-DCMAKE_IS_FUN)
-ENDIF (TEST_DEF)
+ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE)
 
 ADD_EXECUTABLE (LoadedCommand LoadedCommand.cxx)

+ 22 - 11
Tests/LoadCommand/LoadedCommand.cxx

@@ -1,30 +1,41 @@
 #include "LoadedCommand.h"
 #include <stdio.h>
 
+int testSizeOf(int s1, int s2)
+{
+  return s1 - s2;
+}
+
 int main ()
 {
+  int ret = 0;
 #ifdef HAVE_VSBLABLA
   printf("Should not be able to find vsblabla\n");
-  return 1;
+  ret = 1;
 #endif
 
 #if !defined( HAVE_PRINTF )
   printf("Should be able to find printf\n");
-  return 1;
+  ret= 1;
 #endif
 
 #if !defined( ADDED_DEFINITION )
   printf("Should have ADDED_DEFINITION defined\n");
-  return 1;
+  ret= 1;
+#endif
+#if !defined(CMAKE_IS_FUN)
+  printf("Loaded Command was not built with CMAKE_IS_FUN: failed.\n");
+  ret = 1;
 #endif
-  if(SIZEOF_CHAR != 1)
+  if(testSizeOf(SIZEOF_CHAR, sizeof(char)))
     {
-    printf("Size of char is not one, something is broken\n");
+    printf("Size of char is broken.\n");
+    ret = 1;
     }
-  
-#ifdef CMAKE_IS_FUN
-  return SIZEOF_CHAR-1;
-#else  
-  return SIZEOF_SHORT;
-#endif
+  if(testSizeOf(SIZEOF_SHORT, sizeof(short)))
+    {
+    printf("Size of short is broken.\n");
+    ret = 1;
+    }
+  return ret;
 }

+ 2 - 1
Tests/LoadCommand/LoadedCommand.h.in

@@ -1,5 +1,6 @@
 /* Check for size of types */
 #cmakedefine SIZEOF_CHAR      ${SIZEOF_CHAR}
+#cmakedefine SIZEOF_SHORT      ${SIZEOF_SHORT}
 
 /* Check for functions */
 #cmakedefine HAVE_PRINTF
@@ -9,4 +10,4 @@
 #cmakedefine HAVE_SYS_PRCTL_H
 
 /* Check for libraries */
-#cmakedefine HAVE_LIBM
+#cmakedefine HAVE_LIBM

+ 4 - 2
Tests/LoadCommandOneConfig/CMakeLists.txt

@@ -5,6 +5,7 @@ SET (TEST_COMMAND_TEST1 1)
 
 INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
 CHECK_TYPE_SIZE(char  SIZEOF_CHAR)
+CHECK_TYPE_SIZE(short  SIZEOF_SHORT)
 
 INCLUDE (CheckFunctionExists)
 CHECK_FUNCTION_EXISTS(printf        HAVE_PRINTF)
@@ -55,8 +56,9 @@ ELSE (COMPILE_OK)
   MESSAGE("failed to compile CMAKE_LOADED_COMMANDS")
 ENDIF (COMPILE_OK)
 
-IF (TEST_DEF)
+# TEST_DEF is set by the loaded command cmTestCommand.c
+IF (TEST_DEF AND SOME_CACHE_VARIABLE)
   ADD_DEFINITIONS(-DCMAKE_IS_FUN)
-ENDIF (TEST_DEF)
+ENDIF (TEST_DEF AND SOME_CACHE_VARIABLE)
 
 ADD_EXECUTABLE (LoadedCommand LoadedCommand.cxx)

+ 22 - 11
Tests/LoadCommandOneConfig/LoadedCommand.cxx

@@ -1,30 +1,41 @@
 #include "LoadedCommand.h"
 #include <stdio.h>
 
+int testSizeOf(int s1, int s2)
+{
+  return s1 - s2;
+}
+
 int main ()
 {
+  int ret = 0;
 #ifdef HAVE_VSBLABLA
   printf("Should not be able to find vsblabla\n");
-  return 1;
+  ret = 1;
 #endif
 
 #if !defined( HAVE_PRINTF )
   printf("Should be able to find printf\n");
-  return 1;
+  ret= 1;
 #endif
 
 #if !defined( ADDED_DEFINITION )
   printf("Should have ADDED_DEFINITION defined\n");
-  return 1;
+  ret= 1;
+#endif
+#if !defined(CMAKE_IS_FUN)
+  printf("Loaded Command was not built with CMAKE_IS_FUN: failed.\n");
+  ret = 1;
 #endif
-  if(SIZEOF_CHAR != 1)
+  if(testSizeOf(SIZEOF_CHAR, sizeof(char)))
     {
-    printf("Size of char is not one, something is broken\n");
+    printf("Size of char is broken.\n");
+    ret = 1;
     }
-  
-#ifdef CMAKE_IS_FUN
-  return SIZEOF_CHAR-1;
-#else  
-  return SIZEOF_SHORT;
-#endif
+  if(testSizeOf(SIZEOF_SHORT, sizeof(short)))
+    {
+    printf("Size of short is broken.\n");
+    ret = 1;
+    }
+  return ret;
 }

+ 2 - 1
Tests/LoadCommandOneConfig/LoadedCommand.h.in

@@ -1,5 +1,6 @@
 /* Check for size of types */
 #cmakedefine SIZEOF_CHAR      ${SIZEOF_CHAR}
+#cmakedefine SIZEOF_SHORT      ${SIZEOF_SHORT}
 
 /* Check for functions */
 #cmakedefine HAVE_PRINTF
@@ -9,4 +10,4 @@
 #cmakedefine HAVE_SYS_PRCTL_H
 
 /* Check for libraries */
-#cmakedefine HAVE_LIBM
+#cmakedefine HAVE_LIBM