Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(644)

Unified Diff: tests/PathOpsOpRectThreadedTest.cpp

Issue 2391133005: remove sprintf (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/PathOpsOpRectThreadedTest.cpp
diff --git a/tests/PathOpsOpRectThreadedTest.cpp b/tests/PathOpsOpRectThreadedTest.cpp
index 4d672e4857b06f3e15916f12d5a22ebc8d5d013b..57615727f8a03fb0af65fa3321eb772448e73d8d 100644
--- a/tests/PathOpsOpRectThreadedTest.cpp
+++ b/tests/PathOpsOpRectThreadedTest.cpp
@@ -6,6 +6,7 @@
*/
#include "PathOpsExtendedTest.h"
#include "PathOpsThreadedCommon.h"
+#include "SkString.h"
// four rects, of four sizes
// for 3 smaller sizes, tall, wide
@@ -14,46 +15,19 @@
// not included, square, tall, wide (2 bits)
// cw or ccw (1 bit)
+static int loopNo = 6;
scroggo 2016/10/06 14:42:00 nit: gLoopNo
+
static void testPathOpsRectsMain(PathOpsThreadState* data)
{
SkASSERT(data);
PathOpsThreadState& state = *data;
- char pathStr[1024]; // gdb: set print elements 400
- bool progress = state.fReporter->verbose(); // FIXME: break out into its own parameter?
- if (progress) {
- sk_bzero(pathStr, sizeof(pathStr));
- }
+ SkString pathStr;
for (int a = 0 ; a < 6; ++a) {
for (int b = a + 1 ; b < 7; ++b) {
for (int c = 0 ; c < 6; ++c) {
for (int d = c + 1 ; d < 7; ++d) {
for (int e = SkPath::kWinding_FillType ; e <= SkPath::kEvenOdd_FillType; ++e) {
for (int f = SkPath::kWinding_FillType ; f <= SkPath::kEvenOdd_FillType; ++f) {
- static int testNum = 6;
- if (progress) {
- char* str = pathStr;
- str += sprintf(str,
- "static void rects%d(skiatest::Reporter* reporter, const char* filename) {\n",
- testNum);
- str += sprintf(str, " SkPath path, pathB;");
- str += sprintf(str, " path.setFillType(SkPath::k%s_FillType);\n",
- e == SkPath::kWinding_FillType ? "Winding" : e == SkPath::kEvenOdd_FillType
- ? "EvenOdd" : "?UNDEFINED");
- str += sprintf(str, " path.addRect(%d, %d, %d, %d,"
- " SkPath::kCW_Direction);\n", state.fA, state.fA, state.fB, state.fB);
- str += sprintf(str, " path.addRect(%d, %d, %d, %d,"
- " SkPath::kCW_Direction);\n", state.fC, state.fC, state.fD, state.fD);
- str += sprintf(str, " pathB.setFillType(SkPath::k%s_FillType);\n",
- f == SkPath::kWinding_FillType ? "Winding" : f == SkPath::kEvenOdd_FillType
- ? "EvenOdd" : "?UNDEFINED");
- str += sprintf(str, " pathB.addRect(%d, %d, %d, %d,"
- " SkPath::kCW_Direction);\n", a, a, b, b);
- str += sprintf(str, " pathB.addRect(%d, %d, %d, %d,"
- " SkPath::kCW_Direction);\n", c, c, d, d);
- str += sprintf(str,
- " testPathOp(reporter, path, pathB, kDifference_SkPathOp, filename);\n");
- str += sprintf(str, "}\n\n");
- }
SkPath pathA, pathB;
pathA.setFillType((SkPath::FillType) e);
pathA.addRect(SkIntToScalar(state.fA), SkIntToScalar(state.fA), SkIntToScalar(state.fB),
@@ -68,13 +42,40 @@ static void testPathOpsRectsMain(PathOpsThreadState* data)
SkIntToScalar(d), SkPath::kCW_Direction);
pathB.close();
for (int op = 0 ; op <= kXOR_SkPathOp; ++op) {
- if (progress) {
- outputProgress(state.fPathStr, pathStr, (SkPathOp) op);
+ if (state.fReporter->verbose()) {
+ pathStr.printf(
+ "static void rects%d(skiatest::Reporter* reporter,"
+ "const char* filename) {\n", loopNo);
+ pathStr.appendf(" SkPath path, pathB;");
+ pathStr.appendf(" path.setFillType(SkPath::k%s_FillType);\n",
+ e == SkPath::kWinding_FillType ? "Winding" : e == SkPath::kEvenOdd_FillType
+ ? "EvenOdd" : "?UNDEFINED");
+ pathStr.appendf(" path.addRect(%d, %d, %d, %d,"
+ " SkPath::kCW_Direction);\n", state.fA, state.fA, state.fB, state.fB);
+ pathStr.appendf(" path.addRect(%d, %d, %d, %d,"
+ " SkPath::kCW_Direction);\n", state.fC, state.fC, state.fD, state.fD);
+ pathStr.appendf(" pathB.setFillType(SkPath::k%s_FillType);\n",
+ f == SkPath::kWinding_FillType ? "Winding" : f == SkPath::kEvenOdd_FillType
+ ? "EvenOdd" : "?UNDEFINED");
+ pathStr.appendf(" pathB.addRect(%d, %d, %d, %d,"
+ " SkPath::kCW_Direction);\n", a, a, b, b);
+ pathStr.appendf(" pathB.addRect(%d, %d, %d, %d,"
+ " SkPath::kCW_Direction);\n", c, c, d, d);
+ pathStr.appendf(" testPathOp(reporter, path, pathB, %s, filename);\n",
+ SkPathOpsDebug::OpStr((SkPathOp) op));
+ pathStr.appendf("}\n\n");
+ outputProgress(state.fPathStr, pathStr.c_str(), (SkPathOp) op);
+ }
+ if (!testPathOp(state.fReporter, pathA, pathB, (SkPathOp) op, "rects")) {
+ if (state.fReporter->verbose()) {
+ ++loopNo;
+ goto skipToNext;
+ }
}
- testPathOp(state.fReporter, pathA, pathB, (SkPathOp) op, "rects");
}
}
}
+skipToNext: ;
}
}
}

Powered by Google App Engine
This is Rietveld 408576698