aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/common/bufferedreadstream.h25
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());
+ }
};