summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests
diff options
context:
space:
mode:
authorMichael Gottesman <mgottesman@apple.com>2013-08-30 22:09:03 +0000
committerMichael Gottesman <mgottesman@apple.com>2013-08-30 22:09:03 +0000
commit92d9cb4dd1fcf633e264cbacbcdcd1b5c6f10714 (patch)
treeaba42a41d482498dd4f83c88fb5c1b1aebea25ab /clang-tools-extra/unittests
parent79917a913e20d964708e89a721197febc60e8391 (diff)
downloadbcm5719-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')
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt57
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp118
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/Makefile4
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/PerfSupportTest.cpp4
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp33
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp4
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/UniqueHeaderNameTest.cpp35
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();
}
OpenPOWER on IntegriCloud