diff options
author | Alexander Kornienko <alexfh@google.com> | 2014-04-08 12:27:49 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2014-04-08 12:27:49 +0000 |
commit | 9eb8c92b526b13491565585b0d33159d624bf811 (patch) | |
tree | b8f3fe8d145a4c0288bf2c57c94f7a773d6a5dcb /clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp | |
parent | 33d07468bc7e915d8248fd80b9485c9a5d38687d (diff) | |
download | bcm5719-llvm-9eb8c92b526b13491565585b0d33159d624bf811.tar.gz bcm5719-llvm-9eb8c92b526b13491565585b0d33159d624bf811.zip |
Output clang-tidy errors in a consistent order.
Summary: Sort errors by path, file offset and message.
Reviewers: djasper, klimek
Reviewed By: djasper
CC: cfe-commits
Differential Revision: http://reviews.llvm.org/D3314
llvm-svn: 205759
Diffstat (limited to 'clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp')
-rw-r--r-- | clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp b/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp new file mode 100644 index 00000000000..08255a62ef9 --- /dev/null +++ b/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp @@ -0,0 +1,33 @@ +#include "ClangTidy.h" +#include "ClangTidyTest.h" +#include "gtest/gtest.h" + +namespace clang { +namespace tidy { +namespace test { + +class TestCheck : public ClangTidyCheck { +public: + void registerMatchers(ast_matchers::MatchFinder *Finder) override { + Finder->addMatcher(ast_matchers::varDecl().bind("var"), this); + } + void check(const ast_matchers::MatchFinder::MatchResult &Result) override { + const VarDecl *Var = Result.Nodes.getNodeAs<VarDecl>("var"); + // Add diagnostics in the wrong order. + diag(Var->getLocation(), "variable"); + diag(Var->getTypeSpecStartLoc(), "type specifier"); + } +}; + +TEST(ClangTidyDiagnosticConsumer, SortsErrors) { + SmallVector<ClangTidyError, 8> Errors; + runCheckOnCode<TestCheck>("int a;", Errors); + EXPECT_EQ(2ul, Errors.size()); + // FIXME: Remove " []" once the check name is removed from the message text. + EXPECT_EQ("type specifier []", Errors[0].Message.Message); + EXPECT_EQ("variable []", Errors[1].Message.Message); +} + +} // namespace test +} // namespace tidy +} // namespace clang |