Index: tests/PictureTest.cpp |
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp |
index c54a9d56d665fdb7223ff84dc9b18dc675d155a5..47804c7850ec758b83ca871771abc7d5f5c02bf3 100644 |
--- a/tests/PictureTest.cpp |
+++ b/tests/PictureTest.cpp |
@@ -416,25 +416,29 @@ static void gather_from_analytic(const SkPoint pos[], SkScalar w, SkScalar h, |
} |
} |
-static const DrawBitmapProc gProcs[] = { |
- drawpaint_proc, |
- drawpoints_proc, |
- drawrect_proc, |
- drawoval_proc, |
- drawrrect_proc, |
- drawpath_proc, |
- drawbitmap_proc, |
- drawbitmap_withshader_proc, |
- drawsprite_proc, |
+ |
+static const struct { |
+ const DrawBitmapProc proc; |
+ const char* const desc; |
+} gProcs[] = { |
+ {drawpaint_proc, "drawpaint"}, |
+ {drawpoints_proc, "drawpoints"}, |
+ {drawrect_proc, "drawrect"}, |
+ {drawoval_proc, "drawoval"}, |
+ {drawrrect_proc, "drawrrect"}, |
+ {drawpath_proc, "drawpath"}, |
+ {drawbitmap_proc, "drawbitmap"}, |
+ {drawbitmap_withshader_proc, "drawbitmap_withshader"}, |
+ {drawsprite_proc, "drawsprite"}, |
#if 0 |
- drawsprite_withshader_proc, |
+ {drawsprite_withshader_proc, "drawsprite_withshader"}, |
#endif |
- drawbitmaprect_proc, |
- drawbitmaprect_withshader_proc, |
- drawtext_proc, |
- drawpostext_proc, |
- drawtextonpath_proc, |
- drawverts_proc, |
+ {drawbitmaprect_proc, "drawbitmaprect"}, |
+ {drawbitmaprect_withshader_proc, "drawbitmaprect_withshader"}, |
+ {drawtext_proc, "drawtext"}, |
+ {drawpostext_proc, "drawpostext"}, |
+ {drawtextonpath_proc, "drawtextonpath"}, |
+ {drawverts_proc, "drawverts"}, |
}; |
static void create_textures(SkBitmap* bm, SkPixelRef** refs, int num, int w, int h) { |
@@ -477,7 +481,8 @@ static void test_gatherpixelrefs(skiatest::Reporter* reporter) { |
SkRandom rand; |
for (size_t k = 0; k < SK_ARRAY_COUNT(gProcs); ++k) { |
- SkAutoTUnref<SkPicture> pic(record_bitmaps(bm, pos, analytic, N, gProcs[k])); |
+ SkAutoTUnref<SkPicture> pic( |
+ record_bitmaps(bm, pos, analytic, N, gProcs[k].proc)); |
REPORTER_ASSERT(reporter, pic->willPlayBackBitmaps() || N == 0); |
// quick check for a small piece of each quadrant, which should just |
@@ -487,18 +492,20 @@ static void test_gatherpixelrefs(skiatest::Reporter* reporter) { |
r.set(2, 2, W - 2, H - 2); |
r.offset(pos[i].fX, pos[i].fY); |
SkAutoDataUnref data(SkPictureUtils::GatherPixelRefs(pic, r)); |
- REPORTER_ASSERT(reporter, data); |
- if (data) { |
- SkPixelRef** gatheredRefs = (SkPixelRef**)data->data(); |
- int count = static_cast<int>(data->size() / sizeof(SkPixelRef*)); |
- REPORTER_ASSERT(reporter, 1 == count || 2 == count); |
- if (1 == count) { |
- REPORTER_ASSERT(reporter, gatheredRefs[0] == refs[i]); |
- } else if (2 == count) { |
- REPORTER_ASSERT(reporter, |
- (gatheredRefs[0] == refs[i] && gatheredRefs[1] == refs[i+N]) || |
- (gatheredRefs[1] == refs[i] && gatheredRefs[0] == refs[i+N])); |
- } |
+ if (!data) { |
+ ERRORF(reporter, "SkPictureUtils::GatherPixelRefs returned " |
+ "NULL for %s.", gProcs[k].desc); |
+ continue; |
+ } |
+ SkPixelRef** gatheredRefs = (SkPixelRef**)data->data(); |
+ int count = static_cast<int>(data->size() / sizeof(SkPixelRef*)); |
+ REPORTER_ASSERT(reporter, 1 == count || 2 == count); |
+ if (1 == count) { |
+ REPORTER_ASSERT(reporter, gatheredRefs[0] == refs[i]); |
+ } else if (2 == count) { |
+ REPORTER_ASSERT(reporter, |
+ (gatheredRefs[0] == refs[i] && gatheredRefs[1] == refs[i+N]) || |
+ (gatheredRefs[1] == refs[i] && gatheredRefs[0] == refs[i+N])); |
} |
} |
@@ -528,7 +535,10 @@ static void test_gatherpixelrefs(skiatest::Reporter* reporter) { |
// but the analytic list may contain some pixelRefs that were not |
// seen in the image (e.g., A8 textures used as masks) |
for (int i = 0; i < fromImage.count(); ++i) { |
- REPORTER_ASSERT(reporter, -1 != fromAnalytic.find(fromImage[i])); |
+ if (-1 == fromAnalytic.find(fromImage[i])) { |
+ ERRORF(reporter, "PixelRef missing %d %s", |
+ i, gProcs[k].desc); |
+ } |
} |
/* |
@@ -540,7 +550,10 @@ static void test_gatherpixelrefs(skiatest::Reporter* reporter) { |
*/ |
for (int i = 0; i < fromAnalytic.count(); ++i) { |
bool found = find(gatherRefs, fromAnalytic[i], gatherCount); |
- REPORTER_ASSERT(reporter, found); |
+ if (!found) { |
+ ERRORF(reporter, "PixelRef missing %d %s", |
+ i, gProcs[k].desc); |
+ } |
#if 0 |
// enable this block of code to debug failures, as it will rerun |
// the case that failed. |
@@ -573,7 +586,8 @@ static void test_gatherpixelrefsandrects(skiatest::Reporter* reporter) { |
SkRandom rand; |
for (size_t k = 0; k < SK_ARRAY_COUNT(gProcs); ++k) { |
- SkAutoTUnref<SkPicture> pic(record_bitmaps(bm, pos, analytic, N, gProcs[k])); |
+ SkAutoTUnref<SkPicture> pic( |
+ record_bitmaps(bm, pos, analytic, N, gProcs[k].proc)); |
REPORTER_ASSERT(reporter, pic->willPlayBackBitmaps() || N == 0); |