diff options
-rw-r--r-- | test/common/bufferedreadstream.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/common/bufferedreadstream.h b/test/common/bufferedreadstream.h index c171836466..0b2cda696c 100644 --- a/test/common/bufferedreadstream.h +++ b/test/common/bufferedreadstream.h @@ -27,4 +27,29 @@ class BufferedReadStreamTestSuite : public CxxTest::TestSuite { TS_ASSERT(srs.eos()); } + + void test_traverse2() { + byte contents[9] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + Common::MemoryReadStream ms(contents, 9); + + Common::BufferedReadStream brs(&ms, 4); + + // Traverse the stream with reads of 2 bytes. The size is not + // a multiple of 2, so we can test the final partial read. + + byte i, b[2]; + for (i = 0; i < 4; ++i) { + TS_ASSERT(!brs.eos()); + + int n = brs.read(b, 2); + TS_ASSERT_EQUALS(n, 2); + } + + TS_ASSERT(!brs.eos()); + + int n = brs.read(b, 2); + TS_ASSERT_EQUALS(n, 1); + + TS_ASSERT(brs.eos()); + } }; |