blob: 1b8f0eacd6fd1eb2f6f0c2b6f531d036851702a0 [file] [log] [blame]
Michal Gorny61adf8a2018-10-11 16:32:54 +00001# Test target to run Python test suite from main build.
2
3add_custom_target(check-clang-python
Michal Gornyd50a4312018-10-11 20:26:55 +00004 COMMAND ${CMAKE_COMMAND} -E env
5 CLANG_LIBRARY_PATH=$<TARGET_FILE_DIR:libclang>
6 ${PYTHON_EXECUTABLE} -m unittest discover
Michal Gornycc8ea492018-10-11 17:45:35 +00007 DEPENDS libclang
8 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
Michal Gorny61adf8a2018-10-11 16:32:54 +00009
Michal Gorny0e75dc42018-10-17 03:05:39 +000010set(RUN_PYTHON_TESTS TRUE)
Artem Dergachev38b21d92018-10-15 17:43:23 +000011
Artem Dergachev38b21d92018-10-15 17:43:23 +000012# Do not try to run if libclang was built with ASan because
13# the sanitizer library will likely be loaded too late to perform
14# interception and will then fail.
15# We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't
16# portable so its easier just to not run the tests when building
17# with ASan.
Michal Gorny0e75dc42018-10-17 03:05:39 +000018list(FIND LLVM_USE_SANITIZER "Address" LLVM_USE_ASAN_INDEX)
19if(NOT LLVM_USE_ASAN_INDEX EQUAL -1)
20 set(RUN_PYTHON_TESTS FALSE)
21endif()
22
23# Tests fail on Windows, and need someone knowledgeable to fix.
24# It's not clear whether it's a test or a valid binding problem.
25if(WIN32)
26 set(RUN_PYTHON_TESTS FALSE)
27endif()
28
29# AArch64 and Hexagon have known test failures that need to be
30# addressed.
31# SystemZ has broken Python/FFI interface:
32# https://reviews.llvm.org/D52840#1265716
33if(${LLVM_NATIVE_ARCH} MATCHES "^(AArch64|Hexagon|SystemZ)$")
34 set(RUN_PYTHON_TESTS FALSE)
35endif()
36
37if(RUN_PYTHON_TESTS)
Michal Gorny22297d92018-10-12 20:03:54 +000038 set_property(GLOBAL APPEND PROPERTY
39 LLVM_ADDITIONAL_TEST_TARGETS check-clang-python)
40endif()