diff options
author | reed <reed@google.com> | 2016-09-13 17:25:19 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-13 17:25:19 -0700 |
commit | 7e3ba9f88d64d901243799b61f497319e5970693 (patch) | |
tree | da3ffd0aa8b6c67bd46c0cc16c881bf1e503143c /tests/PipeTest.cpp | |
parent | 21cc9950c4b4eb183c315c7d417e36342a9f1cf9 (diff) |
change write-image to use pipeverbs like everyone else, and add test
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2335973003
Review-Url: https://codereview.chromium.org/2335973003
Diffstat (limited to 'tests/PipeTest.cpp')
-rw-r--r-- | tests/PipeTest.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/tests/PipeTest.cpp b/tests/PipeTest.cpp index f345debb8c..7f42071a75 100644 --- a/tests/PipeTest.cpp +++ b/tests/PipeTest.cpp @@ -49,7 +49,7 @@ static bool deep_equal(SkImage* a, SkImage* b) { return true; } -DEF_TEST(Pipe_image, reporter) { +DEF_TEST(Pipe_image_draw_first, reporter) { sk_sp<SkImage> img = GetResourceAsImage("mandrill_128.png"); SkASSERT(img.get()); @@ -86,3 +86,30 @@ DEF_TEST(Pipe_image, reporter) { auto img2 = drain_as_image(&deserializer, &stream); REPORTER_ASSERT(reporter, img1.get() == img2.get()); } + +DEF_TEST(Pipe_image_draw_second, reporter) { + sk_sp<SkImage> img = GetResourceAsImage("mandrill_128.png"); + SkASSERT(img.get()); + + SkPipeSerializer serializer; + SkPipeDeserializer deserializer; + SkDynamicMemoryWStream stream; + + serializer.write(img.get(), &stream); + size_t offset0 = stream.bytesWritten(); + REPORTER_ASSERT(reporter, offset0 > 100); // the raw image must be sorta big + drain_as_image(&deserializer, &stream); + + // The 2nd image should be nice and small + serializer.write(img.get(), &stream); + size_t offset1 = stream.bytesWritten(); + REPORTER_ASSERT(reporter, offset1 <= 32); + drain_as_image(&deserializer, &stream); + + // Now try drawing the image, it should also be small + SkCanvas* wc = serializer.beginWrite(SkRect::MakeWH(100, 100), &stream); + wc->drawImage(img, 0, 0, nullptr); + serializer.endWrite(); + size_t offset2 = stream.bytesWritten(); + REPORTER_ASSERT(reporter, offset2 <= 32); +} |