diff options
| author | Haojian Wu <hokein@google.com> | 2019-01-22 09:39:05 +0000 |
|---|---|---|
| committer | Haojian Wu <hokein@google.com> | 2019-01-22 09:39:05 +0000 |
| commit | 1ca0c58c8152ecfb2a47f91080b64eae7710dadb (patch) | |
| tree | cf967fe3f5caa6c4745dbf4a404a55b015d85cc5 /clang-tools-extra/unittests/clangd | |
| parent | bd374b27cc33567b0a0522ee511fc1ea9f0bb1df (diff) | |
| download | bcm5719-llvm-1ca0c58c8152ecfb2a47f91080b64eae7710dadb.tar.gz bcm5719-llvm-1ca0c58c8152ecfb2a47f91080b64eae7710dadb.zip | |
[clangd] Support clang-tidy configuration in clangd.
Summary:
This patch adds some basic supports for clang-tidy configurations in clangd:
- clangd will respect .clang-tidy configurations for each file
- we don't aim to support all clang-tidy options in clangd, only a
small subset of condfigurations (options related to which checks will be
enabled) are supported.
- add a `clang-tidy-checks` CLI option that can override options from
.clang-tidy file
Reviewers: ilya-biryukov, sammccall
Reviewed By: sammccall
Subscribers: javed.absar, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D55256
llvm-svn: 351792
Diffstat (limited to 'clang-tools-extra/unittests/clangd')
5 files changed, 11 insertions, 2 deletions
diff --git a/clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp b/clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp index 041540784a6..b5e83a080f0 100644 --- a/clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp +++ b/clang-tools-extra/unittests/clangd/ClangdUnitTests.cpp @@ -141,6 +141,9 @@ TEST(DiagnosticsTest, ClangTidy) { )cpp"); auto TU = TestTU::withCode(Test.code()); TU.HeaderFilename = "assert.h"; // Suppress "not found" error. + TU.ClangTidyChecks = + "-*, bugprone-sizeof-expression, bugprone-macro-repeated-side-effects, " + "modernize-deprecated-headers"; EXPECT_THAT( TU.build().getDiagnostics(), UnorderedElementsAre( diff --git a/clang-tools-extra/unittests/clangd/FileIndexTests.cpp b/clang-tools-extra/unittests/clangd/FileIndexTests.cpp index f471e10894b..b0c21c0d060 100644 --- a/clang-tools-extra/unittests/clangd/FileIndexTests.cpp +++ b/clang-tools-extra/unittests/clangd/FileIndexTests.cpp @@ -363,7 +363,8 @@ TEST(FileIndexTest, ReferencesInMainFileWithPreamble) { auto AST = ParsedAST::build(createInvocationFromCommandLine(Cmd), PreambleData, llvm::MemoryBuffer::getMemBufferCopy(Main.code()), - std::make_shared<PCHContainerOperations>(), PI.FS); + std::make_shared<PCHContainerOperations>(), PI.FS, + tidy::ClangTidyOptions::getDefaults()); ASSERT_TRUE(AST); FileIndex Index; Index.updateMain(MainFile, *AST); diff --git a/clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp b/clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp index 261c9b549b9..79ee779da62 100644 --- a/clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp +++ b/clang-tools-extra/unittests/clangd/TUSchedulerTests.cpp @@ -38,7 +38,8 @@ class TUSchedulerTests : public ::testing::Test { protected: ParseInputs getInputs(PathRef File, std::string Contents) { return ParseInputs{*CDB.getCompileCommand(File), - buildTestFS(Files, Timestamps), std::move(Contents)}; + buildTestFS(Files, Timestamps), std::move(Contents), + tidy::ClangTidyOptions::getDefaults()}; } void updateWithCallback(TUScheduler &S, PathRef File, diff --git a/clang-tools-extra/unittests/clangd/TestTU.cpp b/clang-tools-extra/unittests/clangd/TestTU.cpp index 740c492297f..067d3f3f1d3 100644 --- a/clang-tools-extra/unittests/clangd/TestTU.cpp +++ b/clang-tools-extra/unittests/clangd/TestTU.cpp @@ -35,6 +35,8 @@ ParsedAST TestTU::build() const { Inputs.CompileCommand.Directory = testRoot(); Inputs.Contents = Code; Inputs.FS = buildTestFS({{FullFilename, Code}, {FullHeaderName, HeaderCode}}); + Inputs.ClangTidyOpts = tidy::ClangTidyOptions::getDefaults(); + Inputs.ClangTidyOpts.Checks = ClangTidyChecks; auto PCHs = std::make_shared<PCHContainerOperations>(); auto CI = buildCompilerInvocation(Inputs); assert(CI && "Failed to build compilation invocation."); diff --git a/clang-tools-extra/unittests/clangd/TestTU.h b/clang-tools-extra/unittests/clangd/TestTU.h index 26b48b32e15..7b84e4b5abf 100644 --- a/clang-tools-extra/unittests/clangd/TestTU.h +++ b/clang-tools-extra/unittests/clangd/TestTU.h @@ -48,6 +48,8 @@ struct TestTU { // Extra arguments for the compiler invocation. std::vector<const char *> ExtraArgs; + llvm::Optional<std::string> ClangTidyChecks; + ParsedAST build() const; SymbolSlab headerSymbols() const; std::unique_ptr<SymbolIndex> index() const; |

