diff options
Diffstat (limited to 'clang-tools-extra/unittests/clang-tidy/ReadabilityChecksTest.cpp')
-rw-r--r-- | clang-tools-extra/unittests/clang-tidy/ReadabilityChecksTest.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/clang-tidy/ReadabilityChecksTest.cpp b/clang-tools-extra/unittests/clang-tidy/ReadabilityChecksTest.cpp new file mode 100644 index 00000000000..847c2baf521 --- /dev/null +++ b/clang-tools-extra/unittests/clang-tidy/ReadabilityChecksTest.cpp @@ -0,0 +1,91 @@ +#include "ClangTidyTest.h" +#include "readability/NamespaceCommentCheck.h" +#include "gtest/gtest.h" + +namespace clang { +namespace tidy { +namespace test { + +using readability::NamespaceCommentCheck; + +TEST(NamespaceCommentCheckTest, Basic) { + EXPECT_EQ("namespace i {\n} // namespace i", + runCheckOnCode<NamespaceCommentCheck>("namespace i {\n}")); + EXPECT_EQ("namespace {\n} // namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n}")); + EXPECT_EQ( + "namespace i { namespace j {\n} // namespace j\n } // namespace i", + runCheckOnCode<NamespaceCommentCheck>("namespace i { namespace j {\n} }")); +} + +TEST(NamespaceCommentCheckTest, SingleLineNamespaces) { + EXPECT_EQ( + "namespace i { namespace j { } }", + runCheckOnCode<NamespaceCommentCheck>("namespace i { namespace j { } }")); +} + +TEST(NamespaceCommentCheckTest, CheckExistingComments) { + EXPECT_EQ("namespace i { namespace j {\n" + "} /* namespace j */ } // namespace i\n" + " /* random comment */", + runCheckOnCode<NamespaceCommentCheck>( + "namespace i { namespace j {\n" + "} /* namespace j */ } /* random comment */")); + EXPECT_EQ("namespace {\n" + "} // namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "} // namespace")); + EXPECT_EQ("namespace {\n" + "} //namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "} //namespace")); + EXPECT_EQ("namespace {\n" + "} // anonymous namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "} // anonymous namespace")); + EXPECT_EQ( + "namespace My_NameSpace123 {\n" + "} // namespace My_NameSpace123", + runCheckOnCode<NamespaceCommentCheck>("namespace My_NameSpace123 {\n" + "} // namespace My_NameSpace123")); + EXPECT_EQ( + "namespace My_NameSpace123 {\n" + "} //namespace My_NameSpace123", + runCheckOnCode<NamespaceCommentCheck>("namespace My_NameSpace123 {\n" + "} //namespace My_NameSpace123")); + EXPECT_EQ("namespace My_NameSpace123 {\n" + "} // end namespace My_NameSpace123", + runCheckOnCode<NamespaceCommentCheck>( + "namespace My_NameSpace123 {\n" + "} // end namespace My_NameSpace123")); + // Understand comments only on the same line. + EXPECT_EQ("namespace {\n" + "} // namespace\n" + "// namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "}\n" + "// namespace")); + // Leave unknown comments. + EXPECT_EQ("namespace {\n" + "} // namespace // random text", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "} // random text")); +} + +TEST(NamespaceCommentCheckTest, FixWrongComments) { + EXPECT_EQ("namespace i { namespace jJ0_ {\n" + "} // namespace jJ0_\n" + " } // namespace i\n" + " /* random comment */", + runCheckOnCode<NamespaceCommentCheck>( + "namespace i { namespace jJ0_ {\n" + "} /* namespace qqq */ } /* random comment */")); + EXPECT_EQ("namespace {\n" + "} // namespace", + runCheckOnCode<NamespaceCommentCheck>("namespace {\n" + "} // namespace asdf")); +} + +} // namespace test +} // namespace tidy +} // namespace clang |