[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