summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/cpp11-migrate
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/unittests/cpp11-migrate')
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt1
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp6
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/IncludeExcludeTest.cpp13
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp3
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/ReplacementsYamlTest.cpp76
-rw-r--r--clang-tools-extra/unittests/cpp11-migrate/Utility.h25
6 files changed, 109 insertions, 15 deletions
diff --git a/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt b/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt
index 1f647d5dc19..8da010f0dbd 100644
--- a/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt
+++ b/clang-tools-extra/unittests/cpp11-migrate/CMakeLists.txt
@@ -11,6 +11,7 @@ add_extra_unittest(Cpp11MigrateTests
ReformattingTest.cpp
IncludeExcludeTest.cpp
PerfSupportTest.cpp
+ ReplacementsYamlTest.cpp
TransformTest.cpp
UniqueHeaderNameTest.cpp
)
diff --git a/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp
index 39ed662cbec..382c5a8c737 100644
--- a/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp
+++ b/clang-tools-extra/unittests/cpp11-migrate/FileOverridesTest.cpp
@@ -30,8 +30,10 @@ TEST(SourceOverridesTest, Interface) {
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());
+ Replaces.insert(
+ Replacement(FileName, 0, ReplacementLength, "auto"));
+ Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager(),
+ "use-auto");
EXPECT_TRUE(Overrides.isSourceOverriden());
std::string ExpectedContent = "auto long_type =\n"
diff --git a/clang-tools-extra/unittests/cpp11-migrate/IncludeExcludeTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/IncludeExcludeTest.cpp
index 8b772c49451..52a9d32d1f6 100644
--- a/clang-tools-extra/unittests/cpp11-migrate/IncludeExcludeTest.cpp
+++ b/clang-tools-extra/unittests/cpp11-migrate/IncludeExcludeTest.cpp
@@ -7,24 +7,13 @@
//
//===----------------------------------------------------------------------===//
+#include "Utility.h"
#include "Core/IncludeExcludeInfo.h"
#include "gtest/gtest.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include <fstream>
-// FIXME: copied from unittests/Support/Path.cpp
-#define ASSERT_NO_ERROR(x) \
- if (llvm::error_code ASSERT_NO_ERROR_ec = x) { \
- llvm::SmallString<128> MessageStorage; \
- llvm::raw_svector_ostream Message(MessageStorage); \
- Message << #x ": did not return errc::success.\n" \
- << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
- << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
- GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
- } else { \
- }
-
TEST(IncludeExcludeTest, ParseString) {
IncludeExcludeInfo IEManager;
llvm::error_code Err = IEManager.readListFromString(
diff --git a/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp
index fcde6b81db4..a5caa0a3d77 100644
--- a/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp
+++ b/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp
@@ -39,7 +39,8 @@ TEST(Reformatter, SingleReformat) {
FileName, Changes, VFHelper.getNewSourceManager());
SourceOverrides Overrides(FileName, /*TrackChanges=*/false);
- Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager());
+ Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager(),
+ "reformatter");
std::string Expected, Result;
diff --git a/clang-tools-extra/unittests/cpp11-migrate/ReplacementsYamlTest.cpp b/clang-tools-extra/unittests/cpp11-migrate/ReplacementsYamlTest.cpp
new file mode 100644
index 00000000000..7b95e4dcadd
--- /dev/null
+++ b/clang-tools-extra/unittests/cpp11-migrate/ReplacementsYamlTest.cpp
@@ -0,0 +1,76 @@
+//===- unittests/cpp11-migrate/ReplacementsYamlTest.cpp -------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Test for the Yaml files generated by transforms on header files.
+//
+//===----------------------------------------------------------------------===//
+
+#include "Utility.h"
+#include "Core/FileOverrides.h"
+#include "gtest/gtest.h"
+
+using namespace llvm;
+
+TEST(ReplacementsYamlTest, writeReadTest) {
+ using clang::tooling::Replacement;
+
+ const std::string HeaderFileName = "/path/to/common.h";
+ const std::string SourceFileName = "/path/to/source.cpp";
+ const std::string TransformID = "loop-convert";
+ const unsigned int ReplacementOffset1 = 232;
+ const unsigned int ReplacementLength1 = 56;
+ const std::string ReplacementText1 = "(auto & elem : V)";
+ const unsigned int ReplacementOffset2 = 301;
+ const unsigned int ReplacementLength2 = 2;
+ const std::string ReplacementText2 = "elem";
+
+ HeaderChangeDocument HCD;
+ HCD.TransformID = TransformID;
+ HCD.Replacements.push_back(Replacement(HeaderFileName, ReplacementOffset1,
+ ReplacementLength1, ReplacementText1));
+ HCD.Replacements.push_back(Replacement(HeaderFileName, ReplacementOffset2,
+ ReplacementLength2, ReplacementText2));
+
+ HCD.HeaderFileName = HeaderFileName.c_str();
+ HCD.SourceFileName = SourceFileName.c_str();
+
+ std::string YamlContent;
+ llvm::raw_string_ostream YamlContentStream(YamlContent);
+
+ // Write to the YAML file.
+ {
+ yaml::Output YAML(YamlContentStream);
+ YAML << HCD;
+ YamlContentStream.str();
+ ASSERT_NE(YamlContent.length(), 0u);
+ }
+
+ // Read from the YAML file and verify that what was written is exactly what
+ // we read back.
+ {
+ HeaderChangeDocument HCDActual;
+ yaml::Input YAML(YamlContent);
+ YAML >> HCDActual;
+ ASSERT_NO_ERROR(YAML.error());
+ EXPECT_EQ(HeaderFileName, HCDActual.HeaderFileName);
+ EXPECT_EQ(SourceFileName, HCDActual.SourceFileName);
+ EXPECT_EQ(TransformID, HCDActual.TransformID);
+ ASSERT_EQ(2u, HCDActual.Replacements.size());
+
+ EXPECT_EQ(ReplacementOffset1, HCDActual.Replacements[0].getOffset());
+ EXPECT_EQ(ReplacementLength1, HCDActual.Replacements[0].getLength());
+ EXPECT_EQ(ReplacementText1,
+ HCDActual.Replacements[0].getReplacementText().str());
+
+ EXPECT_EQ(ReplacementOffset2, HCDActual.Replacements[1].getOffset());
+ EXPECT_EQ(ReplacementLength2, HCDActual.Replacements[1].getLength());
+ EXPECT_EQ(ReplacementText2,
+ HCDActual.Replacements[1].getReplacementText().str());
+ }
+}
diff --git a/clang-tools-extra/unittests/cpp11-migrate/Utility.h b/clang-tools-extra/unittests/cpp11-migrate/Utility.h
new file mode 100644
index 00000000000..54291d941a3
--- /dev/null
+++ b/clang-tools-extra/unittests/cpp11-migrate/Utility.h
@@ -0,0 +1,25 @@
+//=-- cpp11-migrate/Utility.h - Utility functions and macros-----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef CPP11_MIGRATE_UNITTESTS_UTILITY_H
+#define CPP11_MIGRATE_UNITTESTS_UTILITY_H
+
+// FIXME: copied from unittests/Support/Path.cpp
+#define ASSERT_NO_ERROR(x) \
+ if (llvm::error_code ASSERT_NO_ERROR_ec = x) { \
+ llvm::SmallString<128> MessageStorage; \
+ llvm::raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
+
+#endif // CPP11_MIGRATE_UNITTESTS_UTILITY_H
OpenPOWER on IntegriCloud