66 lines
2.7 KiB
Python
66 lines
2.7 KiB
Python
@LIT_SITE_CFG_IN_HEADER@
|
|
|
|
import os
|
|
import platform
|
|
import re
|
|
import shlex
|
|
|
|
# Load common config for all compiler-rt unit tests.
|
|
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/unittests/lit.common.unit.configured")
|
|
|
|
def push_ld_library_path(config, new_path):
|
|
new_ld_library_path = os.path.pathsep.join(
|
|
(new_path, config.environment.get('LD_LIBRARY_PATH', '')))
|
|
config.environment['LD_LIBRARY_PATH'] = new_ld_library_path
|
|
|
|
if platform.system() == 'FreeBSD':
|
|
new_ld_32_library_path = os.path.pathsep.join(
|
|
(new_path, config.environment.get('LD_32_LIBRARY_PATH', '')))
|
|
config.environment['LD_32_LIBRARY_PATH'] = new_ld_32_library_path
|
|
|
|
if platform.system() == 'SunOS':
|
|
new_ld_library_path_32 = os.path.pathsep.join(
|
|
(new_path, config.environment.get('LD_LIBRARY_PATH_32', '')))
|
|
config.environment['LD_LIBRARY_PATH_32'] = new_ld_library_path_32
|
|
|
|
new_ld_library_path_64 = os.path.pathsep.join(
|
|
(new_path, config.environment.get('LD_LIBRARY_PATH_64', '')))
|
|
config.environment['LD_LIBRARY_PATH_64'] = new_ld_library_path_64
|
|
|
|
# Setup config name.
|
|
config.name = 'AddressSanitizer-Unit'
|
|
|
|
# Load target architecture information. Note config.target_triple can be
|
|
# incorrect since it is populated with the default target. This unit test suite
|
|
# may run for multiple targets. The dynamic suite needs the correct target for
|
|
# library path selection.
|
|
config.target_arch = "@arch@"
|
|
|
|
# Setup test source and exec root. For unit tests, we define
|
|
# it as build directory with ASan unit tests.
|
|
# FIXME: De-hardcode this path.
|
|
if @ASAN_TEST_DYNAMIC@:
|
|
test_dir = "@CONFIG_NAME_DYNAMIC@"
|
|
else:
|
|
test_dir = "@CONFIG_NAME@"
|
|
config.test_exec_root = os.path.join("@COMPILER_RT_BINARY_DIR@",
|
|
"lib", "asan", "tests", test_dir)
|
|
|
|
config.test_source_root = config.test_exec_root
|
|
|
|
# When LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on, the initial value of
|
|
# config.compiler_rt_libdir (COMPILER_RT_RESOLVED_LIBRARY_OUTPUT_DIR) has the
|
|
# host triple as the trailing path component. The value is incorrect for i386
|
|
# tests on x86_64 hosts and vice versa. Adjust config.compiler_rt_libdir
|
|
# accordingly.
|
|
if config.enable_per_target_runtime_dir and config.target_arch != config.host_arch:
|
|
if config.target_arch == 'i386':
|
|
config.compiler_rt_libdir = re.sub(r'/x86_64(?=-[^/]+$)', '/i386', config.compiler_rt_libdir)
|
|
elif config.target_arch == 'x86_64':
|
|
config.compiler_rt_libdir = re.sub(r'/i386(?=-[^/]+$)', '/x86_64', config.compiler_rt_libdir)
|
|
|
|
# Set LD_LIBRARY_PATH to pick dynamic runtime up properly.
|
|
push_ld_library_path(config, config.compiler_rt_libdir)
|
|
|
|
if not config.parallelism_group:
|
|
config.parallelism_group = 'shadow-memory'
|