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; }