aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/SerializationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/SerializationTest.cpp')
-rw-r--r--tests/SerializationTest.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp
index 2543870667..da797398c1 100644
--- a/tests/SerializationTest.cpp
+++ b/tests/SerializationTest.cpp
@@ -637,3 +637,32 @@ DEF_TEST(Annotations, reporter) {
TestAnnotationCanvas canvas(reporter, recs, SK_ARRAY_COUNT(recs));
canvas.drawPicture(pict1);
}
+
+DEF_TEST(WriteBuffer_storage, reporter) {
+ enum {
+ kSize = 32
+ };
+ int32_t storage[kSize/4];
+ char src[kSize];
+ sk_bzero(src, kSize);
+
+ SkBinaryWriteBuffer writer(storage, kSize);
+ REPORTER_ASSERT(reporter, writer.usingInitialStorage());
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == 0);
+ writer.write(src, kSize - 4);
+ REPORTER_ASSERT(reporter, writer.usingInitialStorage());
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == kSize - 4);
+ writer.writeInt(0);
+ REPORTER_ASSERT(reporter, writer.usingInitialStorage());
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == kSize);
+
+ writer.reset(storage, kSize-4);
+ REPORTER_ASSERT(reporter, writer.usingInitialStorage());
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == 0);
+ writer.write(src, kSize - 4);
+ REPORTER_ASSERT(reporter, writer.usingInitialStorage());
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == kSize - 4);
+ writer.writeInt(0);
+ REPORTER_ASSERT(reporter, !writer.usingInitialStorage()); // this is the change
+ REPORTER_ASSERT(reporter, writer.bytesWritten() == kSize);
+}