From ef2c7c705748e4c563c468f667dae7a9a38ffabc Mon Sep 17 00:00:00 2001 From: bsalomon Date: Thu, 17 Dec 2015 15:33:13 -0800 Subject: Make SkMatrix::get*Scale[s]() fail on NaN BUG=skia:4718 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1532963002 Review URL: https://codereview.chromium.org/1532963002 --- tests/MatrixTest.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'tests/MatrixTest.cpp') diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp index edeb649a66..f08613f22e 100644 --- a/tests/MatrixTest.cpp +++ b/tests/MatrixTest.cpp @@ -205,11 +205,18 @@ static void test_matrix_min_max_scale(skiatest::Reporter* reporter) { perspX.setPerspX(SK_Scalar1 / 1000); REPORTER_ASSERT(reporter, -SK_Scalar1 == perspX.getMinScale()); REPORTER_ASSERT(reporter, -SK_Scalar1 == perspX.getMaxScale()); - // Verify that getMinMaxScales() doesn't update the scales array on failure. - scales[0] = -5; - scales[1] = -5; success = perspX.getMinMaxScales(scales); - REPORTER_ASSERT(reporter, !success && -5 * SK_Scalar1 == scales[0] && -5 * SK_Scalar1 == scales[1]); + REPORTER_ASSERT(reporter, !success); + + // skbug.com/4718 + SkMatrix big; + big.setAll(2.39394089e+36f, 8.85347779e+36f, 9.26526204e+36f, + 3.9159619e+36f, 1.44823453e+37f, 1.51559342e+37f, + 0.f, 0.f, 1.f); + REPORTER_ASSERT(reporter, -SK_Scalar1 == perspX.getMinScale()); + REPORTER_ASSERT(reporter, -SK_Scalar1 == perspX.getMaxScale()); + success = big.getMinMaxScales(scales); + REPORTER_ASSERT(reporter, !success); SkMatrix perspY; perspY.reset(); -- cgit v1.2.3