SkStringPrintf and SkString::printf now are no longer limted by a static buffer
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1403803002
Committed: https://skia.googlesource.com/skia/+/606cadd5aac62299ef2e277709b3684cae2bf96c
Review URL: https://codereview.chromium.org/1403803002
diff --git a/tests/StringTest.cpp b/tests/StringTest.cpp
index 9e41c48..8ae7412 100644
--- a/tests/StringTest.cpp
+++ b/tests/StringTest.cpp
@@ -148,6 +148,13 @@
a.appendU64(0x0000000001000000ULL, 15);
REPORTER_ASSERT(reporter, a.equals("000000016777216"));
+ a.printf("%i", 0);
+ REPORTER_ASSERT(reporter, a.equals("0"));
+ a.printf("%g", 3.14);
+ REPORTER_ASSERT(reporter, a.equals("3.14"));
+ a.printf("hello %s", "skia");
+ REPORTER_ASSERT(reporter, a.equals("hello skia"));
+
static const struct {
SkScalar fValue;
const char* fString;
@@ -185,6 +192,26 @@
REPORTER_ASSERT(reporter, buffer[19] == 0);
REPORTER_ASSERT(reporter, buffer[20] == 'a');
+ REPORTER_ASSERT(reporter, SkStringPrintf("%i", 0).equals("0"));
+
+ // 2000 is larger than the static buffer size inside SkString.cpp
+ a = SkStringPrintf("%2000s", " ");
+ REPORTER_ASSERT(reporter, a.size() == 2000);
+ for (size_t i = 0; i < a.size(); ++i) {
+ if (a[i] != ' ') {
+ ERRORF(reporter, "SkStringPrintf fail: a[%d] = '%c'", i, a[i]);
+ break;
+ }
+ }
+ a.reset();
+ a.printf("%2000s", " ");
+ REPORTER_ASSERT(reporter, a.size() == 2000);
+ for (size_t i = 0; i < a.size(); ++i) {
+ if (a[i] != ' ') {
+ ERRORF(reporter, "SkStringPrintf fail: a[%d] = '%c'", i, a[i]);
+ break;
+ }
+ }
}
DEF_TEST(String_SkStrSplit, r) {