[cfe-commits] r72947 - in /cfe/trunk: CMake/RunTests/CMakeLists.txt test/CMakeLists.txt

Douglas Gregor dgregor at apple.com
Fri Jun 5 09:26:19 PDT 2009


Author: dgregor
Date: Fri Jun  5 11:26:18 2009
New Revision: 72947

URL: http://llvm.org/viewvc/llvm-project?rev=72947&view=rev
Log:
Clean up Clang regression testing in CMake, so that we get more
logical output when running all of the Clang regression tests at once.

Modified:
    cfe/trunk/CMake/RunTests/CMakeLists.txt
    cfe/trunk/test/CMakeLists.txt

Modified: cfe/trunk/CMake/RunTests/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CMake/RunTests/CMakeLists.txt?rev=72947&r1=72946&r2=72947&view=diff

==============================================================================
--- cfe/trunk/CMake/RunTests/CMakeLists.txt (original)
+++ cfe/trunk/CMake/RunTests/CMakeLists.txt Fri Jun  5 11:26:18 2009
@@ -6,7 +6,7 @@
 #   CLANG_TEST_RUNNER: The TestRunner.sh shell script, which is used to test
 #   Clang.
 #
-#   CLANG_TEST_GLOB_PATTERN: Set to a GLOB pattern to identify the kind of
+#   CLANG_TEST_GLOB_PATTERNS: Set to a GLOB pattern to identify the kind of
 #   tests, e.g., *.cpp for C++ tests.
 #
 #   LLVM_TOOLS_PATH: The directory where the Clang and LLVM tool
@@ -27,17 +27,24 @@
   set(${var} "${test_lastpath}-${test_name}")
 endmacro()
 
-# FIXME: Total hack!
+# FIXME: This is a hack to make sure that there is a proper "clean" target.
+# There must be a better way.
 file(WRITE dummy.c "int dummy() { return 0; }")
 add_library(dummy dummy.c)
+set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "dummy.c")
 
+# Set the path appropriately
 set(PATH $ENV{PATH})
 set(PATH "${LLVM_TOOLS_PATH}:${LLVM_SCRIPTS_PATH}:${PATH}")
-message(STATUS "Globbing for tests with ${CLANG_TEST_GLOB_PATTERN}")
-file(GLOB_RECURSE tests ${CLANG_TEST_GLOB_PATTERN})
+
+# Find the test files
+string(REPLACE ":" ";" CLANG_TEST_GLOB_PATTERNS ${CLANG_TEST_GLOB_PATTERNS})
+separate_arguments(CLANG_TEST_GLOB_PATTERNS)
+file(GLOB_RECURSE tests ${CLANG_TEST_GLOB_PATTERNS})
+
+# Add individual tests for each file we found.
 foreach(test ${tests})
   compute_test_name(testname ${test})
-  message(STATUS "Adding test ${testname} with file ${test}")
   add_test(${testname} ${CLANG_TEST_RUNNER} ${test})
   set_tests_properties(${testname} PROPERTIES
     ENVIRONMENT "PATH=${PATH}")

Modified: cfe/trunk/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=72947&r1=72946&r2=72947&view=diff

==============================================================================
--- cfe/trunk/test/CMakeLists.txt (original)
+++ cfe/trunk/test/CMakeLists.txt Fri Jun  5 11:26:18 2009
@@ -4,26 +4,33 @@
 
 get_target_property(LLVM_TOOLS_PATH clang RUNTIME_OUTPUT_DIRECTORY)
 
-add_custom_target(clang-test COMMENT "Running Clang regression tests")
+macro(add_clang_test_suite language target)
+  set(PATTERNS)
+  foreach (extension ${ARGN})
+    set(PATTERNS "${PATTERNS}:${CMAKE_CURRENT_SOURCE_DIR}/*.${extension}")
+  endforeach()
 
-macro(add_clang_test_suite language target extension)
-add_custom_target(${target}
-  ${CMAKE_CTEST_COMMAND}
-  --build-and-test
-  ${LLVM_SOURCE_DIR}/tools/clang/CMake/RunTests
-  ${CMAKE_CURRENT_BINARY_DIR}/${target}
-  --build-generator ${CMAKE_GENERATOR}
-  --build-makeprogram ${CMAKE_MAKE_PROGRAM}
-  --build-project ClangTest
-  --build-target test
-  --build-options 
-  "-DCLANG_TEST_RUNNER=${CLANG_TEST_RUNNER}"
-  "-DCLANG_TEST_GLOB_PATTERN=${CMAKE_CURRENT_SOURCE_DIR}/*.${extension}"
-  "-DLLVM_TOOLS_PATH=${LLVM_TOOLS_PATH}"
-  "-DLLVM_SCRIPTS_PATH=${LLVM_SOURCE_DIR}/test/Scripts"
-  COMMENT "Running Clang ${language} regression tests")
+  if (${language} STREQUAL "ALL")
+    set(TEST_COMMENT "Running Clang regression tests")
+  else()
+    set(TEST_COMMENT "Running Clang ${language} regression tests")
+  endif ()
 
-  add_dependencies(clang-test ${target})
+  add_custom_target(${target}
+    ${CMAKE_CTEST_COMMAND}
+    --build-and-test
+    ${LLVM_SOURCE_DIR}/tools/clang/CMake/RunTests
+    ${CMAKE_CURRENT_BINARY_DIR}/${target}
+    --build-generator ${CMAKE_GENERATOR}
+    --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+    --build-project ClangTest
+    --build-target test
+    --build-options 
+    "-DCLANG_TEST_RUNNER=${CLANG_TEST_RUNNER}"
+    "-DCLANG_TEST_GLOB_PATTERNS=${PATTERNS}"
+    "-DLLVM_TOOLS_PATH=${LLVM_TOOLS_PATH}"
+    "-DLLVM_SCRIPTS_PATH=${LLVM_SOURCE_DIR}/test/Scripts"
+    COMMENT ${TEST_COMMENT})
 endmacro(add_clang_test_suite)
 
 add_clang_test_suite(C clang-test-c c)
@@ -31,3 +38,4 @@
 add_clang_test_suite(C++ clang-test-cxx cpp)
 add_clang_test_suite(Objective-C++ clang-test-objcxx mm)
 add_clang_test_suite(Assembler clang-test-asm S)
+add_clang_test_suite(ALL clang-test c m cpp mm S)
\ No newline at end of file





More information about the cfe-commits mailing list