diff options
Diffstat (limited to 'clang-tools-extra/unittests/clang-modernize/FileOverridesTest.cpp')
-rw-r--r-- | clang-tools-extra/unittests/clang-modernize/FileOverridesTest.cpp | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/clang-tools-extra/unittests/clang-modernize/FileOverridesTest.cpp b/clang-tools-extra/unittests/clang-modernize/FileOverridesTest.cpp deleted file mode 100644 index 94776bc2c10..00000000000 --- a/clang-tools-extra/unittests/clang-modernize/FileOverridesTest.cpp +++ /dev/null @@ -1,187 +0,0 @@ -//===- clang-modernize/FileOverridesTest.cpp - File overrides unit tests --===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "Core/FileOverrides.h" -#include "Core/Refactoring.h" -#include "gtest/gtest.h" -#include "common/VirtualFileHelper.h" -#include "clang/Rewrite/Core/Rewriter.h" - -using namespace clang; -using namespace clang::tooling; - -static Replacement makeReplacement(unsigned Offset, unsigned Length, - unsigned ReplacementLength, - llvm::StringRef FilePath) { - return Replacement(FilePath, Offset, Length, - std::string(ReplacementLength, '~')); -} - -// generate a set of replacements containing one element -static ReplacementsVec makeReplacements(unsigned Offset, unsigned Length, - unsigned ReplacementLength, - llvm::StringRef FilePath = "~") { - ReplacementsVec Replaces; - Replaces.push_back( - makeReplacement(Offset, Length, ReplacementLength, FilePath)); - return Replaces; -} - -static bool equalRanges(Range A, Range B) { - return A.getOffset() == B.getOffset() && A.getLength() == B.getLength(); -} - -TEST(ChangedRangesTest, adjustChangedRangesShrink) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(0, 0, 4)); - EXPECT_NE(Changes.begin(), Changes.end()); - EXPECT_TRUE(equalRanges(Range(0, 4), *Changes.begin())); - // create a replacement that cuts the end of the last insertion - Changes.adjustChangedRanges(makeReplacements(2, 4, 0)); - Range ExpectedChanges[] = { Range(0, 2) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesExtend) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(1, 0, 4)); - // cut the old one by a bigger one - Changes.adjustChangedRanges(makeReplacements(3, 4, 6)); - Range ExpectedChanges[] = { Range(1, 8) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesNoOverlap) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(0, 0, 4)); - Changes.adjustChangedRanges(makeReplacements(6, 0, 4)); - Range ExpectedChanges[] = { Range(0, 4), Range(6, 4) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesNullRange) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(0, 4, 0)); - Range ExpectedChanges[] = { Range(0, 0) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesExtendExisting) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(0, 0, 3)); - Changes.adjustChangedRanges(makeReplacements(2, 5, 8)); - Range ExpectedChanges[] = { Range(0, 10) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesSplit) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(0, 0, 3)); - Changes.adjustChangedRanges(makeReplacements(1, 1, 0)); - Range ExpectedChanges[] = { Range(0, 2) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesRangeContained) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(3, 0, 2)); - Changes.adjustChangedRanges(makeReplacements(1, 4, 5)); - Range ExpectedChanges[] = { Range(1, 5) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(ChangedRangesTest, adjustChangedRangesRangeResized) { - ChangedRanges Changes; - Changes.adjustChangedRanges(makeReplacements(2, 0, 5)); - // first make the range bigger - Changes.adjustChangedRanges(makeReplacements(4, 1, 3)); - Range ExpectedChanges[] = { Range(2, 7) }; - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); - // then smaller - Changes.adjustChangedRanges(makeReplacements(3, 3, 1)); - ExpectedChanges[0] = Range(2, 5); - EXPECT_TRUE( - std::equal(Changes.begin(), Changes.end(), ExpectedChanges, equalRanges)); -} - -TEST(FileOverridesTest, applyOverrides) { - - // Set up initial state - VirtualFileHelper VFHelper; - - SmallString<128> fileAPath("fileA.cpp"); - ASSERT_FALSE(llvm::sys::fs::make_absolute(fileAPath)); - SmallString<128> fileBPath("fileB.cpp"); - ASSERT_FALSE(llvm::sys::fs::make_absolute(fileBPath)); - VFHelper.mapFile(fileAPath, "Content A"); - VFHelper.mapFile(fileBPath, "Content B"); - SourceManager &SM = VFHelper.getNewSourceManager(); - - // Fill a Rewriter with changes - Rewriter Rewrites(SM, LangOptions()); - ReplacementsVec R(1, Replacement(fileAPath, 0, 7, "Stuff")); - ASSERT_TRUE(applyAllReplacements(R, Rewrites)); - - FileOverrides Overrides; - Overrides.updateState(Rewrites); - - const FileOverrides::FileStateMap &State = Overrides.getState(); - - // Ensure state updated - ASSERT_TRUE(State.end() == State.find(fileBPath)); - ASSERT_TRUE(State.begin() == State.find(fileAPath)); - ASSERT_EQ("Stuff A", State.begin()->getValue()); - - Overrides.applyOverrides(SM); - - const FileEntry *EntryA = SM.getFileManager().getFile(fileAPath); - FileID IdA = SM.translateFile(EntryA); - ASSERT_FALSE(IdA.isInvalid()); - - // Ensure the contents of the buffer matches what we'd expect. - const llvm::MemoryBuffer *BufferA = SM.getBuffer(IdA); - ASSERT_FALSE(0 == BufferA); - ASSERT_EQ("Stuff A", BufferA->getBuffer()); -} - -TEST(FileOverridesTest, adjustChangedRanges) { - SmallString<128> fileAPath("fileA.cpp"); - ASSERT_FALSE(llvm::sys::fs::make_absolute(fileAPath)); - SmallString<128> fileBPath("fileB.cpp"); - ASSERT_FALSE(llvm::sys::fs::make_absolute(fileBPath)); - - replace::FileToReplacementsMap GroupedReplacements; - GroupedReplacements[fileAPath] = makeReplacements(0, 5, 4, fileAPath); - GroupedReplacements[fileBPath] = makeReplacements(10, 0, 6, fileBPath); - - FileOverrides Overrides; - - const FileOverrides::ChangeMap &Map = Overrides.getChangedRanges(); - - ASSERT_TRUE(Map.empty()); - - Overrides.adjustChangedRanges(GroupedReplacements); - - ASSERT_TRUE(Map.end() != Map.find(fileAPath)); - ASSERT_TRUE(Map.end() != Map.find(fileBPath)); - const Range &RA = *Map.find(fileAPath)->second.begin(); - EXPECT_EQ(0u, RA.getOffset()); - EXPECT_EQ(4u, RA.getLength()); - const Range &RB = *Map.find(fileBPath)->second.begin(); - EXPECT_EQ(10u, RB.getOffset()); - EXPECT_EQ(6u, RB.getLength()); -} |