| Index: tests/RectTest.cpp
|
| diff --git a/tests/RectTest.cpp b/tests/RectTest.cpp
|
| index be77a87406168a4bae5463c96c38bf8d114c4bfa..1ced83f7e362defdca048bcd8b0d8fa1152c32c7 100644
|
| --- a/tests/RectTest.cpp
|
| +++ b/tests/RectTest.cpp
|
| @@ -46,6 +46,45 @@ static void test_stroke_width_clipping(skiatest::Reporter* reporter) {
|
| REPORTER_ASSERT(reporter, has_green_pixels(bm));
|
| }
|
|
|
| +static void test_skbug4406(skiatest::Reporter* reporter) {
|
| + SkBitmap bm;
|
| + bm.allocN32Pixels(10, 10);
|
| + bm.eraseColor(SK_ColorTRANSPARENT);
|
| +
|
| + SkCanvas canvas(bm);
|
| + const SkRect r = { 1.5f, 1, 3.5f, 3 };
|
| + // draw filled green rect first
|
| + SkPaint paint;
|
| + paint.setStyle(SkPaint::kFill_Style);
|
| + paint.setColor(0xff00ff00);
|
| + paint.setStrokeWidth(1);
|
| + paint.setAntiAlias(true);
|
| + canvas.drawRect(r, paint);
|
| +
|
| + // paint black with stroke rect (that asserts in bug 4406)
|
| + // over the filled rect, it should cover it
|
| + paint.setStyle(SkPaint::kStroke_Style);
|
| + paint.setColor(0xff000000);
|
| + paint.setStrokeWidth(1);
|
| + canvas.drawRect(r, paint);
|
| + REPORTER_ASSERT(reporter, !has_green_pixels(bm));
|
| +
|
| + // do it again with thinner stroke
|
| + paint.setStyle(SkPaint::kFill_Style);
|
| + paint.setColor(0xff00ff00);
|
| + paint.setStrokeWidth(1);
|
| + paint.setAntiAlias(true);
|
| + canvas.drawRect(r, paint);
|
| + // paint black with stroke rect (that asserts in bug 4406)
|
| + // over the filled rect, it doesnt cover it completelly with thinner stroke
|
| + paint.setStyle(SkPaint::kStroke_Style);
|
| + paint.setColor(0xff000000);
|
| + paint.setStrokeWidth(0.99f);
|
| + canvas.drawRect(r, paint);
|
| + REPORTER_ASSERT(reporter, has_green_pixels(bm));
|
| +}
|
| +
|
| DEF_TEST(Rect, reporter) {
|
| test_stroke_width_clipping(reporter);
|
| + test_skbug4406(reporter);
|
| }
|
|
|