| import lit.formats |
| import lit.util |
| |
| config.name = "Clangd Unit Tests" |
| config.test_format = lit.formats.GoogleTest(".", "Tests") |
| config.test_source_root = config.clangd_binary_dir + "/unittests" |
| config.test_exec_root = config.clangd_binary_dir + "/unittests" |
| |
| # Point the dynamic loader at dynamic libraries in 'lib'. |
| # FIXME: it seems every project has a copy of this logic. Move it somewhere. |
| import platform |
| |
| # Clangd unittests uses ~4 threads per test. So make sure we don't over commit. |
| core_count = lit.util.usable_core_count() |
| # FIXME: Split unittests into groups that use threads, and groups that do not, |
| # and only limit multi-threaded tests. |
| lit_config.parallelism_groups["clangd"] = max(1, core_count // 4) |
| config.parallelism_group = "clangd" |
| |
| if platform.system() == "Darwin": |
| shlibpath_var = "DYLD_LIBRARY_PATH" |
| elif platform.system() == "Windows": |
| shlibpath_var = "PATH" |
| else: |
| shlibpath_var = "LD_LIBRARY_PATH" |
| config.environment[shlibpath_var] = os.path.pathsep.join( |
| ("@SHLIBDIR@", "@LLVM_LIBS_DIR@", config.environment.get(shlibpath_var, "")) |
| ) |
| |
| # 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" |