Bitcoin Core  22.99.0
P2P Digital Currency
parse_numbers.cpp
Go to the documentation of this file.
1 // Copyright (c) 2009-2021 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #include <test/fuzz/fuzz.h>
6 #include <util/moneystr.h>
7 #include <util/strencodings.h>
8 
9 #include <string>
10 
11 FUZZ_TARGET(parse_numbers)
12 {
13  const std::string random_string(buffer.begin(), buffer.end());
14 
15  (void)ParseMoney(random_string);
16 
17  uint8_t u8;
18  (void)ParseUInt8(random_string, &u8);
19 
20  uint16_t u16;
21  (void)ParseUInt16(random_string, &u16);
22 
23  int32_t i32;
24  (void)ParseInt32(random_string, &i32);
25  (void)LocaleIndependentAtoi<int>(random_string);
26 
27  uint32_t u32;
28  (void)ParseUInt32(random_string, &u32);
29 
30  int64_t i64;
31  (void)LocaleIndependentAtoi<int64_t>(random_string);
32  (void)ParseFixedPoint(random_string, 3, &i64);
33  (void)ParseInt64(random_string, &i64);
34 
35  uint64_t u64;
36  (void)ParseUInt64(random_string, &u64);
37 }
ParseInt64
bool ParseInt64(const std::string &str, int64_t *out)
Convert string to signed 64-bit integer with strict parse error feedback.
Definition: strencodings.cpp:304
ParseFixedPoint
bool ParseFixedPoint(const std::string &val, int decimals, int64_t *amount_out)
Parse number as fixed point according to JSON number syntax.
Definition: strencodings.cpp:398
moneystr.h
ParseUInt16
bool ParseUInt16(const std::string &str, uint16_t *out)
Convert decimal string to unsigned 16-bit integer with strict parse error feedback.
Definition: strencodings.cpp:314
strencodings.h
u8
unsigned char u8
Definition: crypto_diff_fuzz_chacha20.cpp:21
ParseUInt64
bool ParseUInt64(const std::string &str, uint64_t *out)
Convert decimal string to unsigned 64-bit integer with strict parse error feedback.
Definition: strencodings.cpp:324
ParseInt32
bool ParseInt32(const std::string &str, int32_t *out)
Convert string to signed 32-bit integer with strict parse error feedback.
Definition: strencodings.cpp:299
fuzz.h
ParseMoney
std::optional< CAmount > ParseMoney(const std::string &money_string)
Parse an amount denoted in full coins.
Definition: moneystr.cpp:41
u32
unsigned int u32
Definition: crypto_diff_fuzz_chacha20.cpp:20
ParseUInt8
bool ParseUInt8(const std::string &str, uint8_t *out)
Convert decimal string to unsigned 8-bit integer with strict parse error feedback.
Definition: strencodings.cpp:309
ParseUInt32
bool ParseUInt32(const std::string &str, uint32_t *out)
Convert decimal string to unsigned 32-bit integer with strict parse error feedback.
Definition: strencodings.cpp:319
FUZZ_TARGET
FUZZ_TARGET(parse_numbers)
Definition: parse_numbers.cpp:11