From 4abb0c11da669a40d126c6b7698e37732e052d84 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Mon, 4 Jan 2016 11:20:25 -0800 Subject: Add unit test for crbug.com/570232 This is the promised followup to https://codereview.chromium.org/1539553002/ (Add default ctor to SkMask) and would've caught the bug before it got out into the wild. BUG=570232 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1552303002 Review URL: https://codereview.chromium.org/1552303002 --- tests/BlurTest.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests/BlurTest.cpp') diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp index 556930e6e9..9806611cfb 100644 --- a/tests/BlurTest.cpp +++ b/tests/BlurTest.cpp @@ -558,4 +558,25 @@ DEF_TEST(BlurAsABlur, reporter) { } } +#if SK_SUPPORT_GPU + +// This exercises the problem discovered in crbug.com/570232. The return value from +// SkBlurMask::BoxBlur wasn't being checked in SkBlurMaskFilter.cpp::GrRRectBlurEffect::Create +DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SmallBoxBlurBug, reporter, ctx) { + + SkImageInfo info = SkImageInfo::MakeN32Premul(128, 128); + SkAutoTUnref surface(SkSurface::NewRenderTarget(ctx, SkSurface::kNo_Budgeted, info)); + SkCanvas* canvas = surface->getCanvas(); + + SkRect r = SkRect::MakeXYWH(10, 10, 100, 100); + SkRRect rr = SkRRect::MakeRectXY(r, 10, 10); + + SkPaint p; + p.setMaskFilter(SkBlurMaskFilter::Create(kNormal_SkBlurStyle, 0.01f))->unref(); + + canvas->drawRRect(rr, p); +} + +#endif + /////////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3