| Douglas Gregor | 0770532 | 2009-06-05 16:00:31 +0000 | [diff] [blame] | 1 | find_file(CLANG_TEST_RUNNER TestRunner.sh PATHS ${CMAKE_CURRENT_SOURCE_DIR} | 
|  | 2 | DOC "Clang's regression testing script") | 
|  | 3 | mark_as_advanced(CLANG_TEST_RUNNER) | 
|  | 4 |  | 
|  | 5 | get_target_property(LLVM_TOOLS_PATH clang RUNTIME_OUTPUT_DIRECTORY) | 
|  | 6 |  | 
| Douglas Gregor | fa93480 | 2009-06-05 16:26:18 +0000 | [diff] [blame] | 7 | macro(add_clang_test_suite language target) | 
|  | 8 | set(PATTERNS) | 
|  | 9 | foreach (extension ${ARGN}) | 
|  | 10 | set(PATTERNS "${PATTERNS}:${CMAKE_CURRENT_SOURCE_DIR}/*.${extension}") | 
|  | 11 | endforeach() | 
| Douglas Gregor | 0770532 | 2009-06-05 16:00:31 +0000 | [diff] [blame] | 12 |  | 
| Douglas Gregor | fa93480 | 2009-06-05 16:26:18 +0000 | [diff] [blame] | 13 | if (${language} STREQUAL "ALL") | 
|  | 14 | set(TEST_COMMENT "Running Clang regression tests") | 
|  | 15 | else() | 
|  | 16 | set(TEST_COMMENT "Running Clang ${language} regression tests") | 
|  | 17 | endif () | 
| Douglas Gregor | 0770532 | 2009-06-05 16:00:31 +0000 | [diff] [blame] | 18 |  | 
| Douglas Gregor | fa93480 | 2009-06-05 16:26:18 +0000 | [diff] [blame] | 19 | add_custom_target(${target} | 
|  | 20 | ${CMAKE_CTEST_COMMAND} | 
|  | 21 | --build-and-test | 
|  | 22 | ${LLVM_SOURCE_DIR}/tools/clang/CMake/RunTests | 
|  | 23 | ${CMAKE_CURRENT_BINARY_DIR}/${target} | 
|  | 24 | --build-generator ${CMAKE_GENERATOR} | 
|  | 25 | --build-makeprogram ${CMAKE_MAKE_PROGRAM} | 
|  | 26 | --build-project ClangTest | 
|  | 27 | --build-target test | 
|  | 28 | --build-options | 
|  | 29 | "-DCLANG_TEST_RUNNER=${CLANG_TEST_RUNNER}" | 
|  | 30 | "-DCLANG_TEST_GLOB_PATTERNS=${PATTERNS}" | 
|  | 31 | "-DLLVM_TOOLS_PATH=${LLVM_TOOLS_PATH}" | 
|  | 32 | "-DLLVM_SCRIPTS_PATH=${LLVM_SOURCE_DIR}/test/Scripts" | 
|  | 33 | COMMENT ${TEST_COMMENT}) | 
| Douglas Gregor | 0770532 | 2009-06-05 16:00:31 +0000 | [diff] [blame] | 34 | endmacro(add_clang_test_suite) | 
|  | 35 |  | 
|  | 36 | add_clang_test_suite(C clang-test-c c) | 
|  | 37 | add_clang_test_suite(Objective-C clang-test-objc m) | 
|  | 38 | add_clang_test_suite(C++ clang-test-cxx cpp) | 
|  | 39 | add_clang_test_suite(Objective-C++ clang-test-objcxx mm) | 
|  | 40 | add_clang_test_suite(Assembler clang-test-asm S) | 
| Douglas Gregor | fa93480 | 2009-06-05 16:26:18 +0000 | [diff] [blame] | 41 | add_clang_test_suite(ALL clang-test c m cpp mm S) |