diff options
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/StringRefTest.cpp | 30 |
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"); |