aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Tooling/RefactoringTest.cpp
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@ributzka.de>2017-03-29 00:24:36 +0000
committerJuergen Ributzka <juergen@ributzka.de>2017-03-29 00:24:36 +0000
commitabbef0ef07296b928924146210607a11be17d0a1 (patch)
tree3173e90ca145d93f72a0e8ee526e99c5f7040785 /clang/unittests/Tooling/RefactoringTest.cpp
parentc9b250611f4a34e4254f0877860df0f13a53c134 (diff)
downloadllvm-abbef0ef07296b928924146210607a11be17d0a1.zip
llvm-abbef0ef07296b928924146210607a11be17d0a1.tar.gz
llvm-abbef0ef07296b928924146210607a11be17d0a1.tar.bz2
Revert "Added `applyAtomicChanges` function."
This broke GreenDragon: http://lab.llvm.org:8080/green/job/clang-stage2-cmake-modulesRDA_build/4776/ Reverting this commit and all follow-up commits. llvm-svn: 298967
Diffstat (limited to 'clang/unittests/Tooling/RefactoringTest.cpp')
-rw-r--r--clang/unittests/Tooling/RefactoringTest.cpp430
1 files changed, 0 insertions, 430 deletions
diff --git a/clang/unittests/Tooling/RefactoringTest.cpp b/clang/unittests/Tooling/RefactoringTest.cpp
index 7ac5a1d..c5633d3 100644
--- a/clang/unittests/Tooling/RefactoringTest.cpp
+++ b/clang/unittests/Tooling/RefactoringTest.cpp
@@ -1290,435 +1290,5 @@ TEST_F(AtomicChangeTest, InsertAfterWithInvalidLocation) {
Replacement(Context.Sources, SourceLocation(), 0, "b")));
}
-class ApplyAtomicChangesTest : public ::testing::Test {
-protected:
- ApplyAtomicChangesTest() : FilePath("file.cc") {
- Spec.Cleanup = true;
- Spec.Format = ApplyChangesSpec::kAll;
- Spec.Style = format::getLLVMStyle();
- }
-
- ~ApplyAtomicChangesTest() override {}
-
- void setInput(llvm::StringRef Input) {
- Code = Input;
- FID = Context.createInMemoryFile(FilePath, Code);
- }
-
- SourceLocation getLoc(unsigned Offset) const {
- return Context.Sources.getLocForStartOfFile(FID).getLocWithOffset(Offset);
- }
-
- AtomicChange replacementToAtomicChange(llvm::StringRef Key, unsigned Offset,
- unsigned Length,
- llvm::StringRef Text) {
- AtomicChange Change(FilePath, Key);
- llvm::Error Err =
- Change.replace(Context.Sources, getLoc(Offset), Length, Text);
- EXPECT_FALSE(Err);
- return Change;
- }
-
- std::string rewrite(bool FailureExpected = false) {
- llvm::Expected<std::string> ChangedCode =
- applyAtomicChanges(FilePath, Code, Changes, Spec);
- EXPECT_EQ(FailureExpected, !ChangedCode);
- if (!ChangedCode) {
- llvm::errs() << "Failed to apply changes: "
- << llvm::toString(ChangedCode.takeError()) << "\n";
- return "";
- }
- return *ChangedCode;
- }
-
- RewriterTestContext Context;
- FileID FID;
- ApplyChangesSpec Spec;
- std::string Code;
- std::string FilePath;
- llvm::SmallVector<AtomicChange, 8> Changes;
-};
-
-TEST_F(ApplyAtomicChangesTest, BasicRefactoring) {
- setInput("int a;");
- AtomicChange Change(FilePath, "key1");
- Changes.push_back(replacementToAtomicChange("key1", 4, 1, "b"));
- EXPECT_EQ("int b;", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, SeveralRefactorings) {
- setInput("int a;\n"
- "int b;");
- Changes.push_back(replacementToAtomicChange("key1", 0, 3, "float"));
- Changes.push_back(replacementToAtomicChange("key2", 4, 1, "f"));
- Changes.push_back(replacementToAtomicChange("key3", 11, 1, "g"));
- Changes.push_back(replacementToAtomicChange("key4", 7, 3, "float"));
- EXPECT_EQ("float f;\n"
- "float g;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, IgnorePathsInRefactorings) {
- setInput("int a;\n"
- "int b;");
- Changes.push_back(replacementToAtomicChange("key1", 4, 1, "aa"));
-
- FileID ID = Context.createInMemoryFile("AnotherFile", "12345678912345");
- Changes.emplace_back("AnotherFile", "key2");
- auto Err = Changes.back().replace(
- Context.Sources,
- Context.Sources.getLocForStartOfFile(ID).getLocWithOffset(11), 1, "bb");
- ASSERT_TRUE(!Err);
- EXPECT_EQ("int aa;\n"
- "int bb;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, AppliesDuplicateInsertions) {
- setInput("int a;");
- Changes.push_back(replacementToAtomicChange("key1", 5, 0, "b"));
- Changes.push_back(replacementToAtomicChange("key2", 5, 0, "b"));
- EXPECT_EQ("int abb;", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, BailsOnOverlappingRefactorings) {
- setInput("int a;");
- Changes.push_back(replacementToAtomicChange("key1", 0, 5, "float f"));
- Changes.push_back(replacementToAtomicChange("key2", 4, 1, "b"));
- EXPECT_EQ("", rewrite(/*FailureExpected=*/true));
-}
-
-TEST_F(ApplyAtomicChangesTest, BasicReformatting) {
- setInput("int a;");
- Changes.push_back(replacementToAtomicChange("key1", 5, 1, "b"));
- EXPECT_EQ("int b;", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, OnlyFormatWhenViolateColumnLimits) {
- Spec.Format = ApplyChangesSpec::kViolations;
- Spec.Style.ColumnLimit = 8;
- setInput("int a;\n"
- "int a;\n"
- "int aaaaaaaa;\n");
- Changes.push_back(replacementToAtomicChange("key1", 5, 1, "x"));
- Changes.push_back(replacementToAtomicChange("key2", 15, 1, "x"));
- Changes.push_back(replacementToAtomicChange("key3", 23, 8, "xx"));
- EXPECT_EQ("int x;\n"
- "int x;\n"
- "int xx;\n",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, LastLineViolateColumnLimits) {
- Spec.Format = ApplyChangesSpec::kViolations;
- Spec.Style.ColumnLimit = 8;
- setInput("int a;\n"
- "int a;");
- Changes.push_back(replacementToAtomicChange("key1", 0, 1, "i"));
- Changes.push_back(replacementToAtomicChange("key2", 15, 2, "y;"));
- EXPECT_EQ("int a;\n"
- "int y;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, LastLineWithNewlineViolateColumnLimits) {
- Spec.Format = ApplyChangesSpec::kViolations;
- Spec.Style.ColumnLimit = 8;
- setInput("int a;\n"
- "int a;\n");
- Changes.push_back(replacementToAtomicChange("key1", 0, 1, "i"));
- Changes.push_back(replacementToAtomicChange("key2", 14, 3, "y;\n"));
- EXPECT_EQ("int a;\n"
- "int y;\n",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, Longer) {
- setInput("int a;");
- Changes.push_back(replacementToAtomicChange("key1", 5, 1, "bbb"));
- EXPECT_EQ("int bbb;", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, Shorter) {
- setInput("int aaa;");
- Changes.push_back(replacementToAtomicChange("key1", 5, 3, "b"));
- EXPECT_EQ("int b;", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, OnlyFormatChangedLines) {
- setInput("int aaa;\n"
- "int a = b;\n"
- "int bbb;");
- Changes.push_back(replacementToAtomicChange("key1", 14, 1, "b"));
- EXPECT_EQ("int aaa;\n"
- "int b = b;\n"
- "int bbb;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, DisableFormatting) {
- Spec.Format = ApplyChangesSpec::kNone;
- setInput("int aaa;\n"
- "int a = b;\n"
- "int bbb;");
- Changes.push_back(replacementToAtomicChange("key1", 14, 1, "b"));
- EXPECT_EQ("int aaa;\n"
- "int b = b;\n"
- "int bbb;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, AdaptsToLocalPointerStyle) {
- setInput("int *aaa;\n"
- "int *bbb;");
- Changes.push_back(replacementToAtomicChange("key1", 0, 0, "int* ccc;\n"));
- EXPECT_EQ("int *ccc;\n"
- "int *aaa;\n"
- "int *bbb;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, AcceptsSurroundingFormatting) {
- setInput(" int aaa;\n"
- " int a = b;\n"
- " int bbb;");
- Changes.push_back(replacementToAtomicChange("key1", 20, 1, "b"));
- EXPECT_EQ(" int aaa;\n"
- " int b = b;\n"
- " int bbb;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, BailsOutOnConflictingChanges) {
- setInput("int c;\n"
- "int f;");
- // Insertions at the same offset are only allowed in the same AtomicChange.
- Changes.push_back(replacementToAtomicChange("key1", 0, 0, "int a;\n"));
- Changes.push_back(replacementToAtomicChange("key2", 0, 0, "int b;\n"));
- EXPECT_EQ("", rewrite(/*FailureExpected=*/true));
-}
-
-TEST_F(ApplyAtomicChangesTest, InsertsNewIncludesInRightOrder) {
- setInput("int a;");
- Changes.emplace_back(FilePath, "key1");
- Changes.back().addHeader("b");
- Changes.back().addHeader("c");
- Changes.emplace_back(FilePath, "key2");
- Changes.back().addHeader("a");
- EXPECT_EQ("#include \"a\"\n"
- "#include \"b\"\n"
- "#include \"c\"\n"
- "int a;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, RemoveAndSortIncludes) {
- setInput(R"(
-#include "a"
-#include "b"
-#include "c"
-
-int a;
- )");
- Changes.emplace_back(FilePath, "key1");
- Changes.back().removeHeader("b");
- EXPECT_EQ(R"(
-#include "a"
-#include "c"
-
-int a;
- )",
- rewrite());
-}
-TEST_F(ApplyAtomicChangesTest, InsertsSystemIncludes) {
- setInput("#include <asys>\n"
- "#include <csys>\n"
- "\n"
- "#include \"a\"\n"
- "#include \"c\"\n");
- Changes.emplace_back(FilePath, "key1");
- Changes.back().addHeader("<asys>"); // Already exists.
- Changes.back().addHeader("<b>");
- Changes.back().addHeader("<d>");
- Changes.back().addHeader("\"b-already-escaped\"");
- EXPECT_EQ("#include <asys>\n"
- "#include <b>\n"
- "#include <csys>\n"
- "#include <d>\n"
- "\n"
- "#include \"a\"\n"
- "#include \"b-already-escaped\"\n"
- "#include \"c\"\n",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, RemoveSystemIncludes) {
- setInput(R"(
-#include <a>
-#include <b>
-
-#include "c"
-
-int a;
- )");
- Changes.emplace_back(FilePath, "key1");
- Changes.back().removeHeader("<a>");
- EXPECT_EQ(R"(
-#include <b>
-
-#include "c"
-
-int a;
- )",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest,
- DoNotFormatFollowingLinesIfSeparatedWithNewline) {
- setInput("#ifndef __H__\n"
- "#define __H__\n"
- "#include \"b\"\n"
- "\n"
- "int a;\n"
- "int a;\n"
- "int a;\n"
- "#endif // __H__\n");
- Changes.push_back(replacementToAtomicChange("key1",
- llvm::StringRef("#ifndef __H__\n"
- "#define __H__\n"
- "\n"
- "#include \"b\"\n"
- "int a;\n"
- "int ")
- .size(),
- 1, "b"));
- Changes.back().addHeader("a");
- EXPECT_EQ("#ifndef __H__\n"
- "#define __H__\n"
- "#include \"a\"\n"
- "#include \"b\"\n"
- "\n"
- "int a;\n"
- "int b;\n"
- "int a;\n"
- "#endif // __H__\n",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, FormatsCorrectLineWhenHeaderIsRemoved) {
- setInput("#include \"a\"\n"
- "\n"
- "int a;\n"
- "int a;\n"
- "int a;");
- Changes.push_back(replacementToAtomicChange("key1", 27, 1, "b"));
- Changes.back().removeHeader("a");
- EXPECT_EQ("\n"
- "int a;\n"
- "int b;\n"
- "int a;",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, CleansUpCtorInitializers) {
- setInput("A::A() : a(), b() {}\n"
- "A::A() : a(), b() {}\n"
- "A::A() : a(), b() {}\n"
- "A::A() : a()/**/, b() {}\n"
- "A::A() : a() ,// \n"
- " /**/ b() {}");
- Changes.emplace_back(FilePath, "key1");
- auto Err = Changes.back().replace(Context.Sources, getLoc(9), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(35), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(51), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(56), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(72), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(97), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(118), 3, "");
- ASSERT_TRUE(!Err);
- EXPECT_EQ("A::A() : b() {}\n"
- "A::A() : a() {}\n"
- "A::A() {}\n"
- "A::A() : b() {}\n"
- "A::A() {}",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, CleansUpParameterLists) {
- setInput("void f(int i, float f, string s);\n"
- "f(1, 2.0f, \"a\");\n"
- "g(1, 1);");
- Changes.emplace_back(FilePath, "key1");
- auto Err = Changes.back().replace(Context.Sources, getLoc(7), 5, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(23), 8, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(36), 1, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(45), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(53), 1, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(56), 1, "");
- ASSERT_TRUE(!Err);
- EXPECT_EQ("void f(float f);\n"
- "f(2.0f);\n"
- "g();",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, DisableCleanup) {
- Spec.Cleanup = false;
- setInput("void f(int i, float f, string s);\n"
- "f(1, 2.0f, \"a\");\n"
- "g(1, 1);");
- Changes.emplace_back(FilePath, "key1");
- auto Err = Changes.back().replace(Context.Sources, getLoc(7), 5, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(23), 8, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(36), 1, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(45), 3, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(53), 1, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(56), 1, "");
- ASSERT_TRUE(!Err);
- EXPECT_EQ("void f(, float f, );\n"
- "f(, 2.0f, );\n"
- "g(, );",
- rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, EverythingDeleted) {
- setInput("int a;");
- Changes.push_back(replacementToAtomicChange("key1", 0, 6, ""));
- EXPECT_EQ("", rewrite());
-}
-
-TEST_F(ApplyAtomicChangesTest, DoesNotDeleteInserts) {
- setInput("int a;\n"
- "int b;");
- Changes.emplace_back(FilePath, "key1");
- auto Err = Changes.back().replace(Context.Sources, getLoc(4), 1, "");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(4), 0, "b");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(11), 0, "a");
- ASSERT_TRUE(!Err);
- Err = Changes.back().replace(Context.Sources, getLoc(11), 1, "");
- ASSERT_TRUE(!Err);
- EXPECT_EQ("int b;\n"
- "int a;",
- rewrite());
-}
-
} // end namespace tooling
} // end namespace clang