diff --git a/clang-tools-extra/CMakeLists.txt b/clang-tools-extra/CMakeLists.txt index 514b17fb3c0c..d32b4b9f9eb9 100644 --- a/clang-tools-extra/CMakeLists.txt +++ b/clang-tools-extra/CMakeLists.txt @@ -1,15 +1,3 @@ -if (NOT DEFINED CLANGD_BUILD_XPC) - if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CLANGD_BUILD_XPC_DEFAULT ON) - else () - set(CLANGD_BUILD_XPC_DEFAULT OFF) - endif () - - set(CLANGD_BUILD_XPC ${CLANGD_BUILD_XPC_DEFAULT} CACHE BOOL "Build XPC Support For Clangd." FORCE) - - unset(CLANGD_BUILD_XPC_DEFAULT) -endif () - add_subdirectory(clang-apply-replacements) add_subdirectory(clang-reorder-fields) add_subdirectory(modularize) diff --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt index 8e159212fa56..d4dd47ebf6f2 100644 --- a/clang-tools-extra/clangd/CMakeLists.txt +++ b/clang-tools-extra/clangd/CMakeLists.txt @@ -1,6 +1,17 @@ # Configure the Features.inc file. -llvm_canonicalize_cmake_booleans( - CLANGD_BUILD_XPC) +if (NOT DEFINED CLANGD_BUILD_XPC) + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CLANGD_BUILD_XPC_DEFAULT ON) + else () + set(CLANGD_BUILD_XPC_DEFAULT OFF) + endif () + + set(CLANGD_BUILD_XPC ${CLANGD_BUILD_XPC_DEFAULT} CACHE BOOL "Build XPC Support For Clangd." FORCE) + unset(CLANGD_BUILD_XPC_DEFAULT) +endif () + +llvm_canonicalize_cmake_booleans(CLANGD_BUILD_XPC) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Features.inc.in ${CMAKE_CURRENT_BINARY_DIR}/Features.inc @@ -130,3 +141,8 @@ endif() if ( CLANGD_BUILD_XPC ) add_subdirectory(xpc) endif () + +if(CLANG_INCLUDE_TESTS) +add_subdirectory(test) +add_subdirectory(unittests) +endif() diff --git a/clang-tools-extra/clangd/test/CMakeLists.txt b/clang-tools-extra/clangd/test/CMakeLists.txt new file mode 100644 index 000000000000..6de75c01affc --- /dev/null +++ b/clang-tools-extra/clangd/test/CMakeLists.txt @@ -0,0 +1,28 @@ +set(CLANGD_TEST_DEPS + clangd + ClangdTests + # No tests for these, but we should still make sure they build. + clangd-indexer + dexp + ) + +if(CLANGD_BUILD_XPC) + list(APPEND CLANGD_TEST_DEPS clangd-xpc-test-client) +endif() + +foreach(dep FileCheck count not) + if(TARGET ${dep}) + list(APPEND CLANGD_TEST_DEPS ${dep}) + endif() +endforeach() + +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.cfg) +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/../unittests/lit.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/../unittests/lit.cfg) + +add_lit_testsuite(check-clangd "Running the Clangd regression tests" + ${CMAKE_CURRENT_BINARY_DIR}/Unit;${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${CLANGD_TEST_DEPS}) diff --git a/clang-tools-extra/test/clangd/Inputs/BenchmarkHeader.h b/clang-tools-extra/clangd/test/Inputs/BenchmarkHeader.h similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/BenchmarkHeader.h rename to clang-tools-extra/clangd/test/Inputs/BenchmarkHeader.h diff --git a/clang-tools-extra/test/clangd/Inputs/BenchmarkSource.cpp b/clang-tools-extra/clangd/test/Inputs/BenchmarkSource.cpp similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/BenchmarkSource.cpp rename to clang-tools-extra/clangd/test/Inputs/BenchmarkSource.cpp diff --git a/clang-tools-extra/test/clangd/Inputs/background-index/compile_commands.json b/clang-tools-extra/clangd/test/Inputs/background-index/compile_commands.json similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/background-index/compile_commands.json rename to clang-tools-extra/clangd/test/Inputs/background-index/compile_commands.json diff --git a/clang-tools-extra/test/clangd/Inputs/background-index/definition.jsonrpc b/clang-tools-extra/clangd/test/Inputs/background-index/definition.jsonrpc similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/background-index/definition.jsonrpc rename to clang-tools-extra/clangd/test/Inputs/background-index/definition.jsonrpc diff --git a/clang-tools-extra/test/clangd/Inputs/background-index/foo.cpp b/clang-tools-extra/clangd/test/Inputs/background-index/foo.cpp similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/background-index/foo.cpp rename to clang-tools-extra/clangd/test/Inputs/background-index/foo.cpp diff --git a/clang-tools-extra/test/clangd/Inputs/background-index/foo.h b/clang-tools-extra/clangd/test/Inputs/background-index/foo.h similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/background-index/foo.h rename to clang-tools-extra/clangd/test/Inputs/background-index/foo.h diff --git a/clang-tools-extra/test/clangd/Inputs/requests.json b/clang-tools-extra/clangd/test/Inputs/requests.json similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/requests.json rename to clang-tools-extra/clangd/test/Inputs/requests.json diff --git a/clang-tools-extra/test/clangd/Inputs/symbols.test.yaml b/clang-tools-extra/clangd/test/Inputs/symbols.test.yaml similarity index 100% rename from clang-tools-extra/test/clangd/Inputs/symbols.test.yaml rename to clang-tools-extra/clangd/test/Inputs/symbols.test.yaml diff --git a/clang-tools-extra/test/clangd/background-index.test b/clang-tools-extra/clangd/test/background-index.test similarity index 100% rename from clang-tools-extra/test/clangd/background-index.test rename to clang-tools-extra/clangd/test/background-index.test diff --git a/clang-tools-extra/test/clangd/compile-commands-path-in-initialize.test b/clang-tools-extra/clangd/test/compile-commands-path-in-initialize.test similarity index 100% rename from clang-tools-extra/test/clangd/compile-commands-path-in-initialize.test rename to clang-tools-extra/clangd/test/compile-commands-path-in-initialize.test diff --git a/clang-tools-extra/test/clangd/completion-auto-trigger.test b/clang-tools-extra/clangd/test/completion-auto-trigger.test similarity index 100% rename from clang-tools-extra/test/clangd/completion-auto-trigger.test rename to clang-tools-extra/clangd/test/completion-auto-trigger.test diff --git a/clang-tools-extra/test/clangd/completion-snippets.test b/clang-tools-extra/clangd/test/completion-snippets.test similarity index 100% rename from clang-tools-extra/test/clangd/completion-snippets.test rename to clang-tools-extra/clangd/test/completion-snippets.test diff --git a/clang-tools-extra/test/clangd/completion.test b/clang-tools-extra/clangd/test/completion.test similarity index 100% rename from clang-tools-extra/test/clangd/completion.test rename to clang-tools-extra/clangd/test/completion.test diff --git a/clang-tools-extra/test/clangd/crash-non-added-files.test b/clang-tools-extra/clangd/test/crash-non-added-files.test similarity index 100% rename from clang-tools-extra/test/clangd/crash-non-added-files.test rename to clang-tools-extra/clangd/test/crash-non-added-files.test diff --git a/clang-tools-extra/test/clangd/delimited-input-comment-at-the-end.test b/clang-tools-extra/clangd/test/delimited-input-comment-at-the-end.test similarity index 100% rename from clang-tools-extra/test/clangd/delimited-input-comment-at-the-end.test rename to clang-tools-extra/clangd/test/delimited-input-comment-at-the-end.test diff --git a/clang-tools-extra/test/clangd/diagnostic-category.test b/clang-tools-extra/clangd/test/diagnostic-category.test similarity index 100% rename from clang-tools-extra/test/clangd/diagnostic-category.test rename to clang-tools-extra/clangd/test/diagnostic-category.test diff --git a/clang-tools-extra/test/clangd/diagnostics-notes.test b/clang-tools-extra/clangd/test/diagnostics-notes.test similarity index 100% rename from clang-tools-extra/test/clangd/diagnostics-notes.test rename to clang-tools-extra/clangd/test/diagnostics-notes.test diff --git a/clang-tools-extra/test/clangd/diagnostics.test b/clang-tools-extra/clangd/test/diagnostics.test similarity index 100% rename from clang-tools-extra/test/clangd/diagnostics.test rename to clang-tools-extra/clangd/test/diagnostics.test diff --git a/clang-tools-extra/test/clangd/did-change-configuration-params.test b/clang-tools-extra/clangd/test/did-change-configuration-params.test similarity index 100% rename from clang-tools-extra/test/clangd/did-change-configuration-params.test rename to clang-tools-extra/clangd/test/did-change-configuration-params.test diff --git a/clang-tools-extra/test/clangd/execute-command.test b/clang-tools-extra/clangd/test/execute-command.test similarity index 100% rename from clang-tools-extra/test/clangd/execute-command.test rename to clang-tools-extra/clangd/test/execute-command.test diff --git a/clang-tools-extra/test/clangd/exit-with-shutdown.test b/clang-tools-extra/clangd/test/exit-with-shutdown.test similarity index 100% rename from clang-tools-extra/test/clangd/exit-with-shutdown.test rename to clang-tools-extra/clangd/test/exit-with-shutdown.test diff --git a/clang-tools-extra/test/clangd/exit-without-shutdown.test b/clang-tools-extra/clangd/test/exit-without-shutdown.test similarity index 100% rename from clang-tools-extra/test/clangd/exit-without-shutdown.test rename to clang-tools-extra/clangd/test/exit-without-shutdown.test diff --git a/clang-tools-extra/test/clangd/filestatus.test b/clang-tools-extra/clangd/test/filestatus.test similarity index 100% rename from clang-tools-extra/test/clangd/filestatus.test rename to clang-tools-extra/clangd/test/filestatus.test diff --git a/clang-tools-extra/test/clangd/fixits-codeaction.test b/clang-tools-extra/clangd/test/fixits-codeaction.test similarity index 100% rename from clang-tools-extra/test/clangd/fixits-codeaction.test rename to clang-tools-extra/clangd/test/fixits-codeaction.test diff --git a/clang-tools-extra/test/clangd/fixits-command.test b/clang-tools-extra/clangd/test/fixits-command.test similarity index 100% rename from clang-tools-extra/test/clangd/fixits-command.test rename to clang-tools-extra/clangd/test/fixits-command.test diff --git a/clang-tools-extra/test/clangd/fixits-embed-in-diagnostic.test b/clang-tools-extra/clangd/test/fixits-embed-in-diagnostic.test similarity index 100% rename from clang-tools-extra/test/clangd/fixits-embed-in-diagnostic.test rename to clang-tools-extra/clangd/test/fixits-embed-in-diagnostic.test diff --git a/clang-tools-extra/test/clangd/formatting.test b/clang-tools-extra/clangd/test/formatting.test similarity index 100% rename from clang-tools-extra/test/clangd/formatting.test rename to clang-tools-extra/clangd/test/formatting.test diff --git a/clang-tools-extra/test/clangd/hover.test b/clang-tools-extra/clangd/test/hover.test similarity index 100% rename from clang-tools-extra/test/clangd/hover.test rename to clang-tools-extra/clangd/test/hover.test diff --git a/clang-tools-extra/test/clangd/index-tools.test b/clang-tools-extra/clangd/test/index-tools.test similarity index 100% rename from clang-tools-extra/test/clangd/index-tools.test rename to clang-tools-extra/clangd/test/index-tools.test diff --git a/clang-tools-extra/test/clangd/initialize-params-invalid.test b/clang-tools-extra/clangd/test/initialize-params-invalid.test similarity index 100% rename from clang-tools-extra/test/clangd/initialize-params-invalid.test rename to clang-tools-extra/clangd/test/initialize-params-invalid.test diff --git a/clang-tools-extra/test/clangd/initialize-params.test b/clang-tools-extra/clangd/test/initialize-params.test similarity index 100% rename from clang-tools-extra/test/clangd/initialize-params.test rename to clang-tools-extra/clangd/test/initialize-params.test diff --git a/clang-tools-extra/test/clangd/initialize-sequence.test b/clang-tools-extra/clangd/test/initialize-sequence.test similarity index 100% rename from clang-tools-extra/test/clangd/initialize-sequence.test rename to clang-tools-extra/clangd/test/initialize-sequence.test diff --git a/clang-tools-extra/test/clangd/input-mirror.test b/clang-tools-extra/clangd/test/input-mirror.test similarity index 100% rename from clang-tools-extra/test/clangd/input-mirror.test rename to clang-tools-extra/clangd/test/input-mirror.test diff --git a/clang-tools-extra/clangd/test/lit.cfg.in b/clang-tools-extra/clangd/test/lit.cfg.in new file mode 100644 index 000000000000..8f5a58385780 --- /dev/null +++ b/clang-tools-extra/clangd/test/lit.cfg.in @@ -0,0 +1,29 @@ +@LIT_SITE_CFG_IN_HEADER@ + +import lit.llvm +import lit.formats + +# Reuse clang configuration (PATH setup, etc). +config.clang_tools_dir = "@CLANG_TOOLS_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.clang_libs_dir = "@CLANG_LIBS_DIR@" +config.llvm_libs_dir = "@LLVM_LIBS_DIR@" +config.target_triple = "@TARGET_TRIPLE@" +config.host_triple = "@LLVM_HOST_TRIPLE@" +lit.llvm.initialize(lit_config, config) +lit.llvm.llvm_config.use_clang() + +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 = "@CMAKE_CURRENT_SOURCE_DIR@" +config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" + +# Clangd-specific lit environment. +config.substitutions.append(('%clangd-benchmark-dir', + "@CMAKE_CURRENT_BINARY_DIR@/../benchmarks")) + +if @CLANGD_BUILD_XPC@: + config.available_features.add('clangd-xpc-support') + diff --git a/clang-tools-extra/test/clangd/lit.local.cfg b/clang-tools-extra/clangd/test/lit.local.cfg similarity index 100% rename from clang-tools-extra/test/clangd/lit.local.cfg rename to clang-tools-extra/clangd/test/lit.local.cfg diff --git a/clang-tools-extra/test/clangd/protocol.test b/clang-tools-extra/clangd/test/protocol.test similarity index 100% rename from clang-tools-extra/test/clangd/protocol.test rename to clang-tools-extra/clangd/test/protocol.test diff --git a/clang-tools-extra/test/clangd/references.test b/clang-tools-extra/clangd/test/references.test similarity index 100% rename from clang-tools-extra/test/clangd/references.test rename to clang-tools-extra/clangd/test/references.test diff --git a/clang-tools-extra/test/clangd/rename.test b/clang-tools-extra/clangd/test/rename.test similarity index 100% rename from clang-tools-extra/test/clangd/rename.test rename to clang-tools-extra/clangd/test/rename.test diff --git a/clang-tools-extra/test/clangd/signature-help.test b/clang-tools-extra/clangd/test/signature-help.test similarity index 100% rename from clang-tools-extra/test/clangd/signature-help.test rename to clang-tools-extra/clangd/test/signature-help.test diff --git a/clang-tools-extra/test/clangd/spaces-in-delimited-input.test b/clang-tools-extra/clangd/test/spaces-in-delimited-input.test similarity index 100% rename from clang-tools-extra/test/clangd/spaces-in-delimited-input.test rename to clang-tools-extra/clangd/test/spaces-in-delimited-input.test diff --git a/clang-tools-extra/test/clangd/symbol-info.test b/clang-tools-extra/clangd/test/symbol-info.test similarity index 100% rename from clang-tools-extra/test/clangd/symbol-info.test rename to clang-tools-extra/clangd/test/symbol-info.test diff --git a/clang-tools-extra/test/clangd/symbols.test b/clang-tools-extra/clangd/test/symbols.test similarity index 100% rename from clang-tools-extra/test/clangd/symbols.test rename to clang-tools-extra/clangd/test/symbols.test diff --git a/clang-tools-extra/test/clangd/test-uri-posix.test b/clang-tools-extra/clangd/test/test-uri-posix.test similarity index 100% rename from clang-tools-extra/test/clangd/test-uri-posix.test rename to clang-tools-extra/clangd/test/test-uri-posix.test diff --git a/clang-tools-extra/test/clangd/test-uri-windows.test b/clang-tools-extra/clangd/test/test-uri-windows.test similarity index 100% rename from clang-tools-extra/test/clangd/test-uri-windows.test rename to clang-tools-extra/clangd/test/test-uri-windows.test diff --git a/clang-tools-extra/test/clangd/textdocument-didchange-fail.test b/clang-tools-extra/clangd/test/textdocument-didchange-fail.test similarity index 100% rename from clang-tools-extra/test/clangd/textdocument-didchange-fail.test rename to clang-tools-extra/clangd/test/textdocument-didchange-fail.test diff --git a/clang-tools-extra/test/clangd/too_large.test b/clang-tools-extra/clangd/test/too_large.test similarity index 100% rename from clang-tools-extra/test/clangd/too_large.test rename to clang-tools-extra/clangd/test/too_large.test diff --git a/clang-tools-extra/test/clangd/trace.test b/clang-tools-extra/clangd/test/trace.test similarity index 100% rename from clang-tools-extra/test/clangd/trace.test rename to clang-tools-extra/clangd/test/trace.test diff --git a/clang-tools-extra/test/clangd/tweaks-format.test b/clang-tools-extra/clangd/test/tweaks-format.test similarity index 100% rename from clang-tools-extra/test/clangd/tweaks-format.test rename to clang-tools-extra/clangd/test/tweaks-format.test diff --git a/clang-tools-extra/test/clangd/type-hierarchy.test b/clang-tools-extra/clangd/test/type-hierarchy.test similarity index 100% rename from clang-tools-extra/test/clangd/type-hierarchy.test rename to clang-tools-extra/clangd/test/type-hierarchy.test diff --git a/clang-tools-extra/test/clangd/unsupported-method.test b/clang-tools-extra/clangd/test/unsupported-method.test similarity index 100% rename from clang-tools-extra/test/clangd/unsupported-method.test rename to clang-tools-extra/clangd/test/unsupported-method.test diff --git a/clang-tools-extra/test/clangd/utf8.test b/clang-tools-extra/clangd/test/utf8.test similarity index 100% rename from clang-tools-extra/test/clangd/utf8.test rename to clang-tools-extra/clangd/test/utf8.test diff --git a/clang-tools-extra/test/clangd/xpc/initialize.test b/clang-tools-extra/clangd/test/xpc/initialize.test similarity index 100% rename from clang-tools-extra/test/clangd/xpc/initialize.test rename to clang-tools-extra/clangd/test/xpc/initialize.test diff --git a/clang-tools-extra/test/clangd/xrefs.test b/clang-tools-extra/clangd/test/xrefs.test similarity index 100% rename from clang-tools-extra/test/clangd/xrefs.test rename to clang-tools-extra/clangd/test/xrefs.test diff --git a/clang-tools-extra/unittests/clangd/Annotations.cpp b/clang-tools-extra/clangd/unittests/Annotations.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/Annotations.cpp rename to clang-tools-extra/clangd/unittests/Annotations.cpp diff --git a/clang-tools-extra/unittests/clangd/Annotations.h b/clang-tools-extra/clangd/unittests/Annotations.h similarity index 100% rename from clang-tools-extra/unittests/clangd/Annotations.h rename to clang-tools-extra/clangd/unittests/Annotations.h diff --git a/clang-tools-extra/unittests/clangd/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/BackgroundIndexTests.cpp rename to clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp diff --git a/clang-tools-extra/unittests/clangd/CMakeLists.txt b/clang-tools-extra/clangd/unittests/CMakeLists.txt similarity index 81% rename from clang-tools-extra/unittests/clangd/CMakeLists.txt rename to clang-tools-extra/clangd/unittests/CMakeLists.txt index 61a720ddd570..f0471643a06a 100644 --- a/clang-tools-extra/unittests/clangd/CMakeLists.txt +++ b/clang-tools-extra/clangd/unittests/CMakeLists.txt @@ -11,7 +11,17 @@ include_directories( ${CLANGD_BINARY_DIR} ) -add_extra_unittest(ClangdTests +if(CLANG_BUILT_STANDALONE) + # LLVMTestingSupport library is needed for clangd tests. + if (EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Testing/Support + AND NOT TARGET LLVMTestingSupport) + add_subdirectory(${LLVM_MAIN_SRC_DIR}/lib/Testing/Support + lib/Testing/Support) + endif() +endif() + +add_custom_target(ClangdUnitTests) +add_unittest(ClangdUnitTests ClangdTests Annotations.cpp BackgroundIndexTests.cpp CancellationTests.cpp diff --git a/clang-tools-extra/unittests/clangd/CancellationTests.cpp b/clang-tools-extra/clangd/unittests/CancellationTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/CancellationTests.cpp rename to clang-tools-extra/clangd/unittests/CancellationTests.cpp diff --git a/clang-tools-extra/unittests/clangd/ClangdTests.cpp b/clang-tools-extra/clangd/unittests/ClangdTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/ClangdTests.cpp rename to clang-tools-extra/clangd/unittests/ClangdTests.cpp diff --git a/clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp b/clang-tools-extra/clangd/unittests/ClangdUnitTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp rename to clang-tools-extra/clangd/unittests/ClangdUnitTests.cpp diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp rename to clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp diff --git a/clang-tools-extra/unittests/clangd/CodeCompletionStringsTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompletionStringsTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/CodeCompletionStringsTests.cpp rename to clang-tools-extra/clangd/unittests/CodeCompletionStringsTests.cpp diff --git a/clang-tools-extra/unittests/clangd/ContextTests.cpp b/clang-tools-extra/clangd/unittests/ContextTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/ContextTests.cpp rename to clang-tools-extra/clangd/unittests/ContextTests.cpp diff --git a/clang-tools-extra/unittests/clangd/DexTests.cpp b/clang-tools-extra/clangd/unittests/DexTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/DexTests.cpp rename to clang-tools-extra/clangd/unittests/DexTests.cpp diff --git a/clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp b/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp rename to clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp diff --git a/clang-tools-extra/unittests/clangd/DraftStoreTests.cpp b/clang-tools-extra/clangd/unittests/DraftStoreTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/DraftStoreTests.cpp rename to clang-tools-extra/clangd/unittests/DraftStoreTests.cpp diff --git a/clang-tools-extra/unittests/clangd/ExpectedTypeTest.cpp b/clang-tools-extra/clangd/unittests/ExpectedTypeTest.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/ExpectedTypeTest.cpp rename to clang-tools-extra/clangd/unittests/ExpectedTypeTest.cpp diff --git a/clang-tools-extra/unittests/clangd/FSTests.cpp b/clang-tools-extra/clangd/unittests/FSTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FSTests.cpp rename to clang-tools-extra/clangd/unittests/FSTests.cpp diff --git a/clang-tools-extra/unittests/clangd/FileDistanceTests.cpp b/clang-tools-extra/clangd/unittests/FileDistanceTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FileDistanceTests.cpp rename to clang-tools-extra/clangd/unittests/FileDistanceTests.cpp diff --git a/clang-tools-extra/unittests/clangd/FileIndexTests.cpp b/clang-tools-extra/clangd/unittests/FileIndexTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FileIndexTests.cpp rename to clang-tools-extra/clangd/unittests/FileIndexTests.cpp diff --git a/clang-tools-extra/unittests/clangd/FindSymbolsTests.cpp b/clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FindSymbolsTests.cpp rename to clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp diff --git a/clang-tools-extra/unittests/clangd/FunctionTests.cpp b/clang-tools-extra/clangd/unittests/FunctionTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FunctionTests.cpp rename to clang-tools-extra/clangd/unittests/FunctionTests.cpp diff --git a/clang-tools-extra/unittests/clangd/FuzzyMatchTests.cpp b/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/FuzzyMatchTests.cpp rename to clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp diff --git a/clang-tools-extra/unittests/clangd/GlobalCompilationDatabaseTests.cpp b/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/GlobalCompilationDatabaseTests.cpp rename to clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp diff --git a/clang-tools-extra/unittests/clangd/HeadersTests.cpp b/clang-tools-extra/clangd/unittests/HeadersTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/HeadersTests.cpp rename to clang-tools-extra/clangd/unittests/HeadersTests.cpp diff --git a/clang-tools-extra/unittests/clangd/IndexActionTests.cpp b/clang-tools-extra/clangd/unittests/IndexActionTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/IndexActionTests.cpp rename to clang-tools-extra/clangd/unittests/IndexActionTests.cpp diff --git a/clang-tools-extra/unittests/clangd/IndexTests.cpp b/clang-tools-extra/clangd/unittests/IndexTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/IndexTests.cpp rename to clang-tools-extra/clangd/unittests/IndexTests.cpp diff --git a/clang-tools-extra/unittests/clangd/JSONTransportTests.cpp b/clang-tools-extra/clangd/unittests/JSONTransportTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/JSONTransportTests.cpp rename to clang-tools-extra/clangd/unittests/JSONTransportTests.cpp diff --git a/clang-tools-extra/unittests/clangd/Matchers.h b/clang-tools-extra/clangd/unittests/Matchers.h similarity index 100% rename from clang-tools-extra/unittests/clangd/Matchers.h rename to clang-tools-extra/clangd/unittests/Matchers.h diff --git a/clang-tools-extra/unittests/clangd/PrintASTTests.cpp b/clang-tools-extra/clangd/unittests/PrintASTTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/PrintASTTests.cpp rename to clang-tools-extra/clangd/unittests/PrintASTTests.cpp diff --git a/clang-tools-extra/unittests/clangd/QualityTests.cpp b/clang-tools-extra/clangd/unittests/QualityTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/QualityTests.cpp rename to clang-tools-extra/clangd/unittests/QualityTests.cpp diff --git a/clang-tools-extra/unittests/clangd/RIFFTests.cpp b/clang-tools-extra/clangd/unittests/RIFFTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/RIFFTests.cpp rename to clang-tools-extra/clangd/unittests/RIFFTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SelectionTests.cpp b/clang-tools-extra/clangd/unittests/SelectionTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SelectionTests.cpp rename to clang-tools-extra/clangd/unittests/SelectionTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SerializationTests.cpp b/clang-tools-extra/clangd/unittests/SerializationTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SerializationTests.cpp rename to clang-tools-extra/clangd/unittests/SerializationTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SourceCodeTests.cpp b/clang-tools-extra/clangd/unittests/SourceCodeTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SourceCodeTests.cpp rename to clang-tools-extra/clangd/unittests/SourceCodeTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SymbolCollectorTests.cpp b/clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SymbolCollectorTests.cpp rename to clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp b/clang-tools-extra/clangd/unittests/SymbolInfoTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SymbolInfoTests.cpp rename to clang-tools-extra/clangd/unittests/SymbolInfoTests.cpp diff --git a/clang-tools-extra/unittests/clangd/SyncAPI.cpp b/clang-tools-extra/clangd/unittests/SyncAPI.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/SyncAPI.cpp rename to clang-tools-extra/clangd/unittests/SyncAPI.cpp diff --git a/clang-tools-extra/unittests/clangd/SyncAPI.h b/clang-tools-extra/clangd/unittests/SyncAPI.h similarity index 100% rename from clang-tools-extra/unittests/clangd/SyncAPI.h rename to clang-tools-extra/clangd/unittests/SyncAPI.h diff --git a/clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp b/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp rename to clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp diff --git a/clang-tools-extra/unittests/clangd/TestFS.cpp b/clang-tools-extra/clangd/unittests/TestFS.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TestFS.cpp rename to clang-tools-extra/clangd/unittests/TestFS.cpp diff --git a/clang-tools-extra/unittests/clangd/TestFS.h b/clang-tools-extra/clangd/unittests/TestFS.h similarity index 100% rename from clang-tools-extra/unittests/clangd/TestFS.h rename to clang-tools-extra/clangd/unittests/TestFS.h diff --git a/clang-tools-extra/unittests/clangd/TestIndex.cpp b/clang-tools-extra/clangd/unittests/TestIndex.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TestIndex.cpp rename to clang-tools-extra/clangd/unittests/TestIndex.cpp diff --git a/clang-tools-extra/unittests/clangd/TestIndex.h b/clang-tools-extra/clangd/unittests/TestIndex.h similarity index 100% rename from clang-tools-extra/unittests/clangd/TestIndex.h rename to clang-tools-extra/clangd/unittests/TestIndex.h diff --git a/clang-tools-extra/unittests/clangd/TestScheme.h b/clang-tools-extra/clangd/unittests/TestScheme.h similarity index 100% rename from clang-tools-extra/unittests/clangd/TestScheme.h rename to clang-tools-extra/clangd/unittests/TestScheme.h diff --git a/clang-tools-extra/unittests/clangd/TestTU.cpp b/clang-tools-extra/clangd/unittests/TestTU.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TestTU.cpp rename to clang-tools-extra/clangd/unittests/TestTU.cpp diff --git a/clang-tools-extra/unittests/clangd/TestTU.h b/clang-tools-extra/clangd/unittests/TestTU.h similarity index 100% rename from clang-tools-extra/unittests/clangd/TestTU.h rename to clang-tools-extra/clangd/unittests/TestTU.h diff --git a/clang-tools-extra/unittests/clangd/ThreadingTests.cpp b/clang-tools-extra/clangd/unittests/ThreadingTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/ThreadingTests.cpp rename to clang-tools-extra/clangd/unittests/ThreadingTests.cpp diff --git a/clang-tools-extra/unittests/clangd/TraceTests.cpp b/clang-tools-extra/clangd/unittests/TraceTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TraceTests.cpp rename to clang-tools-extra/clangd/unittests/TraceTests.cpp diff --git a/clang-tools-extra/unittests/clangd/TweakTests.cpp b/clang-tools-extra/clangd/unittests/TweakTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TweakTests.cpp rename to clang-tools-extra/clangd/unittests/TweakTests.cpp diff --git a/clang-tools-extra/unittests/clangd/TypeHierarchyTests.cpp b/clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/TypeHierarchyTests.cpp rename to clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp diff --git a/clang-tools-extra/unittests/clangd/URITests.cpp b/clang-tools-extra/clangd/unittests/URITests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/URITests.cpp rename to clang-tools-extra/clangd/unittests/URITests.cpp diff --git a/clang-tools-extra/unittests/clangd/XRefsTests.cpp b/clang-tools-extra/clangd/unittests/XRefsTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/XRefsTests.cpp rename to clang-tools-extra/clangd/unittests/XRefsTests.cpp diff --git a/clang-tools-extra/clangd/unittests/lit.cfg.in b/clang-tools-extra/clangd/unittests/lit.cfg.in new file mode 100644 index 000000000000..14f365e21f07 --- /dev/null +++ b/clang-tools-extra/clangd/unittests/lit.cfg.in @@ -0,0 +1,23 @@ +@LIT_SITE_CFG_IN_HEADER@ +# This is a shim to run the gtest unittests in ../unittests using lit. + +import lit.formats +config.name = "Clangd Unit Tests" +config.test_format = lit.formats.GoogleTest('.', 'Tests') +config.test_source_root = "@CMAKE_CURRENT_BINARY_DIR@" +config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" + +# Point the dynamic loader at dynamic libraries in 'lib'. +# XXX: it seems every project has a copy of this logic. Move it somewhere. +import platform +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,''))) + + diff --git a/clang-tools-extra/unittests/clangd/xpc/CMakeLists.txt b/clang-tools-extra/clangd/unittests/xpc/CMakeLists.txt similarity index 100% rename from clang-tools-extra/unittests/clangd/xpc/CMakeLists.txt rename to clang-tools-extra/clangd/unittests/xpc/CMakeLists.txt diff --git a/clang-tools-extra/unittests/clangd/xpc/ConversionTests.cpp b/clang-tools-extra/clangd/unittests/xpc/ConversionTests.cpp similarity index 100% rename from clang-tools-extra/unittests/clangd/xpc/ConversionTests.cpp rename to clang-tools-extra/clangd/unittests/xpc/ConversionTests.cpp diff --git a/clang-tools-extra/test/CMakeLists.txt b/clang-tools-extra/test/CMakeLists.txt index 0978f3b37cf1..a2cedeaaa53a 100644 --- a/clang-tools-extra/test/CMakeLists.txt +++ b/clang-tools-extra/test/CMakeLists.txt @@ -15,9 +15,7 @@ endif () string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) -llvm_canonicalize_cmake_booleans( - CLANG_ENABLE_STATIC_ANALYZER - CLANGD_BUILD_XPC) +llvm_canonicalize_cmake_booleans(CLANG_ENABLE_STATIC_ANALYZER) configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in @@ -70,19 +68,6 @@ set(CLANG_TOOLS_TEST_DEPS clang ) -if(CLANGD_BUILD_XPC) - list(APPEND CLANG_TOOLS_TEST_DEPS clangd-xpc-test-client) -endif() - -set(CLANGD_TEST_DEPS - clangd - ClangdTests - # clangd-related tools which don't have tests, add them to the test to make - # sure we don't introduce new changes that break their compilations. - clangd-indexer - dexp - ) - # Add lit test dependencies. set(LLVM_UTILS_DEPS FileCheck count not @@ -93,11 +78,6 @@ foreach(dep ${LLVM_UTILS_DEPS}) endif() endforeach() -foreach(clangd_dep ${CLANGD_TEST_DEPS}) - list(APPEND CLANG_TOOLS_TEST_DEPS - ${clangd_dep}) -endforeach() - add_lit_testsuite(check-clang-tools "Running the Clang extra tools' regression tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CLANG_TOOLS_TEST_DEPS} @@ -105,15 +85,3 @@ add_lit_testsuite(check-clang-tools "Running the Clang extra tools' regression t ) set_target_properties(check-clang-tools PROPERTIES FOLDER "Clang extra tools' tests") - -# Setup an individual test for building and testing clangd-only stuff. -# Note: all clangd tests have been covered in check-clang-tools, this is a -# convenient target for clangd developers. -# Exclude check-clangd from check-all. -set(EXCLUDE_FROM_ALL ON) -add_lit_testsuite(check-clangd "Running the Clangd regression tests" - ${CMAKE_CURRENT_BINARY_DIR}/Unit/clangd;${CMAKE_CURRENT_BINARY_DIR}/clangd - DEPENDS ${CLANGD_TEST_DEPS} -) -set_target_properties(check-clangd PROPERTIES FOLDER "Clangd tests") -set(EXCLUDE_FROM_ALL OFF) diff --git a/clang-tools-extra/test/clangd/Unit/lit.site.cfg.py.in b/clang-tools-extra/test/clangd/Unit/lit.site.cfg.py.in new file mode 100644 index 000000000000..dc7ee330d13a --- /dev/null +++ b/clang-tools-extra/test/clangd/Unit/lit.site.cfg.py.in @@ -0,0 +1,9 @@ +@LIT_SITE_CFG_IN_HEADER@ + +config.extra_tools_obj_dir = "@CLANG_TOOLS_BINARY_DIR@/unittests" +config.extra_tools_src_dir = "@CLANG_TOOLS_SOURCE_DIR@/unittests" +config.llvm_libs_dir = "@LLVM_LIBS_DIR@" +config.shlibdir = "@SHLIBDIR@" +config.target_triple = "@TARGET_TRIPLE@" + +lit_config.load_config(config, "@CLANG_TOOLS_SOURCE_DIR@/test/Unit/lit.cfg.py") diff --git a/clang-tools-extra/unittests/CMakeLists.txt b/clang-tools-extra/unittests/CMakeLists.txt index ce6e6651aebf..086a68e63830 100644 --- a/clang-tools-extra/unittests/CMakeLists.txt +++ b/clang-tools-extra/unittests/CMakeLists.txt @@ -5,15 +5,6 @@ function(add_extra_unittest test_dirname) add_unittest(ExtraToolsUnitTests ${test_dirname} ${ARGN}) endfunction() -if(CLANG_BUILT_STANDALONE) - # LLVMTestingSupport library is needed for clangd tests. - if (EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Testing/Support - AND NOT TARGET LLVMTestingSupport) - add_subdirectory(${LLVM_MAIN_SRC_DIR}/lib/Testing/Support - lib/Testing/Support) - endif() -endif() - add_subdirectory(clang-apply-replacements) add_subdirectory(clang-change-namespace) add_subdirectory(clang-doc) @@ -21,4 +12,3 @@ add_subdirectory(clang-include-fixer) add_subdirectory(clang-move) add_subdirectory(clang-query) add_subdirectory(clang-tidy) -add_subdirectory(clangd)