[clang-rename] fix testset

Make yet unsupported tests marked with FIXME pass so that buildbot doesn't fail.

llvm-svn: 275556
This commit is contained in:
Kirill Bobyrev 2016-07-15 12:22:38 +00:00
parent 9377a7b6a8
commit ee99fd13ae
20 changed files with 254 additions and 60 deletions

View File

@ -0,0 +1,11 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -old-name=Foo -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo { // CHECK: class Bar
};
int main() {
Foo *Pointer = 0; // CHECK: Bar *Pointer = 0;
return 0;
}

View File

@ -0,0 +1,17 @@
// Currently unsupported test.
// RUN: cat %s > %t.cpp
// FIXME: clang-rename doesn't recognize symbol in class function definition.
class Foo {
public:
void foo(int x);
};
void Foo::foo(int x) {}
// ^ this one
int main() {
Foo obj;
obj.foo(0);
return 0;
}

View File

@ -0,0 +1,11 @@
// RUN: rm -rf %t
// RUN: mkdir -p %t/fixes
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=254 -new-name=Bar -export-fixes=%t/fixes/clang-rename.yaml %t.cpp --
// RUN: clang-apply-replacements %t
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo {}; // CHECK: class Bar {};
// Use grep -FUbo 'Foo' <file> to get the correct offset of Cla when changing
// this file.

View File

@ -0,0 +1,13 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=136 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo {}; // CHECK: class Bar
int main() {
Foo *Pointer = 0; // CHECK: Bar *Pointer = 0;
return 0;
}
// Use grep -FUbo 'Foo' <file> to get the correct offset of Cla when changing
// this file.

View File

@ -0,0 +1,30 @@
// Unsupported test.
// RUN: cat %s > %t.cpp
// FIXME: This test contains very simple constructions likely to be seen in any
// project and therefore passing this test is a slight sign of success.
// Currently, the test fails badly.
class Foo { // CHECK: class Bar {
public:
Foo(int value = 0) : x(value) {} // Bar(int value=0) : x(value) {}
Foo& operator++(int) { // Bar& operator++(int) {
x++;
return *this;
}
bool operator<(Foo const& rhs) { // bool operator<(Bar const &rhs) {
return this->x < rhs.x;
}
private:
int x;
};
int main() {
Foo* Pointer = 0; // CHECK: Bar *Pointer = 0;
Foo Variable = Foo(10); // CHECK: Bar Variable = Bar(10);
for (Foo it; it < Variable; it++) { // for (Bar it; it < Variable; it++) {}
}
return 0;
}

View File

@ -1,7 +1,8 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=133 -new-name=X %t.cpp -i --
// RUN: clang-rename -offset=136 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Cla {
class Foo { // CHECK: class Bar {
public:
int getValue() {
return 0;
@ -9,8 +10,8 @@ public:
};
int main() {
const Cla *C = new Cla();
const_cast<Cla *>(C)->getValue(); // CHECK: const_cast<X *>
const Foo *C = new Foo(); // CHECK: const Bar *C = new Bar();
const_cast<Foo *>(C)->getValue(); // CHECK: const_cast<Bar *>(C)->getValue();
}
// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing

View File

@ -1,14 +1,12 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=133 -new-name=D %t.cpp -i --
// RUN: clang-rename -offset=136 -new-name=Boo %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Cla
{
};
int main()
{
Cla *C = new Cla(); // CHECK: D *C = new D();
class Foo {}; // CHECK: class Boo {};
int main() {
Foo *C = new Foo(); // CHECK: Boo *C = new Boo();
}
// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing
// Use grep -FUbo 'Boo' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,13 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=174 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo { // CHECK: class Bar
public:
Foo(); // CHECK: Bar();
};
Foo::Foo() {} // CHECK: Bar::Bar()
// Use grep -FUbo 'C' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,13 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=212 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo { // CHECK: class Bar
public:
Foo(); // CHECK: Bar();
};
Foo::Foo() {} // CHECK: Bar::Bar()
// Use grep -FUbo 'C' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,16 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=163 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Baz {};
class Qux {
Baz Foo; // CHECK: Baz Bar;
public:
Qux();
};
Qux::Qux() : Foo() {} // CHECK: Qux::Qux() : Bar() {}
// Use grep -FUbo 'Foo' <file> to get the correct offset of foo when changing
// this file.

View File

@ -1,23 +1,19 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=158 -new-name=Y %t.cpp -i --
// RUN: clang-rename -offset=161 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class C
{
class C {
public:
static int X;
static int Foo; // CHECK: static int Bar;
};
int foo(int x)
{
return 0;
}
#define FOO(a) foo(a)
int foo(int x) { return 0; }
#define MACRO(a) foo(a)
int main()
{
C::X = 1; // CHECK: C::Y
FOO(C::X); // CHECK: C::Y
int y = C::X; // CHECK: C::Y
int main() {
C::Foo = 1; // CHECK: C::Bar
MACRO(C::Foo); // CHECK: C::Bar
int y = C::Foo; // CHECK: C::Bar
}
// Use grep -FUbo 'X' <file> to get the correct offset of foo when changing

View File

@ -0,0 +1,14 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=175 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo { // CHECK: class Bar {
public:
~Foo(); // CHECK: ~Bar();
};
Foo::~Foo() { // CHECK: Bar::~Bar()
}
// Use grep -FUbo 'Bar' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,14 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=219 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Foo { // CHECK: class Bar {
public:
~Foo(); // CHECK: ~Bar();
};
Foo::~Foo() {} // CHECK: Bar::~Bar()
// Use grep -FUbo 'Foo' <file> to get the correct offset of foo when changing
// this file.

View File

@ -0,0 +1,14 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=148 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class Baz {
int Foo; // CHECK: Bar;
public:
Baz();
};
Baz::Baz() : Foo(0) {} // CHECK: Baz::Baz() : Bar(0) {}
// Use grep -FUbo 'Foo' <file> to get the correct offset of foo when changing
// this file.

View File

@ -1,25 +1,21 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=151 -new-name=Y %t.cpp -i --
// RUN: clang-rename -offset=156 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
class C
{
class Baz {
public:
int X;
int Foo; // CHECK: int Bar;
};
int foo(int x)
{
return 0;
}
#define FOO(a) foo(a)
int qux(int x) { return 0; }
#define MACRO(a) qux(a)
int main()
{
C C;
C.X = 1; // CHECK: C.Y
FOO(C.X); // CHECK: C.Y
int y = C.X; // CHECK: C.Y
int main() {
Baz baz;
baz.Foo = 1; // CHECK: baz.Bar = 1;
MACRO(baz.Foo); // CHECK: MACRO(baz.Bar);
int y = baz.Foo; // CHECK: int y = baz.Bar;
}
// Use grep -FUbo 'C' <file> to get the correct offset of foo when changing
// Use grep -FUbo 'Foo' <file> to get the correct offset of foo when changing
// this file.

View File

@ -1,20 +1,4 @@
// This test is a copy of ConstCastExpr.cpp with a single change:
// -new-name hasn't been passed to clang-rename, so this test should give an
// error.
// Check for an error while -new-name argument has not been passed to
// clang-rename.
// RUN: not clang-rename -offset=133 %s 2>&1 | FileCheck %s
// CHECK: clang-rename: no new name provided.
class Cla {
public:
int getValue() {
return 0;
}
};
int main() {
const Cla *C = new Cla();
const_cast<Cla *>(C)->getValue();
}
// Use grep -FUbo 'Cla' <file> to get the correct offset of foo when changing
// this file.

View File

@ -1,4 +1,5 @@
// Currently unsupported test.
// RUN: cat %s > %t.cpp
// FIXME: clang-rename should be able to rename template parameters correctly.
template <typename T>

View File

@ -1,4 +1,5 @@
// Currently unsupported test.
// RUN: cat %s > %t.cpp
// FIXME: clang-rename should handle conversions from a class type to another
// type.

View File

@ -0,0 +1,24 @@
// Currently unsupported test.
// RUN: cat %s > %t.cpp
// FIXME: while renaming class/struct clang-rename should be able to change
// this type name corresponding user-defined conversions, too.
class Foo { // CHECK: class Bar {
// ^ offset must be here
public:
Foo() {} // CHECK: Bar() {}
};
class Baz {
public:
operator Foo() const { // CHECK: operator Bar() const {
Foo foo; // CHECK: Bar foo;
return foo;
}
};
int main() {
Baz boo;
Foo foo = static_cast<Foo>(boo); // CHECK: Bar foo = static_cast<Bar>(boo);
return 0;
}

View File

@ -0,0 +1,27 @@
// RUN: cat %s > %t.cpp
// RUN: clang-rename -offset=148 -new-name=Bar %t.cpp -i --
// RUN: sed 's,//.*,,' %t.cpp | FileCheck %s
namespace A {
int Foo; // CHECK: int Bar;
}
int Foo; // CHECK: int Foo;
int Qux = Foo; // CHECK: int Qux = Foo;
int Baz = A::Foo; // CHECK: Baz = A::Bar;
void fun() {
struct {
int Foo; // CHECK: int Foo;
} b = {100};
int Foo = 100; // CHECK: int Foo = 100;
Baz = Foo; // CHECK: Baz = Foo;
{
extern int Foo; // CHECK: extern int Foo;
Baz = Foo; // CHECK: Baz = Foo;
Foo = A::Foo + Baz; // CHECK: Foo = A::Bar + Baz;
A::Foo = b.Foo; // CHECK: A::Bar = b.Foo;
}
Foo = b.Foo; // Foo = b.Foo;
}
// Use grep -FUbo 'Foo' <file> to get the correct offset of foo when changing
// this file.