Skip to content

Commit 1d324ce

Browse files
tests: Fuzz additional functions in the integer fuzzing harness
1 parent 4fe4de6 commit 1d324ce

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/test/fuzz/integer.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <test/fuzz/FuzzedDataProvider.h>
2424
#include <test/fuzz/fuzz.h>
2525
#include <uint256.h>
26+
#include <util/moneystr.h>
2627
#include <util/strencodings.h>
2728
#include <util/system.h>
2829
#include <util/time.h>
@@ -76,11 +77,19 @@ void test_one_input(const std::vector<uint8_t>& buffer)
7677
(void)DecompressAmount(u64);
7778
(void)FormatISO8601Date(i64);
7879
(void)FormatISO8601DateTime(i64);
80+
// FormatMoney(i) not defined when i == std::numeric_limits<int64_t>::min()
81+
if (i64 != std::numeric_limits<int64_t>::min()) {
82+
int64_t parsed_money;
83+
if (ParseMoney(FormatMoney(i64), parsed_money)) {
84+
assert(parsed_money == i64);
85+
}
86+
}
7987
(void)GetSizeOfCompactSize(u64);
8088
(void)GetSpecialScriptSize(u32);
8189
// (void)GetVirtualTransactionSize(i64, i64); // function defined only for a subset of int64_t inputs
8290
// (void)GetVirtualTransactionSize(i64, i64, u32); // function defined only for a subset of int64_t/uint32_t inputs
8391
(void)HexDigit(ch);
92+
(void)MoneyRange(i64);
8493
(void)i64tostr(i64);
8594
(void)IsDigit(ch);
8695
(void)IsSpace(ch);
@@ -106,6 +115,14 @@ void test_one_input(const std::vector<uint8_t>& buffer)
106115
(void)SipHashUint256(u64, u64, u256);
107116
(void)SipHashUint256Extra(u64, u64, u256, u32);
108117
(void)ToLower(ch);
118+
(void)ToUpper(ch);
119+
// ValueFromAmount(i) not defined when i == std::numeric_limits<int64_t>::min()
120+
if (i64 != std::numeric_limits<int64_t>::min()) {
121+
int64_t parsed_money;
122+
if (ParseMoney(ValueFromAmount(i64).getValStr(), parsed_money)) {
123+
assert(parsed_money == i64);
124+
}
125+
}
109126

110127
const arith_uint256 au256 = UintToArith256(u256);
111128
assert(ArithToUint256(au256) == u256);

0 commit comments

Comments
 (0)