[Flang] remove whole-archive option for AIX linker (#76039)
[llvm-project.git] / clang / bindings / python / tests / CMakeLists.txt
blobc4cd2539e9d6cf3a48676c12e213514d4b9045e2
1 # Test target to run Python test suite from main build.
3 # Avoid configurations including '-include' from interfering with
4 # our tests by setting CLANG_NO_DEFAULT_CONFIG.
5 add_custom_target(check-clang-python
6     COMMAND ${CMAKE_COMMAND} -E env
7             CLANG_NO_DEFAULT_CONFIG=1
8             CLANG_LIBRARY_PATH=$<TARGET_FILE_DIR:libclang>
9             "${Python3_EXECUTABLE}" -m unittest discover
10     DEPENDS libclang
11     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
13 set(RUN_PYTHON_TESTS TRUE)
14 set_target_properties(check-clang-python PROPERTIES FOLDER "Clang tests")
16 # Tests require libclang.so which is only built with LLVM_ENABLE_PIC=ON
17 if(NOT LLVM_ENABLE_PIC)
18   set(RUN_PYTHON_TESTS FALSE)
19 endif()
21 # Do not try to run if libclang was built with sanitizers 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.
27 if(NOT LLVM_USE_SANITIZER STREQUAL "")
28   set(RUN_PYTHON_TESTS FALSE)
29 endif()
31 # Tests fail on Windows, and need someone knowledgeable to fix.
32 # It's not clear whether it's a test or a valid binding problem.
33 if(WIN32)
34   set(RUN_PYTHON_TESTS FALSE)
35 endif()
37 # The Python FFI interface is broken on AIX: https://bugs.python.org/issue38628.
38 if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
39   set(RUN_PYTHON_TESTS FALSE)
40 endif()
42 # AArch64, Hexagon, and Sparc have known test failures that need to be
43 # addressed.
44 # SystemZ has broken Python/FFI interface:
45 # https://reviews.llvm.org/D52840#1265716
46 if(${LLVM_NATIVE_ARCH} MATCHES "^(AArch64|Hexagon|Sparc|SystemZ)$")
47   set(RUN_PYTHON_TESTS FALSE)
48 endif()
50 if(RUN_PYTHON_TESTS)
51     set_property(GLOBAL APPEND PROPERTY
52                  LLVM_ALL_ADDITIONAL_TEST_TARGETS check-clang-python)
53 endif()