blob: cdf45712c31a6b0d93577547e34332cf64a33bae [file] [log] [blame]
Douglas Gregor07705322009-06-05 16:00:31 +00001find_file(CLANG_TEST_RUNNER TestRunner.sh PATHS ${CMAKE_CURRENT_SOURCE_DIR}
2 DOC "Clang's regression testing script")
3mark_as_advanced(CLANG_TEST_RUNNER)
4
5get_target_property(LLVM_TOOLS_PATH clang RUNTIME_OUTPUT_DIRECTORY)
6
Douglas Gregorfa934802009-06-05 16:26:18 +00007macro(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 Gregor07705322009-06-05 16:00:31 +000012
Douglas Gregorfa934802009-06-05 16:26:18 +000013 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 Gregor07705322009-06-05 16:00:31 +000018
Douglas Gregorfa934802009-06-05 16:26:18 +000019 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 Gregor07705322009-06-05 16:00:31 +000034endmacro(add_clang_test_suite)
35
36add_clang_test_suite(C clang-test-c c)
37add_clang_test_suite(Objective-C clang-test-objc m)
38add_clang_test_suite(C++ clang-test-cxx cpp)
39add_clang_test_suite(Objective-C++ clang-test-objcxx mm)
40add_clang_test_suite(Assembler clang-test-asm S)
Douglas Gregorfa934802009-06-05 16:26:18 +000041add_clang_test_suite(ALL clang-test c m cpp mm S)