diff options
author | Haojian Wu <hokein@google.com> | 2017-01-03 14:22:25 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2017-01-03 14:22:25 +0000 |
commit | 027de5919e401a6284b4804c07043fe0e43b4460 (patch) | |
tree | 6e6d7e18b1edd7fa7b9e3df3c3adb082ed6624d0 /clang-tools-extra/test/clang-move | |
parent | b7b1bbed719a6a841086efcba14d733282bde7a4 (diff) |
[clang-move] Support moving enum declarations.
Reviewers: ioeric
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D28228
Diffstat (limited to 'clang-tools-extra/test/clang-move')
-rw-r--r-- | clang-tools-extra/test/clang-move/Inputs/enum.h | 9 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-move/move-enum-decl.cpp | 44 |
2 files changed, 53 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-move/Inputs/enum.h b/clang-tools-extra/test/clang-move/Inputs/enum.h new file mode 100644 index 00000000000..9ec39266bd2 --- /dev/null +++ b/clang-tools-extra/test/clang-move/Inputs/enum.h @@ -0,0 +1,9 @@ +namespace a { +enum E1 { Green, Red }; + +enum class E2 { Yellow }; + +class C { + enum E3 { Blue }; +}; +} // namespace a diff --git a/clang-tools-extra/test/clang-move/move-enum-decl.cpp b/clang-tools-extra/test/clang-move/move-enum-decl.cpp new file mode 100644 index 00000000000..42f6f995219 --- /dev/null +++ b/clang-tools-extra/test/clang-move/move-enum-decl.cpp @@ -0,0 +1,44 @@ +// RUN: mkdir -p %T/move-enum +// RUN: cp %S/Inputs/enum.h %T/move-enum/enum.h +// RUN: echo '#include "enum.h"' > %T/move-enum/enum.cpp +// RUN: cd %T/move-enum +// +// ----------------------------------------------------------------------------- +// Test moving enum declarations. +// ----------------------------------------------------------------------------- +// RUN: clang-move -names="a::E1" -new_cc=%T/move-enum/new_test.cpp -new_header=%T/move-enum/new_test.h -old_cc=%T/move-enum/enum.cpp -old_header=%T/move-enum/enum.h %T/move-enum/enum.cpp -- -std=c++11 +// RUN: FileCheck -input-file=%T/move-enum/new_test.h -check-prefix=CHECK-NEW-TEST-H-CASE1 %s +// RUN: FileCheck -input-file=%T/move-enum/enum.h -check-prefix=CHECK-OLD-TEST-H-CASE1 %s +// +// CHECK-NEW-TEST-H-CASE1: namespace a { +// CHECK-NEW-TEST-H-CASE1-NEXT: enum E1 { Green, Red }; +// CHECK-NEW-TEST-H-CASE1-NEXT: } + +// CHECK-OLD-TEST-H-CASE1-NOT: enum E1 { Green, Red }; + + +// ----------------------------------------------------------------------------- +// Test moving scoped enum declarations. +// ----------------------------------------------------------------------------- +// RUN: cp %S/Inputs/enum.h %T/move-enum/enum.h +// RUN: echo '#include "enum.h"' > %T/move-enum/enum.cpp +// RUN: clang-move -names="a::E2" -new_cc=%T/move-enum/new_test.cpp -new_header=%T/move-enum/new_test.h -old_cc=%T/move-enum/enum.cpp -old_header=%T/move-enum/enum.h %T/move-enum/enum.cpp -- -std=c++11 +// RUN: FileCheck -input-file=%T/move-enum/new_test.h -check-prefix=CHECK-NEW-TEST-H-CASE2 %s +// RUN: FileCheck -input-file=%T/move-enum/enum.h -check-prefix=CHECK-OLD-TEST-H-CASE2 %s + +// CHECK-NEW-TEST-H-CASE2: namespace a { +// CHECK-NEW-TEST-H-CASE2-NEXT: enum class E2 { Yellow }; +// CHECK-NEW-TEST-H-CASE2-NEXT: } + +// CHECK-OLD-TEST-H-CASE2-NOT: enum class E2 { Yellow }; + + +// ----------------------------------------------------------------------------- +// Test not moving class-insided enum declarations. +// ----------------------------------------------------------------------------- +// RUN: cp %S/Inputs/enum.h %T/move-enum/enum.h +// RUN: echo '#include "enum.h"' > %T/move-enum/enum.cpp +// RUN: clang-move -names="a::C::E3" -new_cc=%T/move-enum/new_test.cpp -new_header=%T/move-enum/new_test.h -old_cc=%T/move-enum/enum.cpp -old_header=%T/move-enum/enum.h %T/move-enum/enum.cpp -- -std=c++11 +// RUN: FileCheck -input-file=%T/move-enum/new_test.h -allow-empty -check-prefix=CHECK-EMPTY %s + +// CHECK-EMPTY: {{^}}{{$}} |