summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2014-04-08 12:27:49 +0000
committerAlexander Kornienko <alexfh@google.com>2014-04-08 12:27:49 +0000
commit9eb8c92b526b13491565585b0d33159d624bf811 (patch)
treeb8f3fe8d145a4c0288bf2c57c94f7a773d6a5dcb /clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
parent33d07468bc7e915d8248fd80b9485c9a5d38687d (diff)
downloadbcm5719-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.cpp33
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
OpenPOWER on IntegriCloud