21 const bilingual_str bilingual_string{format_string, format_string};
23 const int digits_in_format_specifier = std::count_if(format_string.begin(), format_string.end(),
IsDigit);
32 if (format_string.find(
'%') != std::string::npos && digits_in_format_specifier >= 7) {
40 if (format_string.find(
'%') != std::string::npos && format_string.find(
'$') != std::string::npos && format_string.find(
'*') != std::string::npos && digits_in_format_specifier > 0) {
55 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeRandomLengthString(32));
56 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeRandomLengthString(32));
59 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeRandomLengthString(32).c_str());
60 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeRandomLengthString(32).c_str());
63 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<
signed char>());
64 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<
signed char>());
67 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<
unsigned char>());
68 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<
unsigned char>());
71 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<
char>());
72 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<
char>());
75 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeBool());
81 if (format_string.find(
'%') != std::string::npos && format_string.find(
'c') != std::string::npos) {
88 if (format_string.find(
'%') != std::string::npos && format_string.find(
'*') != std::string::npos) {
101 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeFloatingPoint<
float>());
102 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeFloatingPoint<
float>());
105 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeFloatingPoint<
double>());
106 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeFloatingPoint<
double>());
109 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<int16_t>());
110 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<int16_t>());
113 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<uint16_t>());
114 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<uint16_t>());
117 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<int32_t>());
118 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<int32_t>());
121 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<uint32_t>());
122 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<uint32_t>());
125 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<int64_t>());
126 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<int64_t>());
129 (void)
strprintf(format_string, fuzzed_data_provider.ConsumeIntegral<uint64_t>());
130 (void)
tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral<uint64_t>());
constexpr bool IsDigit(char c)
Tests if the given character is a decimal digit.
std::string ConsumeRandomLengthString(size_t max_length)
size_t CallOneOf(FuzzedDataProvider &fuzzed_data_provider, Callables... callables)