diff --git a/clang-tools-extra/clangd/test/CMakeLists.txt b/clang-tools-extra/clangd/test/CMakeLists.txt index 42fc3506641f2..eef8f529667f7 100644 --- a/clang-tools-extra/clangd/test/CMakeLists.txt +++ b/clang-tools-extra/clangd/test/CMakeLists.txt @@ -5,6 +5,10 @@ set(CLANGD_TEST_DEPS split-file ) +if (LLVM_INCLUDE_BENCHMARKS) + list(APPEND CLANGD_TEST_DEPS IndexBenchmark) +endif() + if(CLANGD_BUILD_XPC) list(APPEND CLANGD_TEST_DEPS clangd-xpc-test-client) list(APPEND CLANGD_TEST_DEPS ClangdXpcUnitTests) diff --git a/clang-tools-extra/clangd/test/include-cleaner-batch-fix.test b/clang-tools-extra/clangd/test/include-cleaner-batch-fix.test index 07ebe1009a78f..5a87a87e2f63a 100644 --- a/clang-tools-extra/clangd/test/include-cleaner-batch-fix.test +++ b/clang-tools-extra/clangd/test/include-cleaner-batch-fix.test @@ -7,7 +7,9 @@ # RUN: cp -r %S/Inputs/include-cleaner %t/include # RUN: echo '-I%t/include' > %t/compile_flags.txt # Create a config file enabling include-cleaner features. -# RUN: echo $'Diagnostics:\n UnusedIncludes: Strict\n MissingIncludes: Strict' >> %t/clangd/config.yaml +# RUN: echo 'Diagnostics:' > %t/clangd/config.yaml +# RUN: echo ' UnusedIncludes: Strict' >> %t/clangd/config.yaml +# RUN: echo ' MissingIncludes: Strict' >> %t/clangd/config.yaml # RUN: env XDG_CONFIG_HOME=%t clangd -lit-test -enable-config --compile-commands-dir=%t < %s | FileCheck -strict-whitespace %s {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{"workspace":{"workspaceEdit":{"documentChanges":true, "changeAnnotationSupport":{"groupsOnLabel":true}}}},"trace":"off"}} diff --git a/clang-tools-extra/clangd/test/index-tools.test b/clang-tools-extra/clangd/test/index-tools.test index 93cf56fea371a..cc01e196f113f 100644 --- a/clang-tools-extra/clangd/test/index-tools.test +++ b/clang-tools-extra/clangd/test/index-tools.test @@ -1,6 +1,7 @@ +# Paths are not constructed correctly for the test to run on Windows. +# UNSUPPORTED: system-windows +# REQUIRES: have-benchmarks # RUN: clangd-indexer %p/Inputs/BenchmarkSource.cpp -- -I%p/Inputs > %t.index -# FIXME: By default, benchmarks are excluded from the list of default targets hence not built. Find a way to depend on benchmarks to run the next command. -# REQUIRES: shell -# RUN: if [ -f %clangd-benchmark-dir/IndexBenchmark ]; then %clangd-benchmark-dir/IndexBenchmark %t.index %p/Inputs/requests.json --benchmark_min_time=0.01 ; fi +# RUN: %clangd-benchmark-dir/IndexBenchmark %t.index %p/Inputs/requests.json --benchmark_min_time=0.01 # Pass invalid JSON file and check that IndexBenchmark fails to parse it. -# RUN: if [ -f %clangd-benchmark-dir/IndexBenchmark ]; then not %clangd-benchmark-dir/IndexBenchmark %t.index %t --benchmark_min_time=0.01 ; fi +# RUN: not %clangd-benchmark-dir/IndexBenchmark %t.index %t --benchmark_min_time=0.01 diff --git a/clang-tools-extra/clangd/test/lit.cfg.py b/clang-tools-extra/clangd/test/lit.cfg.py index 8ab4309e337d1..05a0f5e7383e9 100644 --- a/clang-tools-extra/clangd/test/lit.cfg.py +++ b/clang-tools-extra/clangd/test/lit.cfg.py @@ -1,4 +1,5 @@ import lit.llvm +import lit.util lit.llvm.initialize(lit_config, config) lit.llvm.llvm_config.clang_setup() @@ -37,6 +38,9 @@ def calculate_arch_features(arch_string): if config.have_zlib: config.available_features.add("zlib") +if lit.util.pythonize_bool(config.have_benchmarks): + config.available_features.add("have-benchmarks") + # 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. diff --git a/clang-tools-extra/clangd/test/lit.site.cfg.py.in b/clang-tools-extra/clangd/test/lit.site.cfg.py.in index a0bb3561e19ee..f5ae3eb1f0743 100644 --- a/clang-tools-extra/clangd/test/lit.site.cfg.py.in +++ b/clang-tools-extra/clangd/test/lit.site.cfg.py.in @@ -19,6 +19,7 @@ config.clangd_build_dexp = @CLANGD_BUILD_DEXP@ config.clangd_enable_remote = @CLANGD_ENABLE_REMOTE@ config.clangd_tidy_checks = @CLANGD_TIDY_CHECKS@ config.have_zlib = @LLVM_ENABLE_ZLIB@ +config.have_benchmarks = "@LLVM_INCLUDE_BENCHMARKS@" # Delegate logic to lit.cfg.py. lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py") diff --git a/clang-tools-extra/clangd/test/system-include-extractor.test b/clang-tools-extra/clangd/test/system-include-extractor.test index 83a8c28bf7d56..3314be806a801 100644 --- a/clang-tools-extra/clangd/test/system-include-extractor.test +++ b/clang-tools-extra/clangd/test/system-include-extractor.test @@ -5,7 +5,8 @@ # Create a bin directory to store the mock-driver and add it to the path # RUN: mkdir -p %t.dir/bin -# RUN: export PATH=%t.dir/bin:$PATH +# RUN: %python -c "print(__import__('os').environ['PATH'])" > %t.path +# RUN: export PATH=%t.dir/bin:%{readfile:%t.path} # Generate a mock-driver that will print %temp_dir%/my/dir and # %temp_dir%/my/dir2 as include search paths. # RUN: echo '#!/bin/sh' >> %t.dir/bin/my_driver.sh