regression unittest for the fix in rev. 3558 (handling nan in antihairpaths)

git-svn-id: http://skia.googlecode.com/svn/trunk@3562 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@google.com 2012-03-30 17:43:33 +00:00
parent 193395c7a3
commit 6de0bfc51a

View File

@ -9,6 +9,28 @@
#include "SkBitmap.h"
#include "SkCanvas.h"
static void test_nan_antihair(skiatest::Reporter* reporter) {
SkBitmap bm;
bm.setConfig(SkBitmap::kARGB_8888_Config, 20, 20);
bm.allocPixels();
SkCanvas canvas(bm);
SkPath path;
path.moveTo(0, 0);
path.lineTo(10, SK_ScalarNaN);
SkPaint paint;
paint.setAntiAlias(true);
paint.setStyle(SkPaint::kStroke_Style);
// before our fix to SkScan_Antihair.cpp to check for integral NaN (0x800...)
// this would trigger an assert/crash.
//
// see rev. 3558
canvas.drawPath(path, paint);
}
static bool check_for_all_zeros(const SkBitmap& bm) {
SkAutoLockPixels alp(bm);
@ -48,6 +70,8 @@ static void TestDrawBitmapRect(skiatest::Reporter* reporter) {
// ensure that we draw nothing if srcR does not intersect the bitmap
REPORTER_ASSERT(reporter, check_for_all_zeros(dst));
test_nan_antihair(reporter);
}
#include "TestClassDef.h"