140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon/*
240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * Copyright 2016 Google Inc.
340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon *
440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * Use of this source code is governed by a BSD-style license that can be
540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * found in the LICENSE file.
640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon */
740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon
840ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "Test.h"
940ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "SkCanvas.h"
1040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "SkSurface.h"
1140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon
1240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon// This passes by not crashing.
1340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonstatic void test(SkCanvas* canvas) {
1440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    SkPaint paint;
1540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    paint.setAntiAlias(true);
1640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    canvas->scale(63, 0);
1740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    static const char kTxt[] = "A";
1840ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    canvas->drawText(kTxt, SK_ARRAY_COUNT(kTxt), 50, 50, paint);
1940ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon}
2040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon
2140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonDEF_TEST(skbug5221, r) {
2240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    sk_sp<SkSurface> surface(SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(256, 256)));
2340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    test(surface->getCanvas());
2440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon}
2540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon
2640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#if SK_SUPPORT_GPU
2740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonDEF_GPUTEST_FOR_ALL_CONTEXTS(skbug5221_GPU, r, contextInfo) {
288b7451aaf6b1c71e9d343a4df107893db277b6aabsalomon    sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(contextInfo.grContext(), SkBudgeted::kYes,
297e922765545f42ce691e4f3d5fbbd4e44ba47ff1robertphillips                                                         SkImageInfo::MakeN32Premul(256, 256)));
3040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon    test(surface->getCanvas());
3140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon}
3240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#endif
33