diff options
Diffstat (limited to 'clang/unittests/Format/UsingDeclarationsSorterTest.cpp')
-rw-r--r-- | clang/unittests/Format/UsingDeclarationsSorterTest.cpp | 71 |
1 files changed, 61 insertions, 10 deletions
diff --git a/clang/unittests/Format/UsingDeclarationsSorterTest.cpp b/clang/unittests/Format/UsingDeclarationsSorterTest.cpp index 6ce96ed9620..e72076a8e31 100644 --- a/clang/unittests/Format/UsingDeclarationsSorterTest.cpp +++ b/clang/unittests/Format/UsingDeclarationsSorterTest.cpp @@ -50,8 +50,8 @@ TEST_F(UsingDeclarationsSorterTest, SwapsTwoConsecutiveUsingDeclarations) { "using aa;", sortUsingDeclarations("using aa;\n" "using a;")); - EXPECT_EQ("using ::a;\n" - "using a;", + EXPECT_EQ("using a;\n" + "using ::a;", sortUsingDeclarations("using a;\n" "using ::a;")); @@ -86,21 +86,32 @@ TEST_F(UsingDeclarationsSorterTest, SwapsTwoConsecutiveUsingDeclarations) { "using a, b;")); } -TEST_F(UsingDeclarationsSorterTest, SortsCaseSensitively) { +TEST_F(UsingDeclarationsSorterTest, UsingDeclarationOrder) { EXPECT_EQ("using A;\n" "using a;", sortUsingDeclarations("using A;\n" "using a;")); - EXPECT_EQ("using A;\n" - "using a;", + EXPECT_EQ("using a;\n" + "using A;", sortUsingDeclarations("using a;\n" "using A;")); - EXPECT_EQ("using B;\n" - "using a;", + EXPECT_EQ("using a;\n" + "using B;", sortUsingDeclarations("using B;\n" "using a;")); - // Sorts '_' right before 'A'. + // Ignores leading '::'. + EXPECT_EQ("using ::a;\n" + "using A;", + sortUsingDeclarations("using ::a;\n" + "using A;")); + + EXPECT_EQ("using ::A;\n" + "using a;", + sortUsingDeclarations("using ::A;\n" + "using a;")); + + // Sorts '_' before 'a' and 'A'. EXPECT_EQ("using _;\n" "using A;", sortUsingDeclarations("using A;\n" @@ -114,18 +125,58 @@ TEST_F(UsingDeclarationsSorterTest, SortsCaseSensitively) { sortUsingDeclarations("using a::a;\n" "using a::_;")); + // Sorts non-namespace names before namespace names at the same level. EXPECT_EQ("using ::testing::_;\n" "using ::testing::Aardvark;\n" + "using ::testing::kMax;\n" "using ::testing::Xylophone;\n" "using ::testing::apple::Honeycrisp;\n" "using ::testing::zebra::Stripes;", sortUsingDeclarations("using ::testing::Aardvark;\n" "using ::testing::Xylophone;\n" + "using ::testing::kMax;\n" "using ::testing::_;\n" "using ::testing::apple::Honeycrisp;\n" "using ::testing::zebra::Stripes;")); } +TEST_F(UsingDeclarationsSorterTest, SortsStably) { + EXPECT_EQ("using a;\n" + "using a;\n" + "using A;\n" + "using a;\n" + "using A;\n" + "using a;\n" + "using A;\n" + "using a;\n" + "using B;\n" + "using b;\n" + "using b;\n" + "using B;\n" + "using b;\n" + "using b;\n" + "using b;\n" + "using B;\n" + "using b;", + sortUsingDeclarations("using a;\n" + "using B;\n" + "using a;\n" + "using b;\n" + "using A;\n" + "using a;\n" + "using b;\n" + "using B;\n" + "using b;\n" + "using A;\n" + "using a;\n" + "using b;\n" + "using b;\n" + "using B;\n" + "using b;\n" + "using A;\n" + "using a;")); +} + TEST_F(UsingDeclarationsSorterTest, SortsMultipleTopLevelDeclarations) { EXPECT_EQ("using a;\n" "using b;\n" @@ -139,14 +190,14 @@ TEST_F(UsingDeclarationsSorterTest, SortsMultipleTopLevelDeclarations) { "using c;")); EXPECT_EQ("#include <iostream>\n" - "using ::std::endl;\n" "using std::cin;\n" "using std::cout;\n" + "using ::std::endl;\n" "int main();", sortUsingDeclarations("#include <iostream>\n" "using std::cout;\n" - "using std::cin;\n" "using ::std::endl;\n" + "using std::cin;\n" "int main();")); } |