diff options
author | Manuel Klimek <klimek@google.com> | 2016-08-03 15:12:00 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2016-08-03 15:12:00 +0000 |
commit | 16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2 (patch) | |
tree | 04775233a35385960d1dfe912336d5589a2c0d28 /clang/unittests/Tooling/RefactoringTest.cpp | |
parent | 82b1468a4dacc9d3e59cddb587b10acde871296a (diff) | |
download | llvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.zip llvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.tar.gz llvm-16c6d0ac373e2d9d0c39a39ac865dfc7e33786c2.tar.bz2 |
Fix bug in conflict check for Replacements::add().
We would not detect conflicts when inserting insertions at the same
offset as previously contained replacements.
llvm-svn: 277603
Diffstat (limited to 'clang/unittests/Tooling/RefactoringTest.cpp')
-rw-r--r-- | clang/unittests/Tooling/RefactoringTest.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/unittests/Tooling/RefactoringTest.cpp b/clang/unittests/Tooling/RefactoringTest.cpp index b06123e..5dd5c02 100644 --- a/clang/unittests/Tooling/RefactoringTest.cpp +++ b/clang/unittests/Tooling/RefactoringTest.cpp @@ -157,6 +157,26 @@ TEST_F(ReplacementTest, FailAddRegression) { llvm::consumeError(std::move(Err)); } +TEST_F(ReplacementTest, FailAddInsertAtOffsetOfReplacement) { + Replacements Replaces; + auto Err = Replaces.add(Replacement("x.cc", 10, 2, "")); + EXPECT_TRUE(!Err); + llvm::consumeError(std::move(Err)); + Err = Replaces.add(Replacement("x.cc", 10, 0, "")); + EXPECT_TRUE((bool)Err); + llvm::consumeError(std::move(Err)); +} + +TEST_F(ReplacementTest, FailAddInsertAtOtherInsert) { + Replacements Replaces; + auto Err = Replaces.add(Replacement("x.cc", 10, 0, "a")); + EXPECT_TRUE(!Err); + llvm::consumeError(std::move(Err)); + Err = Replaces.add(Replacement("x.cc", 10, 0, "b")); + EXPECT_TRUE((bool)Err); + llvm::consumeError(std::move(Err)); +} + TEST_F(ReplacementTest, CanApplyReplacements) { FileID ID = Context.createInMemoryFile("input.cpp", "line1\nline2\nline3\nline4"); |