#include "clang/Format/Format.h"
+#include "../Tooling/RewriterTestContext.h"
#include "clang/Tooling/Core/Replacement.h"
#include "gtest/gtest.h"
EXPECT_EQ(Expected, Result);
}
+class CleanUpReplacementsTest : public ::testing::Test {
+protected:
+ tooling::Replacement createReplacement(SourceLocation Start, unsigned Length,
+ llvm::StringRef ReplacementText) {
+ return tooling::Replacement(Context.Sources, Start, Length,
+ ReplacementText);
+ }
+
+ RewriterTestContext Context;
+};
+
+TEST_F(CleanUpReplacementsTest, FixOnlyAffectedCodeAfterReplacements) {
+ std::string Code = "namespace A {\n"
+ "namespace B {\n"
+ " int x;\n"
+ "} // namespace B\n"
+ "} // namespace A\n"
+ "\n"
+ "namespace C {\n"
+ "namespace D { int i; }\n"
+ "inline namespace E { namespace { int y; } }\n"
+ "int x= 0;"
+ "}";
+ std::string Expected = "\n\nnamespace C {\n"
+ "namespace D { int i; }\n\n"
+ "int x= 0;"
+ "}";
+ FileID ID = Context.createInMemoryFile("fix.cpp", Code);
+ tooling::Replacements Replaces;
+ Replaces.insert(tooling::Replacement(Context.Sources,
+ Context.getLocation(ID, 3, 3), 6, ""));
+ Replaces.insert(tooling::Replacement(Context.Sources,
+ Context.getLocation(ID, 9, 34), 6, ""));
+
+ format::FormatStyle Style = format::getLLVMStyle();
+ auto FinalReplaces = formatReplacements(
+ Code, cleanupAroundReplacements(Code, Replaces, Style), Style);
+ EXPECT_EQ(Expected, applyAllReplacements(Code, FinalReplaces));
+}
+
} // end namespace
} // end namespace format
} // end namespace clang
Code, formatReplacements(Code, Replaces, Style)));
}
-TEST_F(ReplacementTest, FixOnlyAffectedCodeAfterReplacements) {
- std::string Code = "namespace A {\n"
- "namespace B {\n"
- " int x;\n"
- "} // namespace B\n"
- "} // namespace A\n"
- "\n"
- "namespace C {\n"
- "namespace D { int i; }\n"
- "inline namespace E { namespace { int y; } }\n"
- "int x= 0;"
- "}";
- std::string Expected = "\n\nnamespace C {\n"
- "namespace D { int i; }\n\n"
- "int x= 0;"
- "}";
- FileID ID = Context.createInMemoryFile("fix.cpp", Code);
- tooling::Replacements Replaces;
- Replaces.insert(tooling::Replacement(
- Context.Sources, Context.getLocation(ID, 3, 3), 6, ""));
- Replaces.insert(tooling::Replacement(
- Context.Sources, Context.getLocation(ID, 9, 34), 6, ""));
-
- format::FormatStyle Style = format::getLLVMStyle();
- auto FinalReplaces = formatReplacements(
- Code, cleanupAroundReplacements(Code, Replaces, Style), Style);
- EXPECT_EQ(Expected, applyAllReplacements(Code, FinalReplaces));
-}
-
TEST_F(ReplacementTest, SortIncludesAfterReplacement) {
std::string Code = "#include \"a.h\"\n"
"#include \"c.h\"\n"