aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Writer32Test.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-03-03 08:13:54 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-03 08:13:54 -0800
commit0eda2587cc9233066cb3f3fec08f35c061780f8e (patch)
treed48efc9eaa40406d0dc8e8b7931629b049ad1909 /tests/Writer32Test.cpp
parentc6663dc36b157e40c8225130f5970a346f9ba7c3 (diff)
move annotations to canvas virtual
In an effort to do it all at once, this change assumes that its ok to ignore annotations that were previously stored on paints in old SKP files (since this feature is only interesting to PDF printing). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1744103002 Review URL: https://codereview.chromium.org/1744103002
Diffstat (limited to 'tests/Writer32Test.cpp')
-rw-r--r--tests/Writer32Test.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 39ae79cff6..e03a9163aa 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -278,3 +278,44 @@ DEF_TEST(Writer32_misc, reporter) {
test_rewind(reporter);
}
+DEF_TEST(Writer32_data, reporter) {
+ const char* str = "0123456789";
+ SkAutoTUnref<SkData> data0(SkData::NewWithCString(str));
+ SkAutoTUnref<SkData> data1(SkData::NewEmpty());
+
+ const size_t sizes[] = {
+ SkWriter32::WriteDataSize(nullptr),
+ SkWriter32::WriteDataSize(data0),
+ SkWriter32::WriteDataSize(data1),
+ };
+
+ SkSWriter32<1000> writer;
+ size_t sizeWritten = 0;
+
+ writer.writeData(nullptr);
+ sizeWritten += sizes[0];
+ REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten());
+
+ writer.writeData(data0);
+ sizeWritten += sizes[1];
+ REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten());
+
+ writer.writeData(data1);
+ sizeWritten += sizes[2];
+ REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten());
+
+ SkAutoTUnref<SkData> result(writer.snapshotAsData());
+
+ SkReader32 reader(result->data(), result->size());
+ SkAutoTUnref<SkData> d0(reader.readData()),
+ d1(reader.readData()),
+ d2(reader.readData());
+
+ REPORTER_ASSERT(reporter, 0 == d0->size());
+ REPORTER_ASSERT(reporter, strlen(str)+1 == d1->size());
+ REPORTER_ASSERT(reporter, !memcmp(str, d1->data(), strlen(str)+1));
+ REPORTER_ASSERT(reporter, 0 == d2->size());
+
+ REPORTER_ASSERT(reporter, reader.offset() == sizeWritten);
+ REPORTER_ASSERT(reporter, reader.eof());
+}