diff options
author | Michael Gottesman <mgottesman@apple.com> | 2013-08-30 22:09:03 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2013-08-30 22:09:03 +0000 |
commit | 92d9cb4dd1fcf633e264cbacbcdcd1b5c6f10714 (patch) | |
tree | aba42a41d482498dd4f83c88fb5c1b1aebea25ab /clang-tools-extra/unittests | |
parent | 79917a913e20d964708e89a721197febc60e8391 (diff) | |
download | bcm5719-llvm-92d9cb4dd1fcf633e264cbacbcdcd1b5c6f10714.tar.gz bcm5719-llvm-92d9cb4dd1fcf633e264cbacbcdcd1b5c6f10714.zip |
Revert "cpp11-migrate: Fixing autoconf build after adding libclangReplace dependency"
Revert "cpp11-migrate: Refactor for driver model of operation"
This reverts commit r189691.
This reverts commit r189689.
This was breaking the phase 1 OS X build for ~2 hours.
https://smooshbase.apple.com/buildbot-internal/builders/phase1%20-%20sanity/builds/9559
I reverted the latter commit since I think the latter depended on the former.
llvm-svn: 189700
Diffstat (limited to 'clang-tools-extra/unittests')
7 files changed, 101 insertions, 154 deletions
diff --git a/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt b/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt index 228de69b5c7..fcf678d3490 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt +++ b/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt @@ -1,31 +1,26 @@ -set(LLVM_LINK_COMPONENTS - support - ) - -get_filename_component(CPP11_MIGRATE_SOURCE_DIR - ${CMAKE_CURRENT_SOURCE_DIR}/../../cpp11-migrate REALPATH) -get_filename_component(ClangReplaceLocation - "${CMAKE_CURRENT_SOURCE_DIR}/../../clang-replace/include" REALPATH) -include_directories( - ${CPP11_MIGRATE_SOURCE_DIR} - ${ClangReplaceLocation} - ) - -add_extra_unittest(Cpp11MigrateTests - FileOverridesTest.cpp - ReformattingTest.cpp - IncludeExcludeTest.cpp - PerfSupportTest.cpp - TransformTest.cpp - UniqueHeaderNameTest.cpp - IncludeDirectivesTest.cpp - ) - -target_link_libraries(Cpp11MigrateTests - migrateCore - clangFormat - clangTooling - clangBasic - clangASTMatchers - clangRewriteFrontend - ) +set(LLVM_LINK_COMPONENTS
+ support
+ )
+
+get_filename_component(CPP11_MIGRATE_SOURCE_DIR
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../cpp11-migrate REALPATH)
+include_directories(${CPP11_MIGRATE_SOURCE_DIR})
+
+add_extra_unittest(Cpp11MigrateTests
+ FileOverridesTest.cpp
+ ReformattingTest.cpp
+ IncludeExcludeTest.cpp
+ PerfSupportTest.cpp
+ TransformTest.cpp
+ UniqueHeaderNameTest.cpp
+ IncludeDirectivesTest.cpp
+ )
+
+target_link_libraries(Cpp11MigrateTests
+ migrateCore
+ clangFormat
+ clangTooling
+ clangBasic
+ clangASTMatchers
+ clangRewriteFrontend
+ )
diff --git a/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp index 5404aeb579d..fc54474af84 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp +++ b/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp @@ -8,34 +8,56 @@ //===----------------------------------------------------------------------===// #include "Core/FileOverrides.h" -#include "Core/Refactoring.h" #include "gtest/gtest.h" #include "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, '~')); +TEST(SourceOverridesTest, Interface) { + llvm::StringRef FileName = "<test-file>"; + VirtualFileHelper VFHelper; + VFHelper.mapFile( + FileName, + "std::vector<such_a_long_name_for_a_type>::const_iterator long_type =\n" + " vec.begin();\n"); + SourceOverrides Overrides(FileName, /*TrackFileChanges=*/false); + + EXPECT_EQ(FileName, Overrides.getMainFileName()); + EXPECT_FALSE(Overrides.isSourceOverriden()); + EXPECT_FALSE(Overrides.isTrackingFileChanges()); + + Replacements Replaces; + unsigned ReplacementLength = + strlen("std::vector<such_a_long_name_for_a_type>::const_iterator"); + Replaces.insert( + Replacement(FileName, 0, ReplacementLength, "auto")); + Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager()); + EXPECT_TRUE(Overrides.isSourceOverriden()); + + std::string ExpectedContent = "auto long_type =\n" + " vec.begin();\n"; + EXPECT_EQ(ExpectedContent, Overrides.getMainFileContent()); +} + +namespace { +Replacement makeReplacement(unsigned Offset, unsigned Length, + unsigned ReplacementLength) { + return Replacement("", 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)); +Replacements makeReplacements(unsigned Offset, unsigned Length, + unsigned ReplacementLength) { + Replacements Replaces; + Replaces.insert(makeReplacement(Offset, Length, ReplacementLength)); return Replaces; } -static bool equalRanges(Range A, Range B) { +bool equalRanges(Range A, Range B) { return A.getOffset() == B.getOffset() && A.getLength() == B.getLength(); } +} // end anonymous namespace TEST(ChangedRangesTest, adjustChangedRangesShrink) { ChangedRanges Changes; @@ -117,71 +139,3 @@ TEST(ChangedRangesTest, adjustChangedRangesRangeResized) { 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()); -} diff --git a/clang-tools-extra/unittests/cpp11-migrate/Makefile b/clang-tools-extra/unittests/cpp11-migrate/Makefile index 2f4a59afd07..270c523798b 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/Makefile +++ b/clang-tools-extra/unittests/cpp11-migrate/Makefile @@ -13,7 +13,7 @@ include $(CLANG_LEVEL)/../../Makefile.config TESTNAME = Cpp11MigrateTests LINK_COMPONENTS := asmparser bitreader support MC MCParser option \ TransformUtils -USEDLIBS = migrateCore.a clangFormat.a clangReplace.a clangTooling.a clangFrontend.a \ +USEDLIBS = migrateCore.a clangFormat.a clangTooling.a clangFrontend.a \ clangSerialization.a clangDriver.a clangRewriteFrontend.a \ clangRewriteCore.a clangParse.a clangSema.a clangAnalysis.a \ clangAST.a clangASTMatchers.a clangEdit.a clangLex.a \ @@ -21,5 +21,5 @@ USEDLIBS = migrateCore.a clangFormat.a clangReplace.a clangTooling.a clangFronte include $(CLANG_LEVEL)/Makefile MAKEFILE_UNITTEST_NO_INCLUDE_COMMON := 1 -CPP.Flags += -I$(PROJ_SRC_DIR)/../../cpp11-migrate -I$(PROJ_SRC_DIR)/../../clang-replace/include +CPP.Flags += -I$(PROJ_SRC_DIR)/../../cpp11-migrate include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest diff --git a/clang-tools-extra/unittests/cpp11-migrate/PerfSupportTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/PerfSupportTest.cpp index 81235481bff..bbfb08e217c 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/PerfSupportTest.cpp +++ b/clang-tools-extra/unittests/cpp11-migrate/PerfSupportTest.cpp @@ -18,7 +18,7 @@ public: TransformA(const TransformOptions &Options)
: Transform("TransformA", Options) {}
- virtual int apply(const FileOverrides &,
+ virtual int apply(FileOverrides &,
const tooling::CompilationDatabase &,
const std::vector<std::string> &) {
return 0;
@@ -34,7 +34,7 @@ public: TransformB(const TransformOptions &Options)
: Transform("TransformB", Options) {}
- virtual int apply(const FileOverrides &,
+ virtual int apply(FileOverrides &,
const tooling::CompilationDatabase &,
const std::vector<std::string> &) {
return 0;
diff --git a/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp index b4b9a365478..fcde6b81db4 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp +++ b/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp @@ -9,7 +9,6 @@ #include "Core/Reformatting.h" #include "Core/FileOverrides.h" -#include "Core/Refactoring.h" #include "gtest/gtest.h" #include "VirtualFileHelper.h" @@ -20,9 +19,9 @@ namespace { // convenience function to create a ChangedRanges containing one Range ChangedRanges makeChangedRanges(unsigned Offset, unsigned Length) { ChangedRanges Changes; - ReplacementsVec Replaces; + Replacements Replaces; - Replaces.push_back(Replacement("", Offset, 0, std::string(Length, '~'))); + Replaces.insert(Replacement("", Offset, 0, std::string(Length, '~'))); Changes.adjustChangedRanges(Replaces); return Changes; } @@ -36,20 +35,16 @@ TEST(Reformatter, SingleReformat) { Reformatter ChangesReformatter(format::getLLVMStyle()); ChangedRanges Changes = makeChangedRanges(0, 6); - tooling::ReplacementsVec Replaces; - ChangesReformatter.reformatSingleFile( - FileName, Changes, VFHelper.getNewSourceManager(), Replaces); - - // We expect the code above to reformatted like so: - // - // int a; - // int b; - // - // This test is slightly fragile since there's more than one Replacement that - // results in the above change. However, testing the result of applying the - // replacement is more trouble than it's worth in this context. - ASSERT_EQ(1u, Replaces.size()); - EXPECT_EQ(3u, Replaces[0].getOffset()); - EXPECT_EQ(2u, Replaces[0].getLength()); - EXPECT_EQ(" ", Replaces[0].getReplacementText()); + tooling::Replacements Replaces = ChangesReformatter.reformatSingleFile( + FileName, Changes, VFHelper.getNewSourceManager()); + + SourceOverrides Overrides(FileName, /*TrackChanges=*/false); + Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager()); + + std::string Expected, Result; + + Expected = "int a;\n" + "int b;\n"; + Result = Overrides.getMainFileContent(); + EXPECT_EQ(Expected, Result); } diff --git a/clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp index 75397bf7760..b8efc9b5840 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp +++ b/clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp @@ -26,7 +26,7 @@ public: DummyTransform(llvm::StringRef Name, const TransformOptions &Options) : Transform(Name, Options) {} - virtual int apply(const FileOverrides &, + virtual int apply(FileOverrides &, const tooling::CompilationDatabase &, const std::vector<std::string> &) { return 0; } @@ -161,7 +161,7 @@ TEST(Transform, Timings) { // Transform's handle* functions require FileOverrides to be set, even if // there aren't any. - FileOverrides Overrides; + FileOverrides Overrides(/*TrackFileChanges=*/false); T.setOverrides(Overrides); Tool.run(clang::tooling::newFrontendActionFactory(&Factory, &Callbacks)); diff --git a/clang-tools-extra/unittests/cpp11-migrate/UniqueHeaderNameTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/UniqueHeaderNameTest.cpp index a2d70e03baa..0323222c03c 100644 --- a/clang-tools-extra/unittests/cpp11-migrate/UniqueHeaderNameTest.cpp +++ b/clang-tools-extra/unittests/cpp11-migrate/UniqueHeaderNameTest.cpp @@ -28,31 +28,34 @@ TEST(UniqueHeaderName, testUniqueHeaderName) { append(SourceFile, "project/lib/feature.cpp"); native(SourceFile.str().str(), SourceFile); - llvm::SmallString<128> FullActualPath; + llvm::SmallString<128> HeaderFile(TmpDir); + append(HeaderFile, "project/include/feature.h"); + native(HeaderFile.str().str(), HeaderFile); + + llvm::SmallString<128> ExpectedName("^feature.cpp_feature.h_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}.yaml$"); + + llvm::SmallString<128> ActualName; llvm::SmallString<128> Error; bool Result = - generateReplacementsFileName(SourceFile, FullActualPath, Error); + generateReplacementsFileName(SourceFile, HeaderFile, ActualName, Error); ASSERT_TRUE(Result); EXPECT_TRUE(Error.empty()); // We need to check the directory name and filename separately since on // Windows, the path separator is '\' which is a regex escape character. - llvm::SmallString<128> ExpectedPath = - llvm::sys::path::parent_path(SourceFile); - llvm::SmallString<128> ActualPath = - llvm::sys::path::parent_path(FullActualPath); - llvm::SmallString<128> ActualName = - llvm::sys::path::filename(FullActualPath); - - EXPECT_STREQ(ExpectedPath.c_str(), ActualPath.c_str()); - - llvm::StringRef ExpectedName = - "^feature.cpp_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}_[0-9a-f]{2}_[" - "0-9a-f]{2}_[0-9a-f]{2}.yaml$"; + llvm::SmallString<128> ExpectedHeaderPath = + llvm::sys::path::parent_path(HeaderFile); + llvm::SmallString<128> ActualHeaderPath = + llvm::sys::path::parent_path(ActualName); + llvm::SmallString<128> ActualHeaderName = + llvm::sys::path::filename(ActualName); + + EXPECT_STREQ(ExpectedHeaderPath.c_str(), ActualHeaderPath.c_str()); + llvm::Regex R(ExpectedName); - ASSERT_TRUE(R.match(ActualName)) - << "ExpectedName: " << ExpectedName.data() + ASSERT_TRUE(R.match(ActualHeaderName)) + << "ExpectedName: " << ExpectedName.c_str() << "\nActualName: " << ActualName.c_str(); ASSERT_TRUE(Error.empty()) << "Error: " << Error.c_str(); } |