[python] [tests] Disable python binding tests under LLVM_USE_SANITIZER=Address
authorArtem Dergachev <artem.dergachev@gmail.com>
Mon, 15 Oct 2018 17:43:23 +0000 (17:43 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Mon, 15 Oct 2018 17:43:23 +0000 (17:43 +0000)
They don't work yet.

Patch by Dan Liew!

rdar://problem/45242886

Differential Revision: https://reviews.llvm.org/D53239

llvm-svn: 344537

clang/bindings/python/tests/CMakeLists.txt

index 1e10f67..12a385c 100644 (file)
@@ -7,9 +7,24 @@ add_custom_target(check-clang-python
     DEPENDS libclang
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
 
+# Check if we are building with ASan
+list(FIND LLVM_USE_SANITIZER "Address" LLVM_USE_ASAN_INDEX)
+if (LLVM_USE_ASAN_INDEX EQUAL -1)
+  set(LLVM_USE_ASAN FALSE)
+else()
+  set(LLVM_USE_ASAN TRUE)
+endif()
+
 # Tests fail on Windows, and need someone knowledgeable to fix.
 # It's not clear whether it's a test or a valid binding problem.
-if(NOT WIN32)
+#
+# Do not try to run if libclang was built with ASan because
+# the sanitizer library will likely be loaded too late to perform
+# interception and will then fail.
+# We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't
+# portable so its easier just to not run the tests when building
+# with ASan.
+if((NOT WIN32) AND (NOT LLVM_USE_ASAN))
     set_property(GLOBAL APPEND PROPERTY
                  LLVM_ADDITIONAL_TEST_TARGETS check-clang-python)
 endif()