blob: 2d51949d5a188859f3d58ab7214e876fe1b013c3 [file] [log] [blame]
Alexander Kornienko33fc3db2014-09-22 10:41:39 +00001#include "ClangTidyTest.h"
2#include "readability/NamespaceCommentCheck.h"
3#include "gtest/gtest.h"
4
5namespace clang {
6namespace tidy {
7namespace test {
8
9using readability::NamespaceCommentCheck;
10
11TEST(NamespaceCommentCheckTest, Basic) {
12 EXPECT_EQ("namespace i {\n} // namespace i",
13 runCheckOnCode<NamespaceCommentCheck>("namespace i {\n}"));
14 EXPECT_EQ("namespace {\n} // namespace",
15 runCheckOnCode<NamespaceCommentCheck>("namespace {\n}"));
16 EXPECT_EQ(
17 "namespace i { namespace j {\n} // namespace j\n } // namespace i",
18 runCheckOnCode<NamespaceCommentCheck>("namespace i { namespace j {\n} }"));
19}
20
21TEST(NamespaceCommentCheckTest, SingleLineNamespaces) {
22 EXPECT_EQ(
23 "namespace i { namespace j { } }",
24 runCheckOnCode<NamespaceCommentCheck>("namespace i { namespace j { } }"));
25}
26
27TEST(NamespaceCommentCheckTest, CheckExistingComments) {
28 EXPECT_EQ("namespace i { namespace j {\n"
29 "} /* namespace j */ } // namespace i\n"
30 " /* random comment */",
31 runCheckOnCode<NamespaceCommentCheck>(
32 "namespace i { namespace j {\n"
33 "} /* namespace j */ } /* random comment */"));
34 EXPECT_EQ("namespace {\n"
35 "} // namespace",
36 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
37 "} // namespace"));
38 EXPECT_EQ("namespace {\n"
39 "} //namespace",
40 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
41 "} //namespace"));
42 EXPECT_EQ("namespace {\n"
43 "} // anonymous namespace",
44 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
45 "} // anonymous namespace"));
Alexander Kornienko27f126b2014-10-16 15:11:54 +000046 EXPECT_EQ("namespace {\n"
47 "} // Anonymous namespace.",
48 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
49 "} // Anonymous namespace."));
50 EXPECT_EQ("namespace q {\n"
51 "} // namespace q",
52 runCheckOnCode<NamespaceCommentCheck>("namespace q {\n"
53 "} // anonymous namespace q"));
Alexander Kornienko33fc3db2014-09-22 10:41:39 +000054 EXPECT_EQ(
55 "namespace My_NameSpace123 {\n"
56 "} // namespace My_NameSpace123",
57 runCheckOnCode<NamespaceCommentCheck>("namespace My_NameSpace123 {\n"
58 "} // namespace My_NameSpace123"));
59 EXPECT_EQ(
60 "namespace My_NameSpace123 {\n"
61 "} //namespace My_NameSpace123",
62 runCheckOnCode<NamespaceCommentCheck>("namespace My_NameSpace123 {\n"
63 "} //namespace My_NameSpace123"));
64 EXPECT_EQ("namespace My_NameSpace123 {\n"
65 "} // end namespace My_NameSpace123",
66 runCheckOnCode<NamespaceCommentCheck>(
67 "namespace My_NameSpace123 {\n"
68 "} // end namespace My_NameSpace123"));
69 // Understand comments only on the same line.
70 EXPECT_EQ("namespace {\n"
71 "} // namespace\n"
72 "// namespace",
73 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
74 "}\n"
75 "// namespace"));
76 // Leave unknown comments.
77 EXPECT_EQ("namespace {\n"
78 "} // namespace // random text",
79 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
80 "} // random text"));
81}
82
83TEST(NamespaceCommentCheckTest, FixWrongComments) {
84 EXPECT_EQ("namespace i { namespace jJ0_ {\n"
85 "} // namespace jJ0_\n"
86 " } // namespace i\n"
87 " /* random comment */",
88 runCheckOnCode<NamespaceCommentCheck>(
89 "namespace i { namespace jJ0_ {\n"
90 "} /* namespace qqq */ } /* random comment */"));
91 EXPECT_EQ("namespace {\n"
92 "} // namespace",
93 runCheckOnCode<NamespaceCommentCheck>("namespace {\n"
94 "} // namespace asdf"));
95}
96
97} // namespace test
98} // namespace tidy
99} // namespace clang