Branch data Line data Source code
1 : : // Copyright (c) 2019-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 <core_io.h> 6 : : #include <primitives/block.h> 7 : : #include <pubkey.h> 8 : : #include <rpc/util.h> 9 : : #include <test/fuzz/fuzz.h> 10 : : #include <uint256.h> 11 : : #include <univalue.h> 12 : : #include <util/strencodings.h> 13 : : 14 : : #include <cassert> 15 : : #include <cstdint> 16 : : #include <string> 17 [ + - ]: 2 : #include <vector> 18 [ + - ]: 2 : 19 [ - + ]: 4 : FUZZ_TARGET(hex) 20 : : { 21 [ # # ]: 0 : const std::string random_hex_string(buffer.begin(), buffer.end()); 22 [ # # ]: 0 : const std::vector<unsigned char> data = ParseHex(random_hex_string); 23 [ # # ]: 0 : const std::vector<std::byte> bytes{ParseHex<std::byte>(random_hex_string)}; 24 [ # # # # : 0 : assert(AsBytes(Span{data}) == Span{bytes}); # # ] 25 [ + - # # : 2 : const std::string hex_data = HexStr(data); # # ] 26 [ # # # # ]: 0 : if (IsHex(random_hex_string)) { 27 [ # # # # ]: 2 : assert(ToLower(random_hex_string) == hex_data); 28 : 0 : } 29 [ # # ]: 0 : (void)IsHexNumber(random_hex_string); 30 [ # # ]: 0 : uint256 result; 31 [ # # ]: 0 : (void)ParseHashStr(random_hex_string, result); 32 [ # # ]: 0 : (void)uint256S(random_hex_string); 33 : : try { 34 [ # # ]: 0 : (void)HexToPubKey(random_hex_string); 35 [ # # ]: 0 : } catch (const UniValue&) { 36 [ # # ]: 0 : } 37 [ # # ]: 0 : CBlockHeader block_header; 38 [ # # ]: 0 : (void)DecodeHexBlockHeader(block_header, random_hex_string); 39 [ # # ]: 0 : CBlock block; 40 [ # # ]: 0 : (void)DecodeHexBlk(block, random_hex_string); 41 : 0 : }