NoQ created this revision.
NoQ added reviewers: mgorny, delcypher.
Herald added a subscriber: cfe-commits.

@mgorny: These fail for me on macOS too, if LLVM is configured as

  cmake ../llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER=Address

I guess we might have to outright disable them under 
`-DLLVM_USE_SANITIZER=Address`.

Patch actually by Dan "@delcypher" Liew, I'm just passing by.


Repository:
  rC Clang

https://reviews.llvm.org/D53239

Files:
  bindings/python/tests/CMakeLists.txt


Index: bindings/python/tests/CMakeLists.txt
===================================================================
--- bindings/python/tests/CMakeLists.txt
+++ bindings/python/tests/CMakeLists.txt
@@ -7,9 +7,24 @@
     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()


Index: bindings/python/tests/CMakeLists.txt
===================================================================
--- bindings/python/tests/CMakeLists.txt
+++ bindings/python/tests/CMakeLists.txt
@@ -7,9 +7,24 @@
     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()
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to