Mercurial > hg > CbC > CbC_llvm
view lldb/test/Shell/lit.cfg.py @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 79ff65ed7e25 |
children | 1f2b6ac9f198 |
line wrap: on
line source
# -*- Python -*- import os import platform import re import shutil import site import subprocess import sys import lit.formats from lit.llvm import llvm_config from lit.llvm.subst import FindTool from lit.llvm.subst import ToolSubst site.addsitedir(os.path.dirname(__file__)) from helper import toolchain # name: The name of this test suite. config.name = 'lldb-shell' # testFormat: The test format to use to interpret tests. config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) # suffixes: A list of file extensions to treat as test files. This is overriden # by individual lit.local.cfg files in the test subdirectories. config.suffixes = ['.test', '.cpp', '.s'] # excludes: A list of directories to exclude from the testsuite. The 'Inputs' # subdirectories contain auxiliary inputs for various tests in their parent # directories. config.excludes = ['Inputs', 'CMakeLists.txt', 'README.txt', 'LICENSE.txt'] # test_source_root: The root path where tests are located. config.test_source_root = os.path.dirname(__file__) # test_exec_root: The root path where tests should be run. config.test_exec_root = os.path.join(config.lldb_obj_root, 'test', 'Shell') # Propagate environment vars. llvm_config.with_system_environment([ 'FREEBSD_LEGACY_PLUGIN', 'HOME', 'TEMP', 'TMP', 'XDG_CACHE_HOME', ]) # Support running the test suite under the lldb-repro wrapper. This makes it # possible to capture a test suite run and then rerun all the test from the # just captured reproducer. lldb_repro_mode = lit_config.params.get('lldb-run-with-repro', None) if lldb_repro_mode: config.available_features.add('lldb-repro') lit_config.note("Running Shell tests in {} mode.".format(lldb_repro_mode)) toolchain.use_lldb_repro_substitutions(config, lldb_repro_mode) llvm_config.use_default_substitutions() toolchain.use_lldb_substitutions(config) toolchain.use_support_substitutions(config) if re.match(r'^arm(hf.*-linux)|(.*-linux-gnuabihf)', config.target_triple): config.available_features.add("armhf-linux") if re.match(r'.*-(windows-msvc)$', config.target_triple): config.available_features.add("windows-msvc") if re.match(r'.*-(windows-gnu|mingw32)$', config.target_triple): config.available_features.add("windows-gnu") def calculate_arch_features(arch_string): # This will add a feature such as x86, arm, mips, etc for each built # target features = [] for arch in arch_string.split(): features.append(arch.lower()) return features # Run llvm-config and add automatically add features for whether we have # assertions enabled, whether we are in debug mode, and what targets we # are built for. llvm_config.feature_config( [('--assertion-mode', {'ON': 'asserts'}), ('--build-mode', {'DEBUG': 'debug'}), ('--targets-built', calculate_arch_features) ]) # Clean the module caches in the test build directory. This is necessary in an # incremental build whenever clang changes underneath, so doing it once per # lit.py invocation is close enough. for cachedir in [config.clang_module_cache, config.lldb_module_cache]: if os.path.isdir(cachedir): lit_config.note("Deleting module cache at %s."%cachedir) shutil.rmtree(cachedir) # Set a default per-test timeout of 10 minutes. Setting a timeout per test # requires that killProcessAndChildren() is supported on the platform and # lit complains if the value is set but it is not supported. supported, errormsg = lit_config.maxIndividualTestTimeIsSupported if supported: lit_config.maxIndividualTestTime = 600 else: lit_config.warning("Could not set a default per-test timeout. " + errormsg) # If running tests natively, check for CPU features needed for some tests. if 'native' in config.available_features: cpuid_exe = lit.util.which('lit-cpuid', config.lldb_tools_dir) if cpuid_exe is None: lit_config.warning("lit-cpuid not found, tests requiring CPU extensions will be skipped") else: out, err, exitcode = lit.util.executeCommand([cpuid_exe]) if exitcode == 0: for x in out.split(): config.available_features.add('native-cpu-%s' % x) else: lit_config.warning("lit-cpuid failed: %s" % err) if config.lldb_enable_python: config.available_features.add('python') if config.lldb_enable_lua: config.available_features.add('lua') if config.lldb_enable_lzma: config.available_features.add('lzma') if shutil.which('xz') != None: config.available_features.add('xz') if config.lldb_system_debugserver: config.available_features.add('system-debugserver') if config.have_lldb_server: config.available_features.add('lldb-server') # NetBSD permits setting dbregs either if one is root # or if user_set_dbregs is enabled can_set_dbregs = True if platform.system() == 'NetBSD' and os.geteuid() != 0: try: output = subprocess.check_output(["/sbin/sysctl", "-n", "security.models.extensions.user_set_dbregs"]).decode().strip() if output != "1": can_set_dbregs = False except subprocess.CalledProcessError: can_set_dbregs = False if can_set_dbregs: config.available_features.add('dbregs-set') if 'LD_PRELOAD' in os.environ: config.available_features.add('ld_preload-present')