[cfe-commits] r72977 - in /cfe/trunk: CMake/ test/CMakeLists.txt utils/test/MultiTestRunner.py

Douglas Gregor dgregor at apple.com
Fri Jun 5 16:57:17 PDT 2009


Author: dgregor
Date: Fri Jun  5 18:57:17 2009
New Revision: 72977

URL: http://llvm.org/viewvc/llvm-project?rev=72977&view=rev
Log:
Switch CMake testing over to use Daniels new(er) Python-based infrastructure.

Removed:
    cfe/trunk/CMake/
Modified:
    cfe/trunk/test/CMakeLists.txt
    cfe/trunk/utils/test/MultiTestRunner.py

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

==============================================================================
--- cfe/trunk/test/CMakeLists.txt (original)
+++ cfe/trunk/test/CMakeLists.txt Fri Jun  5 18:57:17 2009
@@ -2,40 +2,52 @@
   DOC "Clang's regression testing script")
 mark_as_advanced(CLANG_TEST_RUNNER)
 
-get_target_property(LLVM_TOOLS_PATH clang RUNTIME_OUTPUT_DIRECTORY)
+set(CLANG_TEST_DIRECTORIES
+  "Analysis"
+  "CodeGen"
+  "CodeGenCXX"
+  "CodeGenObjC"
+  "Coverage"
+  "Driver"
+  "FixIt"
+  "Frontend"
+  "Lexer"
+  "Misc"
+  "PCH"
+  "Parser"
+  "Preprocessor"
+  "Rewriter"
+  "Sema"
+  "SemaCXX"
+  "SemaObjC"
+  "SemaObjCXX"
+  "SemaTemplate")
 
-macro(add_clang_test_suite language target)
-  set(PATTERNS)
-  foreach (extension ${ARGN})
-    set(PATTERNS "${PATTERNS}:${CMAKE_CURRENT_SOURCE_DIR}/*.${extension}")
-  endforeach()
-
-  if (${language} STREQUAL "ALL")
-    set(TEST_COMMENT "Running Clang regression tests")
-  else()
-    set(TEST_COMMENT "Running Clang ${language} regression tests")
-  endif ()
+include(FindPythonInterp)
+if(PYTHONINTERP_FOUND)
+  get_target_property(LLVM_TOOLS_PATH clang RUNTIME_OUTPUT_DIRECTORY)
+  set(TESTING_EXTRA_PATHS
+      "${LLVM_TOOLS_PATH}/${CMAKE_CFG_INTDIR}:${LLVM_SOURCE_DIR}/test/Scripts")
+  set(all_testdirs)
+  foreach(testdir ${CLANG_TEST_DIRECTORIES})
+   add_custom_target(clang-test-${testdir} 
+      ${PYTHON_EXECUTABLE} 
+      ${LLVM_SOURCE_DIR}/tools/clang/utils/test/MultiTestRunner.py
+      -s
+      "--path=${TESTING_EXTRA_PATHS}"
+      ${CMAKE_CURRENT_SOURCE_DIR}/${testdir}/
+      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+      COMMENT "Running Clang regression tests in ${testdir}")
 
-  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)
+    list(APPEND all_testdirs ${CMAKE_CURRENT_SOURCE_DIR}/${testdir}/)
+  endforeach()
 
-add_clang_test_suite(C clang-test-c c)
-add_clang_test_suite(Objective-C clang-test-objc m)
-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
+  add_custom_target(clang-test
+    ${PYTHON_EXECUTABLE} 
+    ${LLVM_SOURCE_DIR}/tools/clang/utils/test/MultiTestRunner.py
+    "--path=${TESTING_EXTRA_PATHS}"
+    ${all_testdirs}
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    DEPENDS clang clang-cc
+    COMMENT "Running Clang regression tests")
+endif()  

Modified: cfe/trunk/utils/test/MultiTestRunner.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/test/MultiTestRunner.py?rev=72977&r1=72976&r2=72977&view=diff

==============================================================================
--- cfe/trunk/utils/test/MultiTestRunner.py (original)
+++ cfe/trunk/utils/test/MultiTestRunner.py Fri Jun  5 18:57:17 2009
@@ -249,6 +249,10 @@
     parser.add_option("", "--debug-do-not-test", dest="debugDoNotTest",
                       help="DEBUG: Skip running actual test script",
                       action="store_true", default=False)
+    parser.add_option("", "--path", dest="path",
+                      help="Additional paths to add to testing environment",
+                      action="store", type=str, default=None)
+                      
     (opts, args) = parser.parse_args()
 
     if not args:
@@ -269,7 +273,10 @@
         random.shuffle(tests)
     if opts.maxTests is not None:
         tests = tests[:opts.maxTests]
-
+    if opts.path is not None:
+        os.environ["PATH"] = opts.path + ":" + os.environ["PATH"];
+        print "Current PATH is: ", os.environ["PATH"]
+    
     extra = ''
     if len(tests) != len(allTests):
         extra = ' of %d'%(len(allTests),)





More information about the cfe-commits mailing list