Michal Gorny | 61adf8a | 2018-10-11 16:32:54 +0000 | [diff] [blame] | 1 | # Test target to run Python test suite from main build. |
| 2 | |
| 3 | add_custom_target(check-clang-python |
Michal Gorny | d50a431 | 2018-10-11 20:26:55 +0000 | [diff] [blame] | 4 | COMMAND ${CMAKE_COMMAND} -E env |
| 5 | CLANG_LIBRARY_PATH=$<TARGET_FILE_DIR:libclang> |
| 6 | ${PYTHON_EXECUTABLE} -m unittest discover |
Michal Gorny | cc8ea49 | 2018-10-11 17:45:35 +0000 | [diff] [blame] | 7 | DEPENDS libclang |
| 8 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) |
Michal Gorny | 61adf8a | 2018-10-11 16:32:54 +0000 | [diff] [blame] | 9 | |
Michal Gorny | 0e75dc4 | 2018-10-17 03:05:39 +0000 | [diff] [blame] | 10 | set(RUN_PYTHON_TESTS TRUE) |
Aaron Ballman | f2965d1 | 2018-10-18 17:47:18 +0000 | [diff] [blame] | 11 | set_target_properties(check-clang-python PROPERTIES FOLDER "Clang tests") |
Artem Dergachev | 38b21d9 | 2018-10-15 17:43:23 +0000 | [diff] [blame] | 12 | |
Michal Gorny | 851aec4 | 2019-01-16 08:05:13 +0000 | [diff] [blame] | 13 | # Tests require libclang.so which is only built with LLVM_ENABLE_PIC=ON |
| 14 | if(NOT LLVM_ENABLE_PIC) |
| 15 | set(RUN_PYTHON_TESTS FALSE) |
| 16 | endif() |
| 17 | |
Artem Dergachev | 38b21d9 | 2018-10-15 17:43:23 +0000 | [diff] [blame] | 18 | # Do not try to run if libclang was built with ASan because |
| 19 | # the sanitizer library will likely be loaded too late to perform |
| 20 | # interception and will then fail. |
| 21 | # We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't |
| 22 | # portable so its easier just to not run the tests when building |
| 23 | # with ASan. |
Michal Gorny | 0e75dc4 | 2018-10-17 03:05:39 +0000 | [diff] [blame] | 24 | list(FIND LLVM_USE_SANITIZER "Address" LLVM_USE_ASAN_INDEX) |
| 25 | if(NOT LLVM_USE_ASAN_INDEX EQUAL -1) |
| 26 | set(RUN_PYTHON_TESTS FALSE) |
| 27 | endif() |
| 28 | |
| 29 | # Tests fail on Windows, and need someone knowledgeable to fix. |
| 30 | # It's not clear whether it's a test or a valid binding problem. |
| 31 | if(WIN32) |
| 32 | set(RUN_PYTHON_TESTS FALSE) |
| 33 | endif() |
| 34 | |
Rainer Orth | 04ee339 | 2019-04-08 15:01:06 +0000 | [diff] [blame] | 35 | # AArch64, Hexagon, and Sparc have known test failures that need to be |
Michal Gorny | 0e75dc4 | 2018-10-17 03:05:39 +0000 | [diff] [blame] | 36 | # addressed. |
| 37 | # SystemZ has broken Python/FFI interface: |
| 38 | # https://reviews.llvm.org/D52840#1265716 |
Rainer Orth | 04ee339 | 2019-04-08 15:01:06 +0000 | [diff] [blame] | 39 | if(${LLVM_NATIVE_ARCH} MATCHES "^(AArch64|Hexagon|Sparc|SystemZ)$") |
Michal Gorny | 0e75dc4 | 2018-10-17 03:05:39 +0000 | [diff] [blame] | 40 | set(RUN_PYTHON_TESTS FALSE) |
| 41 | endif() |
| 42 | |
| 43 | if(RUN_PYTHON_TESTS) |
Michal Gorny | 22297d9 | 2018-10-12 20:03:54 +0000 | [diff] [blame] | 44 | set_property(GLOBAL APPEND PROPERTY |
| 45 | LLVM_ADDITIONAL_TEST_TARGETS check-clang-python) |
| 46 | endif() |