From 8d3ad5a1223551927a34f72b35f9dbf5c1f5bc93 Mon Sep 17 00:00:00 2001 From: halcanary Date: Thu, 24 Mar 2016 09:18:14 -0700 Subject: images with offset bitmap don't share genid BUG=skia:5096 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813793002 Review URL: https://codereview.chromium.org/1813793002 --- tests/image-bitmap.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/image-bitmap.cpp (limited to 'tests/image-bitmap.cpp') diff --git a/tests/image-bitmap.cpp b/tests/image-bitmap.cpp new file mode 100644 index 0000000000..59ab3f72be --- /dev/null +++ b/tests/image-bitmap.cpp @@ -0,0 +1,34 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "Test.h" + +#include "SkBitmap.h" +#include "SkImage.h" + +// https://bug.skia.org/5096 +// Test that when we make an image from a subset of a bitmap, that it +// has a diff (ID, dimensions) from an image made from the entire +// bitmap or a different subset of the image. +DEF_TEST(ImageBitmapIdentity, r) { + SkBitmap bm, a, b; + bm.allocN32Pixels(32, 64); + bm.eraseColor(SK_ColorBLACK); + bm.setImmutable(); + (void)bm.extractSubset(&a, SkIRect::MakeXYWH(0, 0, 32, 32)); + (void)bm.extractSubset(&b, SkIRect::MakeXYWH(0, 32, 32, 32)); + REPORTER_ASSERT(r, a.getGenerationID() == b.getGenerationID()); + auto img = SkImage::MakeFromBitmap(bm); + auto imgA = SkImage::MakeFromBitmap(a); + auto imgB = SkImage::MakeFromBitmap(b); + REPORTER_ASSERT(r, img->uniqueID() == bm.getGenerationID()); + REPORTER_ASSERT(r, img->uniqueID() != imgA->uniqueID()); + REPORTER_ASSERT(r, img->uniqueID() != imgB->uniqueID()); + REPORTER_ASSERT(r, imgA->uniqueID() != imgB->uniqueID()); + REPORTER_ASSERT(r, imgA->uniqueID() != a.getGenerationID()); + REPORTER_ASSERT(r, imgB->uniqueID() != b.getGenerationID()); +} -- cgit v1.2.3