diff options
Diffstat (limited to 'src/io/line_test.cpp')
-rw-r--r-- | src/io/line_test.cpp | 66 |
1 files changed, 63 insertions, 3 deletions
diff --git a/src/io/line_test.cpp b/src/io/line_test.cpp index edf60bd..582ee81 100644 --- a/src/io/line_test.cpp +++ b/src/io/line_test.cpp @@ -23,6 +23,8 @@ #include "../strings/astring.hpp" #include "../strings/zstring.hpp" +#include "../tests/fdhack.hpp" + #include "../poison.hpp" @@ -57,6 +59,7 @@ TEST(io, line1) } TEST(io, line2) { + QuietFd q; io::LineReader lr("<string2>"_s, string_pipe("Hello\nWorld"_s)); io::Line hi; EXPECT_TRUE(lr.read_line(hi)); @@ -73,6 +76,7 @@ TEST(io, line2) } TEST(io, line3) { + QuietFd q; io::LineReader lr("<string3>"_s, string_pipe("Hello\rWorld"_s)); io::Line hi; EXPECT_TRUE(lr.read_line(hi)); @@ -89,6 +93,7 @@ TEST(io, line3) } TEST(io, line4) { + QuietFd q; io::LineReader lr("<string4>"_s, string_pipe("Hello\r\nWorld"_s)); io::Line hi; EXPECT_TRUE(lr.read_line(hi)); @@ -105,6 +110,7 @@ TEST(io, line4) } TEST(io, line5) { + QuietFd q; io::LineReader lr("<string5>"_s, string_pipe("Hello\n\rWorld"_s)); io::Line hi; EXPECT_TRUE(lr.read_line(hi)); @@ -124,6 +130,20 @@ TEST(io, line5) EXPECT_EQ(hi.column, 0); EXPECT_FALSE(lr.read_line(hi)); } +TEST(io, line1text) +{ + io::LineReader lr(io::from_string, "<string1text>"_s, "Hello\nWorld"_s, 2); + io::Line hi; + EXPECT_TRUE(lr.read_line(hi)); + EXPECT_EQ(hi.text, "Hello"_s); + EXPECT_EQ(hi.line, 2); + EXPECT_EQ(hi.column, 0); + EXPECT_TRUE(lr.read_line(hi)); + EXPECT_EQ(hi.text, "World"_s); + EXPECT_EQ(hi.line, 3); + EXPECT_EQ(hi.column, 0); + EXPECT_FALSE(lr.read_line(hi)); +} TEST(io, linechar1) { @@ -175,6 +195,7 @@ TEST(io, linechar1) } TEST(io, linechar2) { + QuietFd q; io::LineCharReader lr("<stringchar2>"_s, string_pipe("Hi\nWu"_s)); io::LineChar c; EXPECT_TRUE(lr.get(c)); @@ -223,6 +244,7 @@ TEST(io, linechar2) } TEST(io, linechar3) { + QuietFd q; io::LineCharReader lr("<stringchar3>"_s, string_pipe("Hi\rWu"_s)); io::LineChar c; EXPECT_TRUE(lr.get(c)); @@ -271,6 +293,7 @@ TEST(io, linechar3) } TEST(io, linechar4) { + QuietFd q; io::LineCharReader lr("<stringchar4>"_s, string_pipe("Hi\r\nWu"_s)); io::LineChar c; EXPECT_TRUE(lr.get(c)); @@ -319,6 +342,7 @@ TEST(io, linechar4) } TEST(io, linechar5) { + QuietFd q; io::LineCharReader lr("<stringchar5>"_s, string_pipe("Hi\n\rWu"_s)); io::LineChar c; EXPECT_TRUE(lr.get(c)); @@ -372,6 +396,42 @@ TEST(io, linechar5) lr.adv(); EXPECT_FALSE(lr.get(c)); } +TEST(io, linechar1text) +{ + io::LineCharReader lr(io::from_string, "<stringchar1text>"_s, "Hi\nWu\n"_s, 2, 3); + io::LineChar c; + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), 'H'); + EXPECT_EQ(c.line, 2); + EXPECT_EQ(c.column, 3); + lr.adv(); + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), 'i'); + EXPECT_EQ(c.line, 2); + EXPECT_EQ(c.column, 4); + lr.adv(); + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), '\n'); + EXPECT_EQ(c.line, 2); + EXPECT_EQ(c.column, 5); + lr.adv(); + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), 'W'); + EXPECT_EQ(c.line, 3); + EXPECT_EQ(c.column, 1); + lr.adv(); + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), 'u'); + EXPECT_EQ(c.line, 3); + EXPECT_EQ(c.column, 2); + lr.adv(); + EXPECT_TRUE(lr.get(c)); + EXPECT_EQ(c.ch(), '\n'); + EXPECT_EQ(c.line, 3); + EXPECT_EQ(c.column, 3); + lr.adv(); + EXPECT_FALSE(lr.get(c)); +} TEST(io, linespan) { @@ -402,17 +462,17 @@ TEST(io, linespan) } while (span.end.ch() != 'r'); - EXPECT_EQ(span.begin.message_str("note"_s, "foo"_s), + EXPECT_EQ(span.begin.note_str("foo"_s), "<span>:1:5: note: foo\n" "Hello,\n" " ^\n"_s ); - EXPECT_EQ(span.end.message_str("warning"_s, "bar"_s), + EXPECT_EQ(span.end.warning_str("bar"_s), "<span>:2:3: warning: bar\n" "World!\n" " ^\n"_s ); - EXPECT_EQ(span.message_str("error"_s, "qux"_s), + EXPECT_EQ(span.error_str("qux"_s), "<span>:1:5: error: qux\n" "Hello,\n" " ^~ ...\n" |