aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/StringRefTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
-rw-r--r--llvm/unittests/ADT/StringRefTest.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp
index 41c3580..e80a25a 100644
--- a/llvm/unittests/ADT/StringRefTest.cpp
+++ b/llvm/unittests/ADT/StringRefTest.cpp
@@ -1109,6 +1109,36 @@ TEST(StringRefTest, GTestPrinter) {
EXPECT_EQ(R"("foo")", ::testing::PrintToString(StringRef("foo")));
}
+TEST(StringRefTest, LFLineEnding) {
+ constexpr StringRef Cases[] = {"\nDoggo\nPupper", "Floofer\n", "Woofer"};
+ EXPECT_EQ(StringRef("\n"), Cases[0].detectEOL());
+ EXPECT_EQ(StringRef("\n"), Cases[1].detectEOL());
+ EXPECT_EQ(StringRef("\n"), Cases[2].detectEOL());
+}
+
+TEST(StringRefTest, CRLineEnding) {
+ constexpr StringRef Cases[] = {"\rDoggo\rPupper", "Floofer\r", "Woo\rfer\n"};
+ EXPECT_EQ(StringRef("\r"), Cases[0].detectEOL());
+ EXPECT_EQ(StringRef("\r"), Cases[1].detectEOL());
+ EXPECT_EQ(StringRef("\r"), Cases[2].detectEOL());
+}
+
+TEST(StringRefTest, CRLFLineEnding) {
+ constexpr StringRef Cases[] = {"\r\nDoggo\r\nPupper", "Floofer\r\n",
+ "Woofer\r\nSubWoofer\n"};
+ EXPECT_EQ(StringRef("\r\n"), Cases[0].detectEOL());
+ EXPECT_EQ(StringRef("\r\n"), Cases[1].detectEOL());
+ EXPECT_EQ(StringRef("\r\n"), Cases[2].detectEOL());
+}
+
+TEST(StringRefTest, LFCRLineEnding) {
+ constexpr StringRef Cases[] = {"\n\rDoggo\n\rPupper", "Floofer\n\r",
+ "Woofer\n\rSubWoofer\n"};
+ EXPECT_EQ(StringRef("\n\r"), Cases[0].detectEOL());
+ EXPECT_EQ(StringRef("\n\r"), Cases[1].detectEOL());
+ EXPECT_EQ(StringRef("\n\r"), Cases[2].detectEOL());
+}
+
static_assert(std::is_trivially_copyable<StringRef>::value,
"trivially copyable");