aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/RoundRectTest.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2015-03-13 09:53:01 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-13 09:53:01 -0700
commit2a679ae8f5b80a337f67783dbc0a447a9f4312c7 (patch)
tree2ba8d9530da2b474fc01dee3d5c5c627db08d959 /tests/RoundRectTest.cpp
parentc1b11f1db69bea8d64ebf656ae92ea9ec6dbb40f (diff)
Fix bug with very large round rects with large radii
Diffstat (limited to 'tests/RoundRectTest.cpp')
-rw-r--r--tests/RoundRectTest.cpp31
1 files changed, 24 insertions, 7 deletions
diff --git a/tests/RoundRectTest.cpp b/tests/RoundRectTest.cpp
index 9920d1013b..8d8f76fbf0 100644
--- a/tests/RoundRectTest.cpp
+++ b/tests/RoundRectTest.cpp
@@ -9,12 +9,29 @@
#include "SkRRect.h"
#include "Test.h"
-static void test_tricky_radii_crbug_458522(skiatest::Reporter* reporter) {
- SkRRect rr;
- const SkRect bounds = { 3709, 3709, 3709 + 7402, 3709 + 29825 };
- const SkScalar rad = 12814;
- const SkVector vec[] = { { rad, rad }, { 0, rad }, { rad, rad }, { 0, rad } };
- rr.setRectRadii(bounds, vec);
+static void test_tricky_radii(skiatest::Reporter* reporter) {
+ {
+ // crbug.com/458522
+ SkRRect rr;
+ const SkRect bounds = { 3709, 3709, 3709 + 7402, 3709 + 29825 };
+ const SkScalar rad = 12814;
+ const SkVector vec[] = { { rad, rad }, { 0, rad }, { rad, rad }, { 0, rad } };
+ rr.setRectRadii(bounds, vec);
+ }
+
+ {
+ // crbug.com//463920
+ SkRect r = SkRect::MakeLTRB(0, 0, 1009, 33554432.0);
+ SkVector radii[4] = {
+ { 13.0f, 8.0f }, { 170.0f, 2.0 }, { 256.0f, 33554432.0 }, { 110.0f, 5.0f }
+ };
+ SkRRect rr;
+ rr.setRectRadii(r, radii);
+
+ REPORTER_ASSERT(reporter, (double) rr.radii(SkRRect::kUpperRight_Corner).fY +
+ (double) rr.radii(SkRRect::kLowerRight_Corner).fY <=
+ rr.height());
+ }
}
static void test_empty_crbug_458524(skiatest::Reporter* reporter) {
@@ -660,6 +677,6 @@ DEF_TEST(RoundRect, reporter) {
test_round_rect_contains_rect(reporter);
test_round_rect_transform(reporter);
test_issue_2696(reporter);
- test_tricky_radii_crbug_458522(reporter);
+ test_tricky_radii(reporter);
test_empty_crbug_458524(reporter);
}