Index: tests/DrawTextTest.cpp |
diff --git a/tests/DrawTextTest.cpp b/tests/DrawTextTest.cpp |
index 3a96c4ff2d8cb3621c952ccac24ca0a2495e17c2..f2da450fe86b14a47a2fa0d3ac777e0d0819611b 100644 |
--- a/tests/DrawTextTest.cpp |
+++ b/tests/DrawTextTest.cpp |
@@ -74,33 +74,38 @@ DEF_TEST(DrawText, reporter) { |
create(&drawPosTextBitmap, drawPosTextRect); |
SkCanvas drawPosTextCanvas(drawPosTextBitmap); |
- for (float offsetY = 0.0f; offsetY < 1.0f; offsetY += (1.0f / 16.0f)) { |
- for (float offsetX = 0.0f; offsetX < 1.0f; offsetX += (1.0f / 16.0f)) { |
- SkPoint point = SkPoint::Make(25.0f + offsetX, |
- 25.0f + offsetY); |
- |
- for (int align = 0; align < SkPaint::kAlignCount; ++align) { |
- paint.setTextAlign(static_cast<SkPaint::Align>(align)); |
- |
- for (unsigned int flags = 0; flags < (1 << 3); ++flags) { |
- static const unsigned int antiAliasFlag = 1; |
- static const unsigned int subpixelFlag = 1 << 1; |
- static const unsigned int lcdFlag = 1 << 2; |
- |
- paint.setAntiAlias(SkToBool(flags & antiAliasFlag)); |
- paint.setSubpixelText(SkToBool(flags & subpixelFlag)); |
- paint.setLCDRenderText(SkToBool(flags & lcdFlag)); |
- |
- // Test: drawText and drawPosText draw the same. |
- drawBG(&drawTextCanvas); |
- drawTextCanvas.drawText("A", 1, point.fX, point.fY, paint); |
- |
- drawBG(&drawPosTextCanvas); |
- drawPosTextCanvas.drawPosText("A", 1, &point, paint); |
- |
- REPORTER_ASSERT(reporter, |
- compare(drawTextBitmap, drawTextRect, |
- drawPosTextBitmap, drawPosTextRect)); |
+ // Two test cases "A" for the normal path through the code, and " " to check the |
+ // early return path. |
+ const char* cases[] = {"A", " "}; |
+ for (auto c : cases) { |
+ for (float offsetY = 0.0f; offsetY < 1.0f; offsetY += (1.0f / 16.0f)) { |
+ for (float offsetX = 0.0f; offsetX < 1.0f; offsetX += (1.0f / 16.0f)) { |
+ SkPoint point = SkPoint::Make(25.0f + offsetX, |
+ 25.0f + offsetY); |
+ |
+ for (int align = 0; align < SkPaint::kAlignCount; ++align) { |
+ paint.setTextAlign(static_cast<SkPaint::Align>(align)); |
+ |
+ for (unsigned int flags = 0; flags < (1 << 3); ++flags) { |
+ static const unsigned int antiAliasFlag = 1; |
+ static const unsigned int subpixelFlag = 1 << 1; |
+ static const unsigned int lcdFlag = 1 << 2; |
+ |
+ paint.setAntiAlias(SkToBool(flags & antiAliasFlag)); |
+ paint.setSubpixelText(SkToBool(flags & subpixelFlag)); |
+ paint.setLCDRenderText(SkToBool(flags & lcdFlag)); |
+ |
+ // Test: drawText and drawPosText draw the same. |
+ drawBG(&drawTextCanvas); |
+ drawTextCanvas.drawText(c, 1, point.fX, point.fY, paint); |
+ |
+ drawBG(&drawPosTextCanvas); |
+ drawPosTextCanvas.drawPosText(c, 1, &point, paint); |
+ |
+ REPORTER_ASSERT(reporter, |
+ compare(drawTextBitmap, drawTextRect, |
+ drawPosTextBitmap, drawPosTextRect)); |
+ } |
} |
} |
} |