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