From ce271f82f16ee89a18e7bfc9ed8eab7cbd6f37bc Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Mon, 22 Sep 2025 23:38:21 +0200 Subject: Change io::Reader and company to return ReadError::Eof instead of 0. It's debatable if Eof should be considered an error or not. But it is pretty clear it generally is a special response that needs special handling, so easier to keep with the unexpected lot. Also keeps better at higher abstraction levels, such as the line reader. --- test/uline.cc | 54 +++++++++++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) (limited to 'test/uline.cc') diff --git a/test/uline.cc b/test/uline.cc index ca3f2bb..8eb6a91 100644 --- a/test/uline.cc +++ b/test/uline.cc @@ -15,7 +15,7 @@ TEST(u8line, empty) { EXPECT_EQ(0, reader->number()); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(0, reader->number()); } @@ -29,7 +29,7 @@ TEST(u8line, one_line) { EXPECT_EQ(1, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(1, reader->number()); } @@ -50,7 +50,7 @@ TEST(u8line, many_lines) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -71,7 +71,7 @@ TEST(u8line, many_lines_mixed) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -84,7 +84,7 @@ TEST(u8line, empty_line) { EXPECT_EQ(1, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(1, reader->number()); } @@ -106,7 +106,7 @@ TEST(u8line, max_line) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -115,8 +115,7 @@ TEST(u8line, read_error) { io_make_breaking(io::memory("foo bar fum\nfim zam"), /* offset */ 5))); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_FALSE(line.error().eof); - EXPECT_EQ(io::ReadError::Error, line.error().io_error.value()); + EXPECT_EQ(io::ReadError::Error, line.error()); } TEST(u8line, read_error_newline) { @@ -124,8 +123,7 @@ TEST(u8line, read_error_newline) { io_make_breaking(io::memory("foo bar\r\nfim zam"), /* offset */ 8))); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_FALSE(line.error().eof); - EXPECT_EQ(io::ReadError::Error, line.error().io_error.value()); + EXPECT_EQ(io::ReadError::Error, line.error()); } TEST(u8line, blocky) { @@ -140,7 +138,7 @@ TEST(u8line, blocky) { EXPECT_EQ("fim zam", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u8line, blocky_newline) { @@ -155,7 +153,7 @@ TEST(u8line, blocky_newline) { EXPECT_EQ("fim zam", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u8line, eof_newline) { @@ -165,7 +163,7 @@ TEST(u8line, eof_newline) { EXPECT_EQ("foo bar", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u8line, max_newline) { @@ -178,7 +176,7 @@ TEST(u8line, max_newline) { EXPECT_EQ("r", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u8line, max_line_overflow) { @@ -195,7 +193,7 @@ TEST(u16line, empty) { EXPECT_EQ(0, reader->number()); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(0, reader->number()); } @@ -209,7 +207,7 @@ TEST(u16line, one_line) { EXPECT_EQ(1, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(1, reader->number()); } @@ -224,7 +222,7 @@ TEST(u16line, one_line_u16) { EXPECT_EQ(1, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(1, reader->number()); } @@ -245,7 +243,7 @@ TEST(u16line, many_lines) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -266,7 +264,7 @@ TEST(u16line, many_lines_mixed) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -279,7 +277,7 @@ TEST(u16line, empty_line) { EXPECT_EQ(1, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(1, reader->number()); } @@ -301,7 +299,7 @@ TEST(u16line, max_line) { EXPECT_EQ(3, reader->number()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); EXPECT_EQ(3, reader->number()); } @@ -310,8 +308,7 @@ TEST(u16line, read_error) { io_make_breaking(io::memory("foo bar fum\nfim zam"), /* offset */ 5))); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_FALSE(line.error().eof); - EXPECT_EQ(io::ReadError::Error, line.error().io_error.value()); + EXPECT_EQ(io::ReadError::Error, line.error()); } TEST(u16line, read_error_newline) { @@ -319,8 +316,7 @@ TEST(u16line, read_error_newline) { io_make_breaking(io::memory("foo bar\r\nfim zam"), /* offset */ 8))); auto line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_FALSE(line.error().eof); - EXPECT_EQ(io::ReadError::Error, line.error().io_error.value()); + EXPECT_EQ(io::ReadError::Error, line.error()); } TEST(u16line, blocky) { @@ -335,7 +331,7 @@ TEST(u16line, blocky) { EXPECT_EQ(u"fim zam", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u16line, blocky_newline) { @@ -350,7 +346,7 @@ TEST(u16line, blocky_newline) { EXPECT_EQ(u"fim zam", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u16line, eof_newline) { @@ -360,7 +356,7 @@ TEST(u16line, eof_newline) { EXPECT_EQ(u"foo bar", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u16line, max_newline) { @@ -373,7 +369,7 @@ TEST(u16line, max_newline) { EXPECT_EQ(u"r", line.value()); line = reader->read(); ASSERT_FALSE(line.has_value()); - EXPECT_TRUE(line.error().eof); + EXPECT_EQ(io::ReadError::Eof, line.error()); } TEST(u16line, max_line_overflow) { -- cgit v1.3