import lit.llvm lit.llvm.initialize(lit_config, config) lit.llvm.llvm_config.use_clang([], [], required=False) lit.llvm.llvm_config.use_default_substitutions() config.name = "Clangd" config.suffixes = [".test"] config.excludes = ["Inputs"] config.test_format = lit.formats.ShTest(not lit.llvm.llvm_config.use_lit_shell) config.test_source_root = config.clangd_source_dir + "/test" config.test_exec_root = config.clangd_binary_dir + "/test" # Used to enable tests based on the required targets. Can be queried with e.g. # REQUIRES: x86-registered-target def calculate_arch_features(arch_string): return [arch.lower() + "-registered-target" for arch in arch_string.split()] lit.llvm.llvm_config.feature_config([("--targets-built", calculate_arch_features)]) # Clangd-specific lit environment. config.substitutions.append( ("%clangd-benchmark-dir", config.clangd_binary_dir + "/benchmarks") ) if config.clangd_build_xpc: config.available_features.add("clangd-xpc-support") if config.clangd_enable_remote: config.available_features.add("clangd-remote-index") if config.clangd_tidy_checks: config.available_features.add("clangd-tidy-checks") if config.have_zlib: config.available_features.add("zlib") # It is not realistically possible to account for all options that could # possibly be present in system and user configuration files, so disable # default configs for the test runs. config.environment["CLANG_NO_DEFAULT_CONFIG"] = "1"