From 0eda2587cc9233066cb3f3fec08f35c061780f8e Mon Sep 17 00:00:00 2001 From: reed Date: Thu, 3 Mar 2016 08:13:54 -0800 Subject: 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 --- tests/Writer32Test.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'tests/Writer32Test.cpp') 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 data0(SkData::NewWithCString(str)); + SkAutoTUnref 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 result(writer.snapshotAsData()); + + SkReader32 reader(result->data(), result->size()); + SkAutoTUnref 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()); +} -- cgit v1.2.3