Skip to content

Commit

Permalink
Enable lsan test suite on Darwin x86_64 builds
Browse files Browse the repository at this point in the history
Reviewers: kubamracek, alekseyshl

Subscribers: mgorny, llvm-commits

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

llvm-svn: 300897
  • Loading branch information
fjricci committed Apr 20, 2017
1 parent ff23889 commit dcaf4e2
Showing 3 changed files with 13 additions and 4 deletions.
2 changes: 1 addition & 1 deletion compiler-rt/cmake/config-ix.cmake
Original file line number Diff line number Diff line change
@@ -476,7 +476,7 @@ else()
endif()

if (COMPILER_RT_HAS_SANITIZER_COMMON AND LSAN_SUPPORTED_ARCH AND
OS_NAME MATCHES "Linux|FreeBSD")
OS_NAME MATCHES "Darwin|Linux|FreeBSD")
set(COMPILER_RT_HAS_LSAN TRUE)
else()
set(COMPILER_RT_HAS_LSAN FALSE)
9 changes: 8 additions & 1 deletion compiler-rt/test/asan/lit.cfg
Original file line number Diff line number Diff line change
@@ -38,6 +38,11 @@ if config.host_os == 'Darwin':
# Also, make sure we do not overwhelm the syslog while testing.
default_asan_opts = 'abort_on_error=0'
default_asan_opts += ':log_to_syslog=0'

# On Darwin, leak checking is not enabled by default. Enable for x86_64
# tests to prevent regressions
if config.target_arch == 'x86_64':
default_asan_opts += ':detect_leaks=1'
elif config.android:
# The same as on Darwin, we default to "abort_on_error=1" which slows down
# testing. Also, all existing tests are using "not" instead of "not --crash"
@@ -217,7 +222,9 @@ if re.search('mthumb', config.target_cflags) is not None:
config.available_features.add('fast-unwinder-works')

# Turn on leak detection on 64-bit Linux.
if config.host_os == 'Linux' and (config.target_arch == 'x86_64' or config.target_arch == 'i386'):
leak_detection_linux = (config.host_os == 'Linux') and (config.target_arch == 'x86_64' or config.target_arch == 'i386')
leak_detection_mac = (config.host_os == 'Darwin') and (config.target_arch == 'x86_64')
if leak_detection_linux or leak_detection_mac:
config.available_features.add('leak-detection')

# Set LD_LIBRARY_PATH to pick dynamic runtime up properly.
6 changes: 4 additions & 2 deletions compiler-rt/test/lsan/lit.common.cfg
Original file line number Diff line number Diff line change
@@ -67,8 +67,10 @@ config.substitutions.append( ("%clangxx ", build_invocation(clang_cxxflags)) )
config.substitutions.append( ("%clang_lsan ", build_invocation(clang_lsan_cflags)) )
config.substitutions.append( ("%clangxx_lsan ", build_invocation(clang_lsan_cxxflags)) )

# LeakSanitizer tests are currently supported on x86-64 Linux, arm Linux and mips64 Linux only.
if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64', 'mips64', 'arm', 'armhf', 'armv7l']:
# LeakSanitizer tests are currently supported on x86-64 Linux, arm Linux, mips64 Linux, and x86_64 Darwin
supported_linux = config.host_os in ['Linux'] and config.host_arch in ['x86_64', 'mips64', 'arm', 'armhf', 'armv7l']
supported_darwin = config.host_os is 'Darwin' and config.target_arch is 'x86_64'
if not (supported_linux or supported_darwin):
config.unsupported = True

# Don't support Thumb due to broken fast unwinder

0 comments on commit dcaf4e2

Please sign in to comment.