
Summary: Handle various forms of existing namespace closing comments, fix existing comments with wrong namespace name, ignore short namespaces. The state of this check now seems to be enough to enable it by default to gather user feedback ;) Reviewers: klimek Reviewed By: klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3825 llvm-svn: 209141
91 lines
3.6 KiB
C++
91 lines
3.6 KiB
C++
#include "ClangTidyTest.h"
|
|
#include "llvm/IncludeOrderCheck.h"
|
|
#include "llvm/NamespaceCommentCheck.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
namespace clang {
|
|
namespace tidy {
|
|
namespace test {
|
|
|
|
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
|