Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(838)

Unified Diff: tests/PixelRefTest.cpp

Issue 1159183003: Revert[6] of add asserts around results from requestLock (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: check for success in new tests Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkPixelRef.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/PixelRefTest.cpp
diff --git a/tests/PixelRefTest.cpp b/tests/PixelRefTest.cpp
index e13d0e07e5476804ced4dfeccf8748c02e578339..8a6e8e3997571566edda20a0a778e3355ad813b2 100644
--- a/tests/PixelRefTest.cpp
+++ b/tests/PixelRefTest.cpp
@@ -1,8 +1,63 @@
+/*
+ * Copyright 2015 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 "SkMallocPixelRef.h"
#include "SkPixelRef.h"
+static void decrement_counter_proc(void* pixels, void* ctx) {
+ int* counter = (int*)ctx;
+ *counter -= 1;
+}
+
+static void test_dont_leak_install(skiatest::Reporter* reporter) {
+ bool success;
+ int release_counter;
+ SkImageInfo info;
+ SkBitmap bm;
+
+ info = SkImageInfo::MakeN32Premul(0, 0);
+ release_counter = 1;
+ success = bm.installPixels(info, NULL, 0, NULL, decrement_counter_proc, &release_counter);
+ REPORTER_ASSERT(reporter, true == success);
+ bm.reset();
+ REPORTER_ASSERT(reporter, 0 == release_counter);
+
+ info = SkImageInfo::MakeN32Premul(10, 10);
+ release_counter = 1;
+ success = bm.installPixels(info, NULL, 0, NULL, decrement_counter_proc, &release_counter);
+ REPORTER_ASSERT(reporter, true == success);
+ bm.reset();
+ REPORTER_ASSERT(reporter, 0 == release_counter);
+
+ info = SkImageInfo::MakeN32Premul(-10, -10);
+ release_counter = 1;
+ success = bm.installPixels(info, NULL, 0, NULL, decrement_counter_proc, &release_counter);
+ REPORTER_ASSERT(reporter, false == success);
+ bm.reset();
+ REPORTER_ASSERT(reporter, 0 == release_counter);
+}
+
+static void test_install(skiatest::Reporter* reporter) {
+ bool success;
+ SkImageInfo info = SkImageInfo::MakeN32Premul(0, 0);
+ SkBitmap bm;
+ // make sure we don't assert on an empty install
+ success = bm.installPixels(info, NULL, 0);
+ REPORTER_ASSERT(reporter, success);
+
+ // no pixels should be the same as setInfo()
+ info = SkImageInfo::MakeN32Premul(10, 10);
+ success = bm.installPixels(info, NULL, 0);
+ REPORTER_ASSERT(reporter, success);
+
+}
+
class TestListener : public SkPixelRef::GenIDChangeListener {
public:
explicit TestListener(int* ptr) : fPtr(ptr) {}
@@ -43,4 +98,7 @@ DEF_TEST(PixelRef_GenIDChange, r) {
REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID());
pixelRef->addGenIDChangeListener(NULL);
pixelRef->notifyPixelsChanged();
+
+ test_install(r);
+ test_dont_leak_install(r);
}
« no previous file with comments | « src/core/SkPixelRef.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698