blob: 12a385ce554268b69a0502cc14c62302b366f0e5 [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
Artem Dergachev38b21d92018-10-15 17:43:23 +000010# Check if we are building with ASan
11list(FIND LLVM_USE_SANITIZER "Address" LLVM_USE_ASAN_INDEX)
12if (LLVM_USE_ASAN_INDEX EQUAL -1)
13 set(LLVM_USE_ASAN FALSE)
14else()
15 set(LLVM_USE_ASAN TRUE)
16endif()
17
Michal Gorny22297d92018-10-12 20:03:54 +000018# Tests fail on Windows, and need someone knowledgeable to fix.
19# It's not clear whether it's a test or a valid binding problem.
Artem Dergachev38b21d92018-10-15 17:43:23 +000020#
21# Do not try to run if libclang was built with ASan because
22# the sanitizer library will likely be loaded too late to perform
23# interception and will then fail.
24# We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't
25# portable so its easier just to not run the tests when building
26# with ASan.
27if((NOT WIN32) AND (NOT LLVM_USE_ASAN))
Michal Gorny22297d92018-10-12 20:03:54 +000028 set_property(GLOBAL APPEND PROPERTY
29 LLVM_ADDITIONAL_TEST_TARGETS check-clang-python)
30endif()