diff options
author | Håvard Pettersen <havardpe@oath.com> | 2017-09-29 09:58:38 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2017-09-29 10:16:47 +0000 |
commit | e2b6377c44b7029674d32c00a3a11b4ea5a975e2 (patch) | |
tree | 4ff198e7d3c3d7527b7ec3eff857e5b03363123d /vespalib | |
parent | 3e117340d05f8fb7c7ced5e4246e0cb4193f79db (diff) |
added unit test for InputReader::try_unread
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/data/input_reader/input_reader_test.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/vespalib/src/tests/data/input_reader/input_reader_test.cpp b/vespalib/src/tests/data/input_reader/input_reader_test.cpp index e8098b7e3ea..c74b16400df 100644 --- a/vespalib/src/tests/data/input_reader/input_reader_test.cpp +++ b/vespalib/src/tests/data/input_reader/input_reader_test.cpp @@ -112,4 +112,30 @@ TEST("expect that obtain does not set failure state on input reader") { } } +TEST("require that bytes can be unread when appropriate") { + const char *data = "12345"; + MemoryInput memory_input(data); + ChunkedInput input(memory_input, 3); + InputReader src(input); + EXPECT_TRUE(!src.try_unread()); + EXPECT_EQUAL(src.read(), '1'); + EXPECT_EQUAL(src.read(), '2'); + EXPECT_EQUAL(src.read(), '3'); + EXPECT_TRUE(src.try_unread()); + EXPECT_TRUE(src.try_unread()); + EXPECT_TRUE(src.try_unread()); + EXPECT_TRUE(!src.try_unread()); + EXPECT_EQUAL(src.read(), '1'); + EXPECT_EQUAL(src.read(), '2'); + EXPECT_EQUAL(src.read(), '3'); + EXPECT_EQUAL(src.read(), '4'); + EXPECT_TRUE(src.try_unread()); + EXPECT_TRUE(!src.try_unread()); + EXPECT_EQUAL(src.read(), '4'); + EXPECT_EQUAL(src.read(), '5'); + EXPECT_EQUAL(src.obtain(), 0u); + EXPECT_TRUE(!src.try_unread()); + EXPECT_TRUE(!src.failed()); +} + TEST_MAIN() { TEST_RUN_ALL(); } |