xref: /llvm-project/clang-tools-extra/test/clang-move/move-function.cpp (revision 4543feceb397a562feca7ed61b14731add849c82)
1*4543feceSHaojian Wu // RUN: mkdir -p %T/move-function
2*4543feceSHaojian Wu // RUN: cp %S/Inputs/function_test*  %T/move-function
3*4543feceSHaojian Wu // RUN: cd %T/move-function
4*4543feceSHaojian Wu // RUN: clang-move -names="g" -new_header=%T/move-function/new_function_test.h -old_header=../move-function/function_test.h %T/move-function/function_test.cpp --
5*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.h -check-prefix=CHECK-NEW-TEST-H-CASE1 %s
6*4543feceSHaojian Wu //
7*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: #ifndef {{.*}}NEW_FUNCTION_TEST_H
8*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: #define {{.*}}NEW_FUNCTION_TEST_H
9*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: {{[[:space:]]+}}
10*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: inline int g() { return 0; }
11*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: {{[[:space:]]+}}
12*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE1: #endif // {{.*}}NEW_FUNCTION_TEST_H
13*4543feceSHaojian Wu //
14*4543feceSHaojian Wu // RUN: cp %S/Inputs/function_test*  %T/move-function
15*4543feceSHaojian Wu // RUN: clang-move -names="h" -new_header=%T/move-function/new_function_test.h -old_header=../move-function/function_test.h %T/move-function/function_test.cpp --
16*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.h -check-prefix=CHECK-NEW-TEST-H-CASE2 %s
17*4543feceSHaojian Wu //
18*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: #ifndef {{.*}}NEW_FUNCTION_TEST_H
19*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: #define {{.*}}NEW_FUNCTION_TEST_H
20*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: {{[[:space:]]+}}
21*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: template <typename T> void h(T t) {}
22*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: {{[[:space:]]+}}
23*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: template <> void h(int t) {}
24*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: {{[[:space:]]+}}
25*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE2: #endif // {{.*}}NEW_FUNCTION_TEST_H
26*4543feceSHaojian Wu //
27*4543feceSHaojian Wu // RUN: cp %S/Inputs/function_test*  %T/move-function
28*4543feceSHaojian Wu // RUN: clang-move -names="f" -new_header=%T/move-function/new_function_test.h -new_cc=%T/move-function/new_function_test.cpp -old_header=../move-function/function_test.h -old_cc=../move-function/function_test.cpp %T/move-function/function_test.cpp --
29*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.h -check-prefix=CHECK-NEW-TEST-H-CASE3 %s
30*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.cpp -check-prefix=CHECK-NEW-TEST-CPP-CASE3 %s
31*4543feceSHaojian Wu //
32*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: #ifndef {{.*}}NEW_FUNCTION_TEST_H
33*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: #define {{.*}}NEW_FUNCTION_TEST_H
34*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: {{[[:space:]]+}}
35*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: void f();
36*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: {{[[:space:]]+}}
37*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE3: #endif // {{.*}}NEW_FUNCTION_TEST_H
38*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE3: #include "{{.*}}new_function_test.h"
39*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE3: {{[[:space:]]+}}
40*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE3: void f() {}
41*4543feceSHaojian Wu //
42*4543feceSHaojian Wu // RUN: cp %S/Inputs/function_test*  %T/move-function
43*4543feceSHaojian Wu // RUN: clang-move -names="A::f" -new_header=%T/move-function/new_function_test.h -new_cc=%T/move-function/new_function_test.cpp -old_header=../move-function/function_test.h -old_cc=../move-function/function_test.cpp %T/move-function/function_test.cpp -dump_result -- | FileCheck %s -check-prefix=CHECK-EMPTY
44*4543feceSHaojian Wu //
45*4543feceSHaojian Wu // CHECK-EMPTY: [{{[[:space:]]*}}]
46*4543feceSHaojian Wu //
47*4543feceSHaojian Wu // RUN: cp %S/Inputs/function_test*  %T/move-function
48*4543feceSHaojian Wu // RUN: clang-move -names="f,A" -new_header=%T/move-function/new_function_test.h -new_cc=%T/move-function/new_function_test.cpp -old_header=../move-function/function_test.h -old_cc=../move-function/function_test.cpp %T/move-function/function_test.cpp --
49*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.h -check-prefix=CHECK-NEW-TEST-H-CASE4 %s
50*4543feceSHaojian Wu // RUN: FileCheck -input-file=%T/move-function/new_function_test.cpp -check-prefix=CHECK-NEW-TEST-CPP-CASE4 %s
51*4543feceSHaojian Wu 
52*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: #ifndef {{.*}}NEW_FUNCTION_TEST_H
53*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: #define {{.*}}NEW_FUNCTION_TEST_H
54*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: {{[[:space:]]+}}
55*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: void f();
56*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: {{[[:space:]]+}}
57*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: class A {
58*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: public:
59*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4:   void f();
60*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: };
61*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: {{[[:space:]]+}}
62*4543feceSHaojian Wu // CHECK-NEW-TEST-H-CASE4: #endif // {{.*}}NEW_FUNCTION_TEST_H
63*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE4: #include "{{.*}}new_function_test.h"
64*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE4: {{[[:space:]]+}}
65*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE4: void f() {}
66*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE4: {{[[:space:]]+}}
67*4543feceSHaojian Wu // CHECK-NEW-TEST-CPP-CASE4: void A::f() {}
68