@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'