Browse Source

ENH: add test which executes all FindXXX.cmake modules

Alex
Alexander Neundorf 17 years ago
parent
commit
8ef9983db6

+ 1 - 0
Tests/CMakeLists.txt

@@ -40,6 +40,7 @@ IF(BUILD_TESTING)
   # add a bunch of standard build-and-test style tests
   ADD_TEST_MACRO(CommandLineTest CommandLineTest)
   ADD_TEST_MACRO(FindPackageTest FindPackageTest)
+  ADD_TEST_MACRO(FindModulesExecuteAll FindModulesExecuteAll)
   ADD_TEST_MACRO(StringFileTest StringFileTest)
   ADD_TEST_MACRO(TryCompile TryCompile)
   ADD_TEST_MACRO(TarTest TarTest)

+ 29 - 0
Tests/FindModulesExecuteAll/CMakeLists.txt

@@ -0,0 +1,29 @@
+# This file includes all FindXXX.cmake modules, so they are all executed.
+# As it is it doesn't test a lot.
+# It makes sure that the modules don't contain basic syntax errors.
+# It also makes sure that modules don't fail with an error if something
+# wasn't found but REQUIRED was not given.
+#
+# I guess more things could be added, like checking whether variables are
+# defined after running the modules (e.g. FOO_FOUND etc.).
+
+
+file(GLOB all_modules "${CMAKE_CURRENT_SOURCE_DIR}/../../Modules/Find*cmake")
+
+foreach(module ${all_modules})
+  message(STATUS "module: ${module}")
+  include("${module}")
+
+  # get the "basename" of the package, so the existence of variables like
+  # FOO_FOUND could be tested later on, Alex
+  string(REGEX REPLACE ".+Find([^\\.]+)\\.cmake" "\\1" packageName "${module}")
+  string(TOUPPER "${packageName}" packageNameUpper)
+
+# disabled for now, since too many modules break:
+#  if(NOT DEFINED ${packageNameUpper}_FOUND)
+#    message(SEND_ERROR "${packageNameUpper}_FOUND not defined !")
+#  endif(NOT DEFINED ${packageNameUpper}_FOUND)
+
+endforeach(module ${all_modules})
+
+add_executable(FindModulesExecuteAll main.c)

+ 4 - 0
Tests/FindModulesExecuteAll/main.c

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