diff --git a/src/test/fuzz/string.cpp b/src/test/fuzz/string.cpp index 49bee0e81..3c1f911f7 100644 --- a/src/test/fuzz/string.cpp +++ b/src/test/fuzz/string.cpp @@ -119,4 +119,10 @@ void test_one_input(const std::vector& buffer) int64_t amount_out; (void)ParseFixedPoint(random_string_1, fuzzed_data_provider.ConsumeIntegralInRange(0, 1024), &amount_out); } + { + (void)Untranslated(random_string_1); + const bilingual_str bs1{random_string_1, random_string_2}; + const bilingual_str bs2{random_string_2, random_string_1}; + (void)(bs1 + bs2); + } } diff --git a/src/test/fuzz/strprintf.cpp b/src/test/fuzz/strprintf.cpp index d5be1070b..29064bc45 100644 --- a/src/test/fuzz/strprintf.cpp +++ b/src/test/fuzz/strprintf.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -16,6 +17,7 @@ void test_one_input(const std::vector& buffer) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); const std::string format_string = fuzzed_data_provider.ConsumeRandomLengthString(64); + const bilingual_str bilingual_string{format_string, format_string}; const int digits_in_format_specifier = std::count_if(format_string.begin(), format_string.end(), IsDigit); @@ -47,50 +49,62 @@ void test_one_input(const std::vector& buffer) try { (void)strprintf(format_string, (signed char*)nullptr); + (void)tinyformat::format(bilingual_string, (signed char*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (unsigned char*)nullptr); + (void)tinyformat::format(bilingual_string, (unsigned char*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (void*)nullptr); + (void)tinyformat::format(bilingual_string, (void*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (bool*)nullptr); + (void)tinyformat::format(bilingual_string, (bool*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (float*)nullptr); + (void)tinyformat::format(bilingual_string, (float*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (double*)nullptr); + (void)tinyformat::format(bilingual_string, (double*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (int16_t*)nullptr); + (void)tinyformat::format(bilingual_string, (int16_t*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (uint16_t*)nullptr); + (void)tinyformat::format(bilingual_string, (uint16_t*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (int32_t*)nullptr); + (void)tinyformat::format(bilingual_string, (int32_t*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (uint32_t*)nullptr); + (void)tinyformat::format(bilingual_string, (uint32_t*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (int64_t*)nullptr); + (void)tinyformat::format(bilingual_string, (int64_t*)nullptr); } catch (const tinyformat::format_error&) { } try { (void)strprintf(format_string, (uint64_t*)nullptr); + (void)tinyformat::format(bilingual_string, (uint64_t*)nullptr); } catch (const tinyformat::format_error&) { } @@ -98,21 +112,27 @@ void test_one_input(const std::vector& buffer) switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 5)) { case 0: (void)strprintf(format_string, fuzzed_data_provider.ConsumeRandomLengthString(32)); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeRandomLengthString(32)); break; case 1: (void)strprintf(format_string, fuzzed_data_provider.ConsumeRandomLengthString(32).c_str()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeRandomLengthString(32).c_str()); break; case 2: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 3: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 4: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 5: (void)strprintf(format_string, fuzzed_data_provider.ConsumeBool()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeBool()); break; } } catch (const tinyformat::format_error&) { @@ -138,27 +158,35 @@ void test_one_input(const std::vector& buffer) switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 7)) { case 0: (void)strprintf(format_string, fuzzed_data_provider.ConsumeFloatingPoint()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeFloatingPoint()); break; case 1: (void)strprintf(format_string, fuzzed_data_provider.ConsumeFloatingPoint()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeFloatingPoint()); break; case 2: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 3: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 4: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 5: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 6: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; case 7: (void)strprintf(format_string, fuzzed_data_provider.ConsumeIntegral()); + (void)tinyformat::format(bilingual_string, fuzzed_data_provider.ConsumeIntegral()); break; } } catch (const tinyformat::format_error&) {