diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2025-09-22 23:38:21 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2025-09-22 23:38:21 +0200 |
| commit | ce271f82f16ee89a18e7bfc9ed8eab7cbd6f37bc (patch) | |
| tree | 3e568faf83ae750aa244cca87b55951c7401ef03 /test | |
| parent | 50348284f5d82ccfd65b0c803ba0ba895912ceff (diff) | |
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.
Diffstat (limited to 'test')
| -rw-r--r-- | test/io.cc | 8 | ||||
| -rw-r--r-- | test/line.cc | 26 | ||||
| -rw-r--r-- | test/uio.cc | 8 | ||||
| -rw-r--r-- | test/uline.cc | 54 |
4 files changed, 45 insertions, 51 deletions
@@ -128,8 +128,8 @@ TEST_F(IoTest, read_empty) { ASSERT_TRUE(ret.has_value()); std::string tmp(10, ' '); auto ret2 = ret.value()->read(tmp.data(), tmp.size()); - ASSERT_TRUE(ret2.has_value()); - EXPECT_EQ(0, ret2.value()); + ASSERT_FALSE(ret2.has_value()); + EXPECT_EQ(io::ReadError::Eof, ret2.error()); } TEST_F(IoTest, skip_empty) { @@ -138,8 +138,8 @@ TEST_F(IoTest, skip_empty) { auto ret = io::openat(dirfd(), "test"); ASSERT_TRUE(ret.has_value()); auto ret2 = ret.value()->skip(10); - ASSERT_TRUE(ret2.has_value()); - EXPECT_EQ(0, ret2.value()); + ASSERT_FALSE(ret2.has_value()); + EXPECT_EQ(io::ReadError::Eof, ret2.error()); } TEST_F(IoTest, read) { diff --git a/test/line.cc b/test/line.cc index 71d75c5..e0ea002 100644 --- a/test/line.cc +++ b/test/line.cc @@ -12,7 +12,7 @@ TEST(line, 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()); } @@ -25,7 +25,7 @@ TEST(line, 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()); } @@ -46,7 +46,7 @@ TEST(line, 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()); } @@ -67,7 +67,7 @@ TEST(line, 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()); } @@ -80,7 +80,7 @@ TEST(line, 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()); } @@ -101,7 +101,7 @@ TEST(line, 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()); } @@ -110,8 +110,7 @@ TEST(line, 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(line, read_error_newline) { @@ -119,8 +118,7 @@ TEST(line, 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(line, blocky) { @@ -134,7 +132,7 @@ TEST(line, 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(line, blocky_newline) { @@ -148,7 +146,7 @@ TEST(line, 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(line, eof_newline) { @@ -158,7 +156,7 @@ TEST(line, 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(line, max_newline) { @@ -171,7 +169,7 @@ TEST(line, 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(line, max_line_overflow) { diff --git a/test/uio.cc b/test/uio.cc index 47646e0..7d4c073 100644 --- a/test/uio.cc +++ b/test/uio.cc @@ -12,16 +12,16 @@ TEST(uio_u8, empty) { auto uio = u8::open(io::memory("")); std::string tmp; auto ret = uio->repeat_read(tmp, 10); - ASSERT_TRUE(ret.has_value()); - EXPECT_EQ(0, ret.value()); + ASSERT_FALSE(ret.has_value()); + EXPECT_EQ(io::ReadError::Eof, ret.error()); } TEST(uio_u16, empty) { auto uio = u16::open(io::memory("")); std::u16string tmp; auto ret = uio->repeat_read(tmp, 10); - ASSERT_TRUE(ret.has_value()); - EXPECT_EQ(0, ret.value()); + ASSERT_FALSE(ret.has_value()); + EXPECT_EQ(io::ReadError::Eof, ret.error()); } TEST(uio_u8, sample) { 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) { |
