Chromium Code Reviews| Index: tests/PictureTest.cpp |
| diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp |
| index f10948231123a4b8eae6c8b449fb73c7fd6c52ff..93fc296ee7afb6f88b023d25ebc26ec8b8fe1d7b 100644 |
| --- a/tests/PictureTest.cpp |
| +++ b/tests/PictureTest.cpp |
| @@ -1447,3 +1447,60 @@ DEF_TEST(PictureGpuAnalyzer, r) { |
| } |
| #endif // SK_SUPPORT_GPU |
| + |
| +/////////////////////////////////////////////////////////////////////////////////////////////////// |
| + |
| +static void empty_ops(SkCanvas* canvas) { |
| +} |
| +static void clip_ops(SkCanvas* canvas) { |
| + canvas->save(); |
| + canvas->clipRect(SkRect::MakeWH(20, 20)); |
| + canvas->restore(); |
| +} |
| +static void matrix_ops(SkCanvas* canvas) { |
| + canvas->save(); |
| + canvas->scale(2, 3); |
| + canvas->restore(); |
| +} |
| +static void matrixclip_ops(SkCanvas* canvas) { |
| + canvas->save(); |
| + canvas->scale(2, 3); |
| + canvas->clipRect(SkRect::MakeWH(20, 20)); |
| + canvas->restore(); |
| +} |
| +typedef void (*CanvasProc)(SkCanvas*); |
| + |
| +DEF_TEST(Picture_RecordEmpty, r) { |
| + const SkRect cull = SkRect::MakeWH(100, 100); |
| + |
| + CanvasProc procs[] { empty_ops, clip_ops, matrix_ops, matrixclip_ops }; |
| + |
| + for (auto proc : procs) { |
| + { |
| + SkPictureRecorder rec; |
| + proc(rec.beginRecording(cull)); |
| + sk_sp<SkPicture> pic = rec.finishRecordingAsPicture(0); |
| + REPORTER_ASSERT(r, pic.get()); |
|
mtklein
2016/06/29 19:44:19
We should also be able to assert pic->approximateO
reed1
2016/07/06 13:55:09
Done.
|
| + } |
| + { |
| + SkPictureRecorder rec; |
| + proc(rec.beginRecording(cull)); |
| + sk_sp<SkPicture> pic = rec.finishRecordingAsPicture( |
| + SkPictureRecorder::kReturnNullForEmpty_FinishFlag); |
| + REPORTER_ASSERT(r, !pic.get()); |
| + } |
| + { |
| + SkPictureRecorder rec; |
| + proc(rec.beginRecording(cull)); |
| + sk_sp<SkDrawable> dr = rec.finishRecordingAsDrawable(0); |
| + REPORTER_ASSERT(r, dr.get()); |
| + } |
| + { |
| + SkPictureRecorder rec; |
| + proc(rec.beginRecording(cull)); |
| + sk_sp<SkDrawable> dr = rec.finishRecordingAsDrawable( |
| + SkPictureRecorder::kReturnNullForEmpty_FinishFlag); |
| + REPORTER_ASSERT(r, !dr.get()); |
| + } |
| + } |
| +} |