Cover all public methods in cfgas_stringformatter fuzzer
Change-Id: Id6db5349d4a892941b06ccf9d45b0c83a807fe82
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/52310
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/testing/fuzzers/pdf_cfgas_stringformatter_fuzzer.cc b/testing/fuzzers/pdf_cfgas_stringformatter_fuzzer.cc
index bb1d064..b6a6663 100644
--- a/testing/fuzzers/pdf_cfgas_stringformatter_fuzzer.cc
+++ b/testing/fuzzers/pdf_cfgas_stringformatter_fuzzer.cc
@@ -31,7 +31,7 @@
mgrs.push_back(pdfium::MakeUnique<CXFA_LocaleMgr>(nullptr, locale));
}
- uint8_t test_selector = data[0] % 3;
+ uint8_t test_selector = data[0] % 10;
uint8_t locale_selector = data[1] % FX_ArraySize(kLocales);
uint8_t type_selector = data[2] % FX_ArraySize(kTypes);
data += 3;
@@ -43,9 +43,12 @@
WideString::FromLatin1(ByteStringView(data, pattern_len));
WideString value =
WideString::FromLatin1(ByteStringView(data + pattern_len, value_len));
- WideString result;
+
auto fmt = pdfium::MakeUnique<CFGAS_StringFormatter>(
mgrs[locale_selector].get(), pattern);
+
+ WideString result;
+ CFX_DateTime dt;
switch (test_selector) {
case 0:
fmt->FormatText(value, &result);
@@ -56,6 +59,27 @@
case 2:
fmt->FormatDateTime(value, kTypes[type_selector], &result);
break;
+ case 3:
+ fmt->FormatNull(&result);
+ break;
+ case 4:
+ fmt->FormatZero(&result);
+ break;
+ case 5:
+ fmt->ParseText(value, &result);
+ break;
+ case 6:
+ fmt->ParseNum(value, &result);
+ break;
+ case 7:
+ fmt->ParseDateTime(value, kTypes[type_selector], &dt);
+ break;
+ case 8:
+ fmt->ParseNull(value);
+ break;
+ case 9:
+ fmt->ParseZero(value);
+ break;
}
return 0;
}