diff options
| author | Haojian Wu <hokein@google.com> | 2017-10-11 14:00:42 +0000 |
|---|---|---|
| committer | Haojian Wu <hokein@google.com> | 2017-10-11 14:00:42 +0000 |
| commit | 3a4b7ec9deb6dc25d44b623af1e966bc5883a639 (patch) | |
| tree | a56e0ce07742585cbb3187c5d9c9ed3b5385c235 /clang/unittests | |
| parent | ec053332cf659c27f64df566b6c3a8c525eefff1 (diff) | |
| download | bcm5719-llvm-3a4b7ec9deb6dc25d44b623af1e966bc5883a639.tar.gz bcm5719-llvm-3a4b7ec9deb6dc25d44b623af1e966bc5883a639.zip | |
[clang-rename] Add more unittest.
llvm-svn: 315459
Diffstat (limited to 'clang/unittests')
| -rw-r--r-- | clang/unittests/Rename/RenameClassTest.cpp | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/clang/unittests/Rename/RenameClassTest.cpp b/clang/unittests/Rename/RenameClassTest.cpp index 74280de7871..f46126dff66 100644 --- a/clang/unittests/Rename/RenameClassTest.cpp +++ b/clang/unittests/Rename/RenameClassTest.cpp @@ -674,6 +674,124 @@ TEST_F(ClangRenameTest, ReferencesInLambdaFunctionParameters) { CompareSnippets(Expected, After); } +TEST_F(ClangRenameTest, DontChangeIfSameName) { + std::string Before = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(foo::Old * x) { + foo::Old::foo() ; + } + using foo::Old;)"; + std::string Expected = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(foo::Old * x) { + foo::Old::foo() ; + } + using foo::Old;)"; + std::string After = runClangRenameOnCode(Before, "foo::Old", "foo::Old"); + CompareSnippets(Expected, After); +} + +TEST_F(ClangRenameTest, ChangeIfNewNameWithLeadingDotDot) { + std::string Before = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(foo::Old * x) { + foo::Old::foo() ; + } + using foo::Old;)"; + std::string Expected = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(::foo::Old * x) { + ::foo::Old::foo() ; + } + using ::foo::Old;)"; + std::string After = runClangRenameOnCode(Before, "foo::Old", "::foo::Old"); + CompareSnippets(Expected, After); +} + +TEST_F(ClangRenameTest, ChangeIfSameNameWithLeadingDotDot) { + std::string Before = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(foo::Old * x) { + foo::Old::foo() ; + } + using foo::Old;)"; + std::string Expected = R"( + namespace foo { + class Old { + public: + static void foo() {} + }; + } + + void f(::foo::Old * x) { + ::foo::Old::foo() ; + } + using ::foo::Old;)"; + std::string After = runClangRenameOnCode(Before, "::foo::Old", "::foo::Old"); + CompareSnippets(Expected, After); +} + +TEST_F(RenameClassTest, UsingAlias) { + std::string Before = R"( + namespace a { struct A {}; } + + namespace foo { + using Alias = a::A; + Alias a; + })"; + std::string Expected = R"( + namespace a { struct B {}; } + + namespace foo { + using Alias = b::B; + Alias a; + })"; + std::string After = runClangRenameOnCode(Before, "a::A", "b::B"); + CompareSnippets(Expected, After); +} + +TEST_F(ClangRenameTest, NestedTemplates) { + std::string Before = R"( + namespace a { template <typename T> struct A {}; } + a::A<a::A<int>> foo;)"; + std::string Expected = R"( + namespace a { template <typename T> struct B {}; } + b::B<b::B<int>> foo;)"; + std::string After = runClangRenameOnCode(Before, "a::A", "b::B"); + CompareSnippets(Expected, After); +} + + } // anonymous namespace } // namespace test } // namespace clang_rename |

