/root/bitcoin/src/test/fuzz/util.h
| Line | Count | Source | 
| 1 |  | // Copyright (c) 2009-2022 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 |  | #ifndef BITCOIN_TEST_FUZZ_UTIL_H | 
| 6 |  | #define BITCOIN_TEST_FUZZ_UTIL_H | 
| 7 |  |  | 
| 8 |  | #include <addresstype.h> | 
| 9 |  | #include <arith_uint256.h> | 
| 10 |  | #include <coins.h> | 
| 11 |  | #include <compat/compat.h> | 
| 12 |  | #include <consensus/amount.h> | 
| 13 |  | #include <consensus/consensus.h> | 
| 14 |  | #include <key.h> | 
| 15 |  | #include <merkleblock.h> | 
| 16 |  | #include <primitives/transaction.h> | 
| 17 |  | #include <script/script.h> | 
| 18 |  | #include <serialize.h> | 
| 19 |  | #include <streams.h> | 
| 20 |  | #include <test/fuzz/FuzzedDataProvider.h> | 
| 21 |  | #include <test/fuzz/fuzz.h> | 
| 22 |  | #include <uint256.h> | 
| 23 |  |  | 
| 24 |  | #include <algorithm> | 
| 25 |  | #include <array> | 
| 26 |  | #include <cstdint> | 
| 27 |  | #include <cstdio> | 
| 28 |  | #include <optional> | 
| 29 |  | #include <string> | 
| 30 |  | #include <vector> | 
| 31 |  |  | 
| 32 |  | class PeerManager; | 
| 33 |  |  | 
| 34 |  | template <typename... Callables> | 
| 35 |  | size_t CallOneOf(FuzzedDataProvider& fuzzed_data_provider, Callables... callables) | 
| 36 | 0 | { | 
| 37 | 0 |     constexpr size_t call_size{sizeof...(callables)}; | 
| 38 | 0 |     static_assert(call_size >= 1); | 
| 39 | 0 |     const size_t call_index{fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, call_size - 1)}; | 
| 40 |  | 
 | 
| 41 | 0 |     size_t i{0}; | 
| 42 | 0 |     ((i++ == call_index ? callables() : void()), ...); | 
| 43 | 0 |     return call_size; | 
| 44 | 0 | } Unexecuted instantiation: addrman.cpp:_Z9CallOneOfIJZ19addrman_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z19addrman_fuzz_targetS2_E3$_1Z19addrman_fuzz_targetS2_E3$_2Z19addrman_fuzz_targetS2_E3$_3Z19addrman_fuzz_targetS2_E3$_4Z19addrman_fuzz_targetS2_E3$_5Z19addrman_fuzz_targetS2_E3$_6EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: autofile.cpp:_Z9CallOneOfIJZ20autofile_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z20autofile_fuzz_targetS2_E3$_1Z20autofile_fuzz_targetS2_E3$_2Z20autofile_fuzz_targetS2_E3$_3Z20autofile_fuzz_targetS2_E3$_4Z20autofile_fuzz_targetS2_E3$_5EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: _Z9CallOneOfIJZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_EUlvE_ZS0_IS1_EvS3_S5_EUlvE0_ZS0_IS1_EvS3_S5_EUlvE1_ZS0_IS1_EvS3_S5_EUlvE2_ZS0_IS1_EvS3_S5_EUlvE3_ZS0_IS1_EvS3_S5_EUlvE4_ZS0_IS1_EvS3_S5_EUlvE5_ZS0_IS1_EvS3_S5_EUlvE6_ZS0_IS1_EvS3_S5_EUlvE7_ZS0_IS1_EvS3_S5_EUlvE8_ZS0_IS1_EvS3_S5_EUlvE9_EEmS3_DpT_Unexecuted instantiation: _Z9CallOneOfIJZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_EUlvE_ZS0_IS1_EvS3_S5_EUlvE0_ZS0_IS1_EvS3_S5_EUlvE1_ZS0_IS1_EvS3_S5_EUlvE2_ZS0_IS1_EvS3_S5_EUlvE3_ZS0_IS1_EvS3_S5_EUlvE4_ZS0_IS1_EvS3_S5_EUlvE5_ZS0_IS1_EvS3_S5_EUlvE6_ZS0_IS1_EvS3_S5_EUlvE7_ZS0_IS1_EvS3_S5_EUlvE8_ZS0_IS1_EvS3_S5_EUlvE9_EEmS3_DpT_Unexecuted instantiation: banman.cpp:_Z9CallOneOfIJZ18banman_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z18banman_fuzz_targetS2_E3$_1Z18banman_fuzz_targetS2_E3$_2Z18banman_fuzz_targetS2_E3$_3Z18banman_fuzz_targetS2_E3$_4Z18banman_fuzz_targetS2_E3$_5Z18banman_fuzz_targetS2_E3$_6Z18banman_fuzz_targetS2_E3$_7Z18banman_fuzz_targetS2_E3$_8Z18banman_fuzz_targetS2_E3$_9Z18banman_fuzz_targetS2_E4$_10EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: bitdeque.cpp:_Z9CallOneOfIJZ20bitdeque_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z20bitdeque_fuzz_targetS2_E3$_1Z20bitdeque_fuzz_targetS2_E3$_2Z20bitdeque_fuzz_targetS2_E3$_3Z20bitdeque_fuzz_targetS2_E3$_4Z20bitdeque_fuzz_targetS2_E3$_5Z20bitdeque_fuzz_targetS2_E3$_6Z20bitdeque_fuzz_targetS2_E3$_7Z20bitdeque_fuzz_targetS2_E3$_8Z20bitdeque_fuzz_targetS2_E3$_9Z20bitdeque_fuzz_targetS2_E4$_10Z20bitdeque_fuzz_targetS2_E4$_11Z20bitdeque_fuzz_targetS2_E4$_12Z20bitdeque_fuzz_targetS2_E4$_13Z20bitdeque_fuzz_targetS2_E4$_14Z20bitdeque_fuzz_targetS2_E4$_15Z20bitdeque_fuzz_targetS2_E4$_16Z20bitdeque_fuzz_targetS2_E4$_17Z20bitdeque_fuzz_targetS2_E4$_18Z20bitdeque_fuzz_targetS2_E4$_19Z20bitdeque_fuzz_targetS2_E4$_20Z20bitdeque_fuzz_targetS2_E4$_21Z20bitdeque_fuzz_targetS2_E4$_22Z20bitdeque_fuzz_targetS2_E4$_23Z20bitdeque_fuzz_targetS2_E4$_24Z20bitdeque_fuzz_targetS2_E4$_25Z20bitdeque_fuzz_targetS2_E4$_26Z20bitdeque_fuzz_targetS2_E4$_27Z20bitdeque_fuzz_targetS2_E4$_28Z20bitdeque_fuzz_targetS2_E4$_29Z20bitdeque_fuzz_targetS2_E4$_30Z20bitdeque_fuzz_targetS2_E4$_31Z20bitdeque_fuzz_targetS2_E4$_32Z20bitdeque_fuzz_targetS2_E4$_33Z20bitdeque_fuzz_targetS2_E4$_34Z20bitdeque_fuzz_targetS2_E4$_35Z20bitdeque_fuzz_targetS2_E4$_36Z20bitdeque_fuzz_targetS2_E4$_37Z20bitdeque_fuzz_targetS2_E4$_38Z20bitdeque_fuzz_targetS2_E4$_39Z20bitdeque_fuzz_targetS2_E4$_40Z20bitdeque_fuzz_targetS2_E4$_41Z20bitdeque_fuzz_targetS2_E4$_42Z20bitdeque_fuzz_targetS2_E4$_43Z20bitdeque_fuzz_targetS2_E4$_44Z20bitdeque_fuzz_targetS2_E4$_45EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: bloom_filter.cpp:_Z9CallOneOfIJZ24bloom_filter_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z24bloom_filter_fuzz_targetS2_E3$_1Z24bloom_filter_fuzz_targetS2_E3$_2Z24bloom_filter_fuzz_targetS2_E3$_3EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: buffered_file.cpp:_Z9CallOneOfIJZ25buffered_file_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z25buffered_file_fuzz_targetS2_E3$_1Z25buffered_file_fuzz_targetS2_E3$_2Z25buffered_file_fuzz_targetS2_E3$_3Z25buffered_file_fuzz_targetS2_E3$_4EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: _Z9CallOneOfIJZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_EUlvE_ZS0_IS1_EvS3_S5_EUlvE0_ZS0_IS1_EvS3_S5_EUlvE1_ZS0_IS1_EvS3_S5_EUlvE2_ZS0_IS1_EvS3_S5_EUlvE3_ZS0_IS1_EvS3_S5_EUlvE4_ZS0_IS1_EvS3_S5_EUlvE5_ZS0_IS1_EvS3_S5_EUlvE6_ZS0_IS1_EvS3_S5_EUlvE7_ZS0_IS1_EvS3_S5_EUlvE8_ZS0_IS1_EvS3_S5_EUlvE9_EEmS3_DpT_Unexecuted instantiation: coins_view.cpp:_Z9CallOneOfIJZ13TestCoinsViewR18FuzzedDataProviderR10CCoinsViewbE3$_0Z13TestCoinsViewS1_S3_bE3$_1Z13TestCoinsViewS1_S3_bE3$_2Z13TestCoinsViewS1_S3_bE3$_3Z13TestCoinsViewS1_S3_bE3$_4Z13TestCoinsViewS1_S3_bE3$_5Z13TestCoinsViewS1_S3_bE3$_6Z13TestCoinsViewS1_S3_bE3$_7Z13TestCoinsViewS1_S3_bE3$_8Z13TestCoinsViewS1_S3_bE3$_9Z13TestCoinsViewS1_S3_bE4$_10EEmS1_DpT_Unexecuted instantiation: coins_view.cpp:_Z9CallOneOfIJZ13TestCoinsViewR18FuzzedDataProviderR10CCoinsViewbE4$_11Z13TestCoinsViewS1_S3_bE4$_12Z13TestCoinsViewS1_S3_bE4$_13Z13TestCoinsViewS1_S3_bE4$_14Z13TestCoinsViewS1_S3_bE4$_15Z13TestCoinsViewS1_S3_bE4$_16EEmS1_DpT_Unexecuted instantiation: coinscache_sim.cpp:_Z9CallOneOfIJZ26coinscache_sim_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_2Z26coinscache_sim_fuzz_targetS2_E3$_3Z26coinscache_sim_fuzz_targetS2_E3$_4Z26coinscache_sim_fuzz_targetS2_E3$_5Z26coinscache_sim_fuzz_targetS2_E3$_6Z26coinscache_sim_fuzz_targetS2_E3$_7Z26coinscache_sim_fuzz_targetS2_E3$_8Z26coinscache_sim_fuzz_targetS2_E3$_9Z26coinscache_sim_fuzz_targetS2_E4$_10Z26coinscache_sim_fuzz_targetS2_E4$_11Z26coinscache_sim_fuzz_targetS2_E4$_12Z26coinscache_sim_fuzz_targetS2_E4$_13Z26coinscache_sim_fuzz_targetS2_E4$_14Z26coinscache_sim_fuzz_targetS2_E4$_15Z26coinscache_sim_fuzz_targetS2_E4$_16Z26coinscache_sim_fuzz_targetS2_E4$_17Z26coinscache_sim_fuzz_targetS2_E4$_18EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: connman.cpp:_Z9CallOneOfIJZ19connman_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_2Z19connman_fuzz_targetS2_E3$_3Z19connman_fuzz_targetS2_E3$_4Z19connman_fuzz_targetS2_E3$_5Z19connman_fuzz_targetS2_E3$_6Z19connman_fuzz_targetS2_E3$_7Z19connman_fuzz_targetS2_E3$_8Z19connman_fuzz_targetS2_E3$_9Z19connman_fuzz_targetS2_E4$_10Z19connman_fuzz_targetS2_E3$_0Z19connman_fuzz_targetS2_E3$_1Z19connman_fuzz_targetS2_E4$_11Z19connman_fuzz_targetS2_E4$_12Z19connman_fuzz_targetS2_E4$_13Z19connman_fuzz_targetS2_E4$_14Z19connman_fuzz_targetS2_E4$_15Z19connman_fuzz_targetS2_E4$_16Z19connman_fuzz_targetS2_E4$_17Z19connman_fuzz_targetS2_E4$_18Z19connman_fuzz_targetS2_E4$_19EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: crypto.cpp:_Z9CallOneOfIJZ18crypto_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z18crypto_fuzz_targetS2_E3$_1Z18crypto_fuzz_targetS2_E3$_2EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: crypto.cpp:_Z9CallOneOfIJZZ18crypto_fuzz_targetSt4spanIKhLm18446744073709551615EEENK3$_2clEvEUlvE_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE0_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE1_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE2_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE3_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE4_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE5_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE6_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE7_ZZ18crypto_fuzz_targetS2_ENKS3_clEvEUlvE8_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: crypto_chacha20.cpp:_Z9CallOneOfIJZ27crypto_chacha20_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z27crypto_chacha20_fuzz_targetS2_E3$_1Z27crypto_chacha20_fuzz_targetS2_E3$_2Z27crypto_chacha20_fuzz_targetS2_E3$_3EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: crypto_diff_fuzz_chacha20.cpp:_Z9CallOneOfIJZ37crypto_diff_fuzz_chacha20_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z37crypto_diff_fuzz_chacha20_fuzz_targetS2_E3$_1Z37crypto_diff_fuzz_chacha20_fuzz_targetS2_E3$_2Z37crypto_diff_fuzz_chacha20_fuzz_targetS2_E3$_3EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: float.cpp:_Z9CallOneOfIJZZ17float_fuzz_targetSt4spanIKhLm18446744073709551615EEENK3$_0clEvEUlvE_ZZ17float_fuzz_targetS2_ENKS3_clEvEUlvE0_ZZ17float_fuzz_targetS2_ENKS3_clEvEUlvE1_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: merkleblock.cpp:_Z9CallOneOfIJZ23merkleblock_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z23merkleblock_fuzz_targetS2_E3$_1EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: minisketch.cpp:_Z9CallOneOfIJZ22minisketch_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_2Z22minisketch_fuzz_targetS2_E3$_3Z22minisketch_fuzz_targetS2_E3$_4EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: muhash.cpp:_Z9CallOneOfIJZ18muhash_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z18muhash_fuzz_targetS2_E3$_1Z18muhash_fuzz_targetS2_E3$_2Z18muhash_fuzz_targetS2_E3$_3EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: net.cpp:_Z9CallOneOfIJZ15net_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z15net_fuzz_targetS2_E3$_1Z15net_fuzz_targetS2_E3$_2Z15net_fuzz_targetS2_E3$_3Z15net_fuzz_targetS2_E3$_4EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: net.cpp:_Z9CallOneOfIJZ25local_address_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z25local_address_fuzz_targetS2_E3$_1Z25local_address_fuzz_targetS2_E3$_2Z25local_address_fuzz_targetS2_E3$_3Z25local_address_fuzz_targetS2_E3$_4Z25local_address_fuzz_targetS2_E3$_5EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: p2p_headers_presync.cpp:_Z9CallOneOfIJZ31p2p_headers_presync_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_3Z31p2p_headers_presync_fuzz_targetS2_E3$_4Z31p2p_headers_presync_fuzz_targetS2_E3$_5EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: p2p_transport_serialization.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_114SimulationTestITk21RandomNumberGenerator21InsecureRandomContextEEvR9TransportS4_RT_R18FuzzedDataProviderEUlvE0_ZNS1_ITk21RandomNumberGeneratorS2_EEvS4_S4_S6_S8_EUlvE1_ZNS1_ITk21RandomNumberGeneratorS2_EEvS4_S4_S6_S8_EUlvE2_ZNS1_ITk21RandomNumberGeneratorS2_EEvS4_S4_S6_S8_EUlvE3_ZNS1_ITk21RandomNumberGeneratorS2_EEvS4_S4_S6_S8_EUlvE4_ZNS1_ITk21RandomNumberGeneratorS2_EEvS4_S4_S6_S8_EUlvE5_EEmS8_DpT_Unexecuted instantiation: policy_estimator.cpp:_Z9CallOneOfIJZ28policy_estimator_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_1Z28policy_estimator_fuzz_targetS2_E3$_2Z28policy_estimator_fuzz_targetS2_E3$_3Z28policy_estimator_fuzz_targetS2_E3$_4EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZ25pool_resource_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z25pool_resource_fuzz_targetS2_E3$_1Z25pool_resource_fuzz_targetS2_E3$_2Z25pool_resource_fuzz_targetS2_E3$_3Z25pool_resource_fuzz_targetS2_E3$_4Z25pool_resource_fuzz_targetS2_E3$_5Z25pool_resource_fuzz_targetS2_E3$_6Z25pool_resource_fuzz_targetS2_E3$_7EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm128ELm1EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm128ELm2EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm128ELm4EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm128ELm8EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm8ELm8EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm16ELm16EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm256ELm16EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: poolresource.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118PoolResourceFuzzerILm256ELm64EE4FuzzEvEUlvE_ZNS2_4FuzzEvEUlvE0_EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: rolling_bloom_filter.cpp:_Z9CallOneOfIJZ32rolling_bloom_filter_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z32rolling_bloom_filter_fuzz_targetS2_E3$_1Z32rolling_bloom_filter_fuzz_targetS2_E3$_2EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: rpc.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_124ConsumeScalarRPCArgumentB5cxx11ER18FuzzedDataProviderRbE3$_0ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_1ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_2ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_3ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_4ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_5ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_6ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_7ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_8ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E3$_9ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_10ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_11ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_12ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_13ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_14ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_15ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_16ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_17ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_18ZNS0_24ConsumeScalarRPCArgumentB5cxx11ES2_S3_E4$_19EEmS2_DpT_Unexecuted instantiation: script_ops.cpp:_Z9CallOneOfIJZ22script_ops_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z22script_ops_fuzz_targetS2_E3$_1Z22script_ops_fuzz_targetS2_E3$_2Z22script_ops_fuzz_targetS2_E3$_3Z22script_ops_fuzz_targetS2_E3$_4Z22script_ops_fuzz_targetS2_E3$_5Z22script_ops_fuzz_targetS2_E3$_6EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: scriptnum_ops.cpp:_Z9CallOneOfIJZ25scriptnum_ops_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z25scriptnum_ops_fuzz_targetS2_E3$_1Z25scriptnum_ops_fuzz_targetS2_E3$_2Z25scriptnum_ops_fuzz_targetS2_E3$_3Z25scriptnum_ops_fuzz_targetS2_E3$_4Z25scriptnum_ops_fuzz_targetS2_E3$_5Z25scriptnum_ops_fuzz_targetS2_E3$_6Z25scriptnum_ops_fuzz_targetS2_E3$_7Z25scriptnum_ops_fuzz_targetS2_E3$_8Z25scriptnum_ops_fuzz_targetS2_E3$_9Z25scriptnum_ops_fuzz_targetS2_E4$_10Z25scriptnum_ops_fuzz_targetS2_E4$_11EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: strprintf.cpp:_Z9CallOneOfIJZ22str_printf_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z22str_printf_fuzz_targetS2_E3$_1Z22str_printf_fuzz_targetS2_E3$_2Z22str_printf_fuzz_targetS2_E3$_3Z22str_printf_fuzz_targetS2_E3$_4Z22str_printf_fuzz_targetS2_E3$_5EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: strprintf.cpp:_Z9CallOneOfIJZ22str_printf_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_6Z22str_printf_fuzz_targetS2_E3$_7Z22str_printf_fuzz_targetS2_E3$_8Z22str_printf_fuzz_targetS2_E3$_9Z22str_printf_fuzz_targetS2_E4$_10Z22str_printf_fuzz_targetS2_E4$_11Z22str_printf_fuzz_targetS2_E4$_12Z22str_printf_fuzz_targetS2_E4$_13EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: system.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_118system_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS0_18system_fuzz_targetES3_E3$_1ZNS0_18system_fuzz_targetES3_E3$_2ZNS0_18system_fuzz_targetES3_E3$_3ZNS0_18system_fuzz_targetES3_E3$_4ZNS0_18system_fuzz_targetES3_E3$_5ZNS0_18system_fuzz_targetES3_E3$_6ZNS0_18system_fuzz_targetES3_E3$_7EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: torcontrol.cpp:_Z9CallOneOfIJZ22torcontrol_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0Z22torcontrol_fuzz_targetS2_E3$_1Z22torcontrol_fuzz_targetS2_E3$_2EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: torcontrol.cpp:_Z9CallOneOfIJZ22torcontrol_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_3Z22torcontrol_fuzz_targetS2_E3$_4Z22torcontrol_fuzz_targetS2_E3$_5Z22torcontrol_fuzz_targetS2_E3$_6EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: txdownloadman.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_125txdownloadman_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS0_25txdownloadman_fuzz_targetES3_E3$_1ZNS0_25txdownloadman_fuzz_targetES3_E3$_2ZNS0_25txdownloadman_fuzz_targetES3_E3$_3ZNS0_25txdownloadman_fuzz_targetES3_E3$_4ZNS0_25txdownloadman_fuzz_targetES3_E3$_5ZNS0_25txdownloadman_fuzz_targetES3_E3$_6ZNS0_25txdownloadman_fuzz_targetES3_E3$_7ZNS0_25txdownloadman_fuzz_targetES3_E3$_8ZNS0_25txdownloadman_fuzz_targetES3_E3$_9ZNS0_25txdownloadman_fuzz_targetES3_E4$_10ZNS0_25txdownloadman_fuzz_targetES3_E4$_11EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: txdownloadman.cpp:_Z9CallOneOfIJZN12_GLOBAL__N_130txdownloadman_impl_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_1ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_2ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_3ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_4ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_5ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_6ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_7ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_8ZNS0_30txdownloadman_impl_fuzz_targetES3_E3$_9ZNS0_30txdownloadman_impl_fuzz_targetES3_E4$_10ZNS0_30txdownloadman_impl_fuzz_targetES3_E4$_11EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: txorphan.cpp:_Z9CallOneOfIJZ20txorphan_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_2Z20txorphan_fuzz_targetS2_E3$_3Z20txorphan_fuzz_targetS2_E3$_4Z20txorphan_fuzz_targetS2_E3$_5Z20txorphan_fuzz_targetS2_E3$_6Z20txorphan_fuzz_targetS2_E3$_7EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: txorphan.cpp:_Z9CallOneOfIJZ30txorphan_protected_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_1Z30txorphan_protected_fuzz_targetS2_E3$_2Z30txorphan_protected_fuzz_targetS2_E3$_3Z30txorphan_protected_fuzz_targetS2_E3$_4EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: utxo_total_supply.cpp:_Z9CallOneOfIJZ29utxo_total_supply_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_5Z29utxo_total_supply_fuzz_targetS2_E3$_6Z29utxo_total_supply_fuzz_targetS2_E3$_7EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: coincontrol.cpp:_Z9CallOneOfIJZN6wallet12_GLOBAL__N_123coincontrol_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS1_23coincontrol_fuzz_targetES4_E3$_1ZNS1_23coincontrol_fuzz_targetES4_E3$_2ZNS1_23coincontrol_fuzz_targetES4_E3$_3ZNS1_23coincontrol_fuzz_targetES4_E3$_4ZNS1_23coincontrol_fuzz_targetES4_E3$_5ZNS1_23coincontrol_fuzz_targetES4_E3$_6ZNS1_23coincontrol_fuzz_targetES4_E3$_7ZNS1_23coincontrol_fuzz_targetES4_E3$_8ZNS1_23coincontrol_fuzz_targetES4_E3$_9ZNS1_23coincontrol_fuzz_targetES4_E4$_10ZNS1_23coincontrol_fuzz_targetES4_E4$_11EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: crypter.cpp:_Z9CallOneOfIJZN6wallet12_GLOBAL__N_119crypter_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS1_19crypter_fuzz_targetES4_E3$_1ZNS1_19crypter_fuzz_targetES4_E3$_2ZNS1_19crypter_fuzz_targetES4_E3$_3ZNS1_19crypter_fuzz_targetES4_E3$_4ZNS1_19crypter_fuzz_targetES4_E3$_5ZNS1_19crypter_fuzz_targetES4_E3$_6EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: scriptpubkeyman.cpp:_Z9CallOneOfIJZN6wallet12_GLOBAL__N_127scriptpubkeyman_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS1_27scriptpubkeyman_fuzz_targetES4_E3$_1ZNS1_27scriptpubkeyman_fuzz_targetES4_E3$_2ZNS1_27scriptpubkeyman_fuzz_targetES4_E3$_3ZNS1_27scriptpubkeyman_fuzz_targetES4_E3$_4ZNS1_27scriptpubkeyman_fuzz_targetES4_E3$_5EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: spend.cpp:_Z9CallOneOfIJZN6wallet12_GLOBAL__N_137wallet_create_transaction_fuzz_targetESt4spanIKhLm18446744073709551615EEE3$_0ZNS1_37wallet_create_transaction_fuzz_targetES4_E3$_1ZNS1_37wallet_create_transaction_fuzz_targetES4_E3$_2EEmR18FuzzedDataProviderDpT_Unexecuted instantiation: util.cpp:_Z9CallOneOfIJZ13ConsumeScriptR18FuzzedDataProviderbE3$_0Z13ConsumeScriptS1_bE3$_1Z13ConsumeScriptS1_bE3$_2Z13ConsumeScriptS1_bE3$_3Z13ConsumeScriptS1_bE3$_4Z13ConsumeScriptS1_bE3$_5Z13ConsumeScriptS1_bE3$_6EEmS1_DpT_Unexecuted instantiation: util.cpp:_Z9CallOneOfIJZ20ConsumeTxDestinationR18FuzzedDataProviderE3$_0Z20ConsumeTxDestinationS1_E3$_1Z20ConsumeTxDestinationS1_E3$_2Z20ConsumeTxDestinationS1_E3$_3Z20ConsumeTxDestinationS1_E3$_4Z20ConsumeTxDestinationS1_E3$_5Z20ConsumeTxDestinationS1_E3$_6Z20ConsumeTxDestinationS1_E3$_7Z20ConsumeTxDestinationS1_E3$_8EEmS1_DpT_Unexecuted instantiation: util.cpp:_Z9CallOneOfIJZN18FuzzedFileProvider4openEvE3$_0ZNS0_4openEvE3$_1ZNS0_4openEvE3$_2ZNS0_4openEvE3$_3ZNS0_4openEvE3$_4ZNS0_4openEvE3$_5EEmR18FuzzedDataProviderDpT_ | 
| 45 |  |  | 
| 46 |  | template <typename Collection> | 
| 47 |  | auto& PickValue(FuzzedDataProvider& fuzzed_data_provider, Collection& col) | 
| 48 | 4.90k | { | 
| 49 | 4.90k |     auto sz{col.size()}; | 
| 50 | 4.90k |     assert(sz >= 1); | 
| 51 | 4.90k |     auto it = col.begin(); | 
| 52 | 4.90k |     std::advance(it, fuzzed_data_provider.ConsumeIntegralInRange<decltype(sz)>(0, sz - 1)); | 
| 53 | 4.90k |     return *it; | 
| 54 | 4.90k | } Unexecuted instantiation: _Z9PickValueIKSt5arrayIN10miniscript4TypeELm4EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueIKSt6vectorISt4pairIN10miniscript8FragmentES0_INS2_4TypeESaIS4_EEESaIS7_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueISt6vectorIS0_IhSaIhEESaIS2_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueISt6vectorIP5CNodeSaIS2_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueIKSt5arrayINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELm35EEERDaR18FuzzedDataProviderRT__Z9PickValueISt3setI9COutPointSt4lessIS1_ESaIS1_EEERDaR18FuzzedDataProviderRT_| Line | Count | Source |  | 48 | 4.16k | { |  | 49 | 4.16k |     auto sz{col.size()}; |  | 50 | 4.16k |     assert(sz >= 1); |  | 51 | 4.16k |     auto it = col.begin(); |  | 52 | 4.16k |     std::advance(it, fuzzed_data_provider.ConsumeIntegralInRange<decltype(sz)>(0, sz - 1)); |  | 53 | 4.16k |     return *it; |  | 54 | 4.16k | } | 
Unexecuted instantiation: _Z9PickValueISt6vectorISt10unique_ptrI11CBlockIndexSt14default_deleteIS2_EESaIS5_EEERDaR18FuzzedDataProviderRT__Z9PickValueIKSt6vectorI13TxMempoolInfoSaIS1_EEERDaR18FuzzedDataProviderRT_| Line | Count | Source |  | 48 | 740 | { |  | 49 | 740 |     auto sz{col.size()}; |  | 50 | 740 |     assert(sz >= 1); |  | 51 | 740 |     auto it = col.begin(); |  | 52 | 740 |     std::advance(it, fuzzed_data_provider.ConsumeIntegralInRange<decltype(sz)>(0, sz - 1)); |  | 53 | 740 |     return *it; |  | 54 | 740 | } | 
Unexecuted instantiation: _Z9PickValueISt6vectorI22transaction_identifierILb0EESaIS2_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueISt6vectorI9COutPointSaIS1_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueISt6vectorISt10shared_ptrIK12CTransactionESaIS4_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueISt13unordered_setI7CScript15SaltedSipHasherSt8equal_toIS1_ESaIS1_EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueIKSt5arrayIN8CNetAddr8EncodingELm2EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueIKSt5arrayIN8CAddress6FormatELm2EEERDaR18FuzzedDataProviderRT_Unexecuted instantiation: _Z9PickValueIKSt6vectorI22transaction_identifierILb0EESaIS2_EEERDaR18FuzzedDataProviderRT_ | 
| 55 |  |  | 
| 56 |  | template<typename B = uint8_t> | 
| 57 |  | [[nodiscard]] inline std::vector<B> ConsumeRandomLengthByteVector(FuzzedDataProvider& fuzzed_data_provider, const std::optional<size_t>& max_length = std::nullopt) noexcept | 
| 58 | 0 | { | 
| 59 | 0 |     static_assert(sizeof(B) == 1); | 
| 60 | 0 |     const std::string s = max_length ? | 
| 61 | 0 |                               fuzzed_data_provider.ConsumeRandomLengthString(*max_length) : | 
| 62 | 0 |                               fuzzed_data_provider.ConsumeRandomLengthString(); | 
| 63 | 0 |     std::vector<B> ret(s.size()); | 
| 64 | 0 |     std::copy(s.begin(), s.end(), reinterpret_cast<char*>(ret.data())); | 
| 65 | 0 |     return ret; | 
| 66 | 0 | } Unexecuted instantiation: _Z29ConsumeRandomLengthByteVectorIhESt6vectorIT_SaIS1_EER18FuzzedDataProviderRKSt8optionalImEUnexecuted instantiation: _Z29ConsumeRandomLengthByteVectorISt4byteESt6vectorIT_SaIS2_EER18FuzzedDataProviderRKSt8optionalImE | 
| 67 |  |  | 
| 68 |  | [[nodiscard]] inline std::vector<bool> ConsumeRandomLengthBitVector(FuzzedDataProvider& fuzzed_data_provider, const std::optional<size_t>& max_length = std::nullopt) noexcept | 
| 69 | 0 | { | 
| 70 | 0 |     return BytesToBits(ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)); | 
| 71 | 0 | } | 
| 72 |  |  | 
| 73 |  | [[nodiscard]] inline DataStream ConsumeDataStream(FuzzedDataProvider& fuzzed_data_provider, const std::optional<size_t>& max_length = std::nullopt) noexcept | 
| 74 | 0 | { | 
| 75 | 0 |     return DataStream{ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)}; | 
| 76 | 0 | } | 
| 77 |  |  | 
| 78 |  | [[nodiscard]] inline std::vector<std::string> ConsumeRandomLengthStringVector(FuzzedDataProvider& fuzzed_data_provider, const size_t max_vector_size = 16, const size_t max_string_length = 16) noexcept | 
| 79 | 0 | { | 
| 80 | 0 |     const size_t n_elements = fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, max_vector_size); | 
| 81 | 0 |     std::vector<std::string> r; | 
| 82 | 0 |     r.reserve(n_elements); | 
| 83 | 0 |     for (size_t i = 0; i < n_elements; ++i) { | 
| 84 | 0 |         r.push_back(fuzzed_data_provider.ConsumeRandomLengthString(max_string_length)); | 
| 85 | 0 |     } | 
| 86 | 0 |     return r; | 
| 87 | 0 | } | 
| 88 |  |  | 
| 89 |  | template <typename T> | 
| 90 |  | [[nodiscard]] inline std::vector<T> ConsumeRandomLengthIntegralVector(FuzzedDataProvider& fuzzed_data_provider, const size_t max_vector_size = 16) noexcept | 
| 91 | 0 | { | 
| 92 | 0 |     const size_t n_elements = fuzzed_data_provider.ConsumeIntegralInRange<size_t>(0, max_vector_size); | 
| 93 | 0 |     std::vector<T> r; | 
| 94 | 0 |     r.reserve(n_elements); | 
| 95 | 0 |     for (size_t i = 0; i < n_elements; ++i) { | 
| 96 | 0 |         r.push_back(fuzzed_data_provider.ConsumeIntegral<T>()); | 
| 97 | 0 |     } | 
| 98 | 0 |     return r; | 
| 99 | 0 | } Unexecuted instantiation: _Z33ConsumeRandomLengthIntegralVectorIhESt6vectorIT_SaIS1_EER18FuzzedDataProvidermUnexecuted instantiation: _Z33ConsumeRandomLengthIntegralVectorIjESt6vectorIT_SaIS1_EER18FuzzedDataProvidermUnexecuted instantiation: _Z33ConsumeRandomLengthIntegralVectorIlESt6vectorIT_SaIS1_EER18FuzzedDataProviderm | 
| 100 |  |  | 
| 101 |  | template <typename P> | 
| 102 |  | [[nodiscard]] P ConsumeDeserializationParams(FuzzedDataProvider& fuzzed_data_provider) noexcept; | 
| 103 |  |  | 
| 104 |  | template <typename T, typename P> | 
| 105 |  | [[nodiscard]] std::optional<T> ConsumeDeserializable(FuzzedDataProvider& fuzzed_data_provider, const P& params, const std::optional<size_t>& max_length = std::nullopt) noexcept | 
| 106 | 0 | { | 
| 107 | 0 |     const std::vector<uint8_t> buffer{ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)}; | 
| 108 | 0 |     DataStream ds{buffer}; | 
| 109 | 0 |     T obj; | 
| 110 | 0 |     try { | 
| 111 | 0 |         ds >> params(obj); | 
| 112 | 0 |     } catch (const std::ios_base::failure&) { | 
| 113 | 0 |         return std::nullopt; | 
| 114 | 0 |     } | 
| 115 | 0 |     return obj; | 
| 116 | 0 | } Unexecuted instantiation: _Z21ConsumeDeserializableI19CMutableTransaction20TransactionSerParamsESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS2_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI8AddrInfoN8CAddress9SerParamsEESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS3_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI8CNetAddrNS0_9SerParamsEESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS2_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI8CServiceN8CNetAddr9SerParamsEESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS3_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI8CAddressNS0_9SerParamsEESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS2_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI6CBlock20TransactionSerParamsESt8optionalIT_ER18FuzzedDataProviderRKT0_RKS2_ImE | 
| 117 |  |  | 
| 118 |  | template <typename T> | 
| 119 |  | [[nodiscard]] inline std::optional<T> ConsumeDeserializable(FuzzedDataProvider& fuzzed_data_provider, const std::optional<size_t>& max_length = std::nullopt) noexcept | 
| 120 | 0 | { | 
| 121 | 0 |     const std::vector<uint8_t> buffer = ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length); | 
| 122 | 0 |     DataStream ds{buffer}; | 
| 123 | 0 |     T obj; | 
| 124 | 0 |     try { | 
| 125 | 0 |         ds >> obj; | 
| 126 | 0 |     } catch (const std::ios_base::failure&) { | 
| 127 | 0 |         return std::nullopt; | 
| 128 | 0 |     } | 
| 129 | 0 |     return obj; | 
| 130 | 0 | } Unexecuted instantiation: _Z21ConsumeDeserializableI12CBlockHeaderESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI13CBlockLocatorESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI14CBlockFileInfoESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI11BlockFilterESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI9COutPointESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI7uint256ESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI15CDiskBlockIndexESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI4CoinESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI11FlatFilePosESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableISt6vectorI12CBlockHeaderSaIS1_EEESt8optionalIT_ER18FuzzedDataProviderRKS4_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI18CPartialMerkleTreeESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI7CScriptESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI4CInvESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI26PartiallySignedTransactionESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI7CPubKeyESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI13KeyOriginInfoESt8optionalIT_ER18FuzzedDataProviderRKS1_ImEUnexecuted instantiation: _Z21ConsumeDeserializableI6CTxOutESt8optionalIT_ER18FuzzedDataProviderRKS1_ImE | 
| 131 |  |  | 
| 132 |  | template <typename WeakEnumType, size_t size> | 
| 133 |  | [[nodiscard]] WeakEnumType ConsumeWeakEnum(FuzzedDataProvider& fuzzed_data_provider, const WeakEnumType (&all_types)[size]) noexcept | 
| 134 | 0 | { | 
| 135 | 0 |     return fuzzed_data_provider.ConsumeBool() ? | 
| 136 | 0 |                fuzzed_data_provider.PickValueInArray<WeakEnumType>(all_types) : | 
| 137 | 0 |                WeakEnumType(fuzzed_data_provider.ConsumeIntegral<std::underlying_type_t<WeakEnumType>>()); | 
| 138 | 0 | } Unexecuted instantiation: _Z15ConsumeWeakEnumI12ServiceFlagsLm7EET_R18FuzzedDataProviderRAT0__KS1_Unexecuted instantiation: _Z15ConsumeWeakEnumI18NetPermissionFlagsLm10EET_R18FuzzedDataProviderRAT0__KS1_ | 
| 139 |  |  | 
| 140 |  | [[nodiscard]] inline opcodetype ConsumeOpcodeType(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 141 | 0 | { | 
| 142 | 0 |     return static_cast<opcodetype>(fuzzed_data_provider.ConsumeIntegralInRange<uint32_t>(0, MAX_OPCODE)); | 
| 143 | 0 | } | 
| 144 |  |  | 
| 145 |  | [[nodiscard]] CAmount ConsumeMoney(FuzzedDataProvider& fuzzed_data_provider, const std::optional<CAmount>& max = std::nullopt) noexcept; | 
| 146 |  |  | 
| 147 |  | [[nodiscard]] int64_t ConsumeTime(FuzzedDataProvider& fuzzed_data_provider, const std::optional<int64_t>& min = std::nullopt, const std::optional<int64_t>& max = std::nullopt) noexcept; | 
| 148 |  |  | 
| 149 |  | [[nodiscard]] CMutableTransaction ConsumeTransaction(FuzzedDataProvider& fuzzed_data_provider, const std::optional<std::vector<Txid>>& prevout_txids, const int max_num_in = 10, const int max_num_out = 10) noexcept; | 
| 150 |  |  | 
| 151 |  | [[nodiscard]] CScriptWitness ConsumeScriptWitness(FuzzedDataProvider& fuzzed_data_provider, const size_t max_stack_elem_size = 32) noexcept; | 
| 152 |  |  | 
| 153 |  | [[nodiscard]] CScript ConsumeScript(FuzzedDataProvider& fuzzed_data_provider, const bool maybe_p2wsh = false) noexcept; | 
| 154 |  |  | 
| 155 |  | [[nodiscard]] uint32_t ConsumeSequence(FuzzedDataProvider& fuzzed_data_provider) noexcept; | 
| 156 |  |  | 
| 157 |  | [[nodiscard]] inline CScriptNum ConsumeScriptNum(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 158 | 0 | { | 
| 159 | 0 |     return CScriptNum{fuzzed_data_provider.ConsumeIntegral<int64_t>()}; | 
| 160 | 0 | } | 
| 161 |  |  | 
| 162 |  | [[nodiscard]] inline uint160 ConsumeUInt160(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 163 | 0 | { | 
| 164 | 0 |     const std::vector<uint8_t> v160 = fuzzed_data_provider.ConsumeBytes<uint8_t>(160 / 8); | 
| 165 | 0 |     if (v160.size() != 160 / 8) { | 
| 166 | 0 |         return {}; | 
| 167 | 0 |     } | 
| 168 | 0 |     return uint160{v160}; | 
| 169 | 0 | } | 
| 170 |  |  | 
| 171 |  | [[nodiscard]] inline uint256 ConsumeUInt256(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 172 | 0 | { | 
| 173 | 0 |     const std::vector<uint8_t> v256 = fuzzed_data_provider.ConsumeBytes<uint8_t>(256 / 8); | 
| 174 | 0 |     if (v256.size() != 256 / 8) { | 
| 175 | 0 |         return {}; | 
| 176 | 0 |     } | 
| 177 | 0 |     return uint256{v256}; | 
| 178 | 0 | } | 
| 179 |  |  | 
| 180 |  | [[nodiscard]] inline arith_uint256 ConsumeArithUInt256(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 181 | 0 | { | 
| 182 | 0 |     return UintToArith256(ConsumeUInt256(fuzzed_data_provider)); | 
| 183 | 0 | } | 
| 184 |  |  | 
| 185 |  | [[nodiscard]] inline arith_uint256 ConsumeArithUInt256InRange(FuzzedDataProvider& fuzzed_data_provider, const arith_uint256& min, const arith_uint256& max) noexcept | 
| 186 | 0 | { | 
| 187 | 0 |     assert(min <= max); | 
| 188 | 0 |     const arith_uint256 range = max - min; | 
| 189 | 0 |     const arith_uint256 value = ConsumeArithUInt256(fuzzed_data_provider); | 
| 190 | 0 |     arith_uint256 result = value; | 
| 191 |  |     // Avoid division by 0, in case range + 1 results in overflow. | 
| 192 | 0 |     if (range != ~arith_uint256(0)) { | 
| 193 | 0 |         const arith_uint256 quotient = value / (range + 1); | 
| 194 | 0 |         result = value - (quotient * (range + 1)); | 
| 195 | 0 |     } | 
| 196 | 0 |     result += min; | 
| 197 | 0 |     assert(result >= min && result <= max); | 
| 198 | 0 |     return result; | 
| 199 | 0 | } | 
| 200 |  |  | 
| 201 |  | [[nodiscard]] std::map<COutPoint, Coin> ConsumeCoins(FuzzedDataProvider& fuzzed_data_provider) noexcept; | 
| 202 |  |  | 
| 203 |  | [[nodiscard]] CTxDestination ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept; | 
| 204 |  |  | 
| 205 |  | [[nodiscard]] CKey ConsumePrivateKey(FuzzedDataProvider& fuzzed_data_provider, std::optional<bool> compressed = std::nullopt) noexcept; | 
| 206 |  |  | 
| 207 |  | template <typename T> | 
| 208 |  | [[nodiscard]] bool MultiplicationOverflow(const T i, const T j) noexcept | 
| 209 | 0 | { | 
| 210 | 0 |     static_assert(std::is_integral_v<T>, "Integral required."); | 
| 211 | 0 |     if (std::numeric_limits<T>::is_signed) { | 
| 212 | 0 |         if (i > 0) { | 
| 213 | 0 |             if (j > 0) { | 
| 214 | 0 |                 return i > (std::numeric_limits<T>::max() / j); | 
| 215 | 0 |             } else { | 
| 216 | 0 |                 return j < (std::numeric_limits<T>::min() / i); | 
| 217 | 0 |             } | 
| 218 | 0 |         } else { | 
| 219 | 0 |             if (j > 0) { | 
| 220 | 0 |                 return i < (std::numeric_limits<T>::min() / j); | 
| 221 | 0 |             } else { | 
| 222 | 0 |                 return i != 0 && (j < (std::numeric_limits<T>::max() / i)); | 
| 223 | 0 |             } | 
| 224 | 0 |         } | 
| 225 | 0 |     } else { | 
| 226 | 0 |         return j != 0 && i > std::numeric_limits<T>::max() / j; | 
| 227 | 0 |     } | 
| 228 | 0 | } Unexecuted instantiation: _Z22MultiplicationOverflowIlEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowImEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIiEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIjEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIsEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowItEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIcEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIhEbT_S0_Unexecuted instantiation: _Z22MultiplicationOverflowIaEbT_S0_ | 
| 229 |  |  | 
| 230 |  | [[nodiscard]] bool ContainsSpentInput(const CTransaction& tx, const CCoinsViewCache& inputs) noexcept; | 
| 231 |  |  | 
| 232 |  | /** | 
| 233 |  |  * Sets errno to a value selected from the given std::array `errnos`. | 
| 234 |  |  */ | 
| 235 |  | template <typename T, size_t size> | 
| 236 |  | void SetFuzzedErrNo(FuzzedDataProvider& fuzzed_data_provider, const std::array<T, size>& errnos) | 
| 237 | 0 | { | 
| 238 | 0 |     errno = fuzzed_data_provider.PickValueInArray(errnos); | 
| 239 | 0 | } Unexecuted instantiation: _Z14SetFuzzedErrNoIiLm18EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EEUnexecuted instantiation: _Z14SetFuzzedErrNoIiLm10EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EEUnexecuted instantiation: _Z14SetFuzzedErrNoIiLm8EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EEUnexecuted instantiation: _Z14SetFuzzedErrNoIiLm4EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EEUnexecuted instantiation: _Z14SetFuzzedErrNoIiLm3EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EEUnexecuted instantiation: _Z14SetFuzzedErrNoIiLm2EEvR18FuzzedDataProviderRKSt5arrayIT_XT0_EE | 
| 240 |  |  | 
| 241 |  | /* | 
| 242 |  |  * Sets a fuzzed errno in the range [0, 133 (EHWPOISON)]. Can be used from functions emulating | 
| 243 |  |  * standard library functions that set errno, or in other contexts where the value of errno | 
| 244 |  |  * might be relevant for the execution path that will be taken. | 
| 245 |  |  */ | 
| 246 |  | inline void SetFuzzedErrNo(FuzzedDataProvider& fuzzed_data_provider) noexcept | 
| 247 | 0 | { | 
| 248 | 0 |     errno = fuzzed_data_provider.ConsumeIntegralInRange<int>(0, 133); | 
| 249 | 0 | } | 
| 250 |  |  | 
| 251 |  | /** | 
| 252 |  |  * Returns a byte vector of specified size regardless of the number of remaining bytes available | 
| 253 |  |  * from the fuzzer. Pads with zero value bytes if needed to achieve the specified size. | 
| 254 |  |  */ | 
| 255 |  | template<typename B = uint8_t> | 
| 256 |  | [[nodiscard]] inline std::vector<B> ConsumeFixedLengthByteVector(FuzzedDataProvider& fuzzed_data_provider, const size_t length) noexcept | 
| 257 | 0 | { | 
| 258 | 0 |     static_assert(sizeof(B) == 1); | 
| 259 | 0 |     auto random_bytes = fuzzed_data_provider.ConsumeBytes<B>(length); | 
| 260 | 0 |     random_bytes.resize(length); | 
| 261 | 0 |     return random_bytes; | 
| 262 | 0 | } Unexecuted instantiation: _Z28ConsumeFixedLengthByteVectorISt4byteESt6vectorIT_SaIS2_EER18FuzzedDataProvidermUnexecuted instantiation: _Z28ConsumeFixedLengthByteVectorIhESt6vectorIT_SaIS1_EER18FuzzedDataProviderm | 
| 263 |  |  | 
| 264 |  | class FuzzedFileProvider | 
| 265 |  | { | 
| 266 |  |     FuzzedDataProvider& m_fuzzed_data_provider; | 
| 267 |  |     int64_t m_offset = 0; | 
| 268 |  |  | 
| 269 |  | public: | 
| 270 | 0 |     FuzzedFileProvider(FuzzedDataProvider& fuzzed_data_provider) : m_fuzzed_data_provider{fuzzed_data_provider} | 
| 271 | 0 |     { | 
| 272 | 0 |     } | 
| 273 |  |  | 
| 274 |  |     FILE* open(); | 
| 275 |  |  | 
| 276 |  |     static ssize_t read(void* cookie, char* buf, size_t size); | 
| 277 |  |  | 
| 278 |  |     static ssize_t write(void* cookie, const char* buf, size_t size); | 
| 279 |  |  | 
| 280 |  |     static int seek(void* cookie, int64_t* offset, int whence); | 
| 281 |  |  | 
| 282 |  |     static int close(void* cookie); | 
| 283 |  | }; | 
| 284 |  |  | 
| 285 |  | #define WRITE_TO_STREAM_CASE(type, consume) \ | 
| 286 | 0 |     [&] {                                   \ | 
| 287 | 0 |         type o = consume;                   \ | 
| 288 | 0 |         stream << o;                        \ | 
| 289 | 0 |     } Unexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE0_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE1_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE2_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE3_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE4_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE5_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE6_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE7_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE8_clEvUnexecuted instantiation: _ZZ13WriteToStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE9_clEv | 
| 290 |  | template <typename Stream> | 
| 291 |  | void WriteToStream(FuzzedDataProvider& fuzzed_data_provider, Stream& stream) noexcept | 
| 292 | 0 | { | 
| 293 | 0 |     while (fuzzed_data_provider.ConsumeBool()) { | 
| 294 | 0 |         try { | 
| 295 | 0 |             CallOneOf( | 
| 296 | 0 |                 fuzzed_data_provider, | 
| 297 | 0 |                 WRITE_TO_STREAM_CASE(bool, fuzzed_data_provider.ConsumeBool()), | 
| 298 | 0 |                 WRITE_TO_STREAM_CASE(int8_t, fuzzed_data_provider.ConsumeIntegral<int8_t>()), | 
| 299 | 0 |                 WRITE_TO_STREAM_CASE(uint8_t, fuzzed_data_provider.ConsumeIntegral<uint8_t>()), | 
| 300 | 0 |                 WRITE_TO_STREAM_CASE(int16_t, fuzzed_data_provider.ConsumeIntegral<int16_t>()), | 
| 301 | 0 |                 WRITE_TO_STREAM_CASE(uint16_t, fuzzed_data_provider.ConsumeIntegral<uint16_t>()), | 
| 302 | 0 |                 WRITE_TO_STREAM_CASE(int32_t, fuzzed_data_provider.ConsumeIntegral<int32_t>()), | 
| 303 | 0 |                 WRITE_TO_STREAM_CASE(uint32_t, fuzzed_data_provider.ConsumeIntegral<uint32_t>()), | 
| 304 | 0 |                 WRITE_TO_STREAM_CASE(int64_t, fuzzed_data_provider.ConsumeIntegral<int64_t>()), | 
| 305 | 0 |                 WRITE_TO_STREAM_CASE(uint64_t, fuzzed_data_provider.ConsumeIntegral<uint64_t>()), | 
| 306 | 0 |                 WRITE_TO_STREAM_CASE(std::string, fuzzed_data_provider.ConsumeRandomLengthString(32)), | 
| 307 | 0 |                 WRITE_TO_STREAM_CASE(std::vector<uint8_t>, ConsumeRandomLengthIntegralVector<uint8_t>(fuzzed_data_provider))); | 
| 308 | 0 |         } catch (const std::ios_base::failure&) { | 
| 309 | 0 |             break; | 
| 310 | 0 |         } | 
| 311 | 0 |     } | 
| 312 | 0 | } | 
| 313 |  |  | 
| 314 |  | #define READ_FROM_STREAM_CASE(type) \ | 
| 315 | 0 |     [&] {                           \ | 
| 316 | 0 |         type o;                     \ | 
| 317 | 0 |         stream >> o;                \ | 
| 318 | 0 |     } Unexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE0_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE1_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE2_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE3_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE4_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE5_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE6_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE7_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE8_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_ENKUlvE9_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE0_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE1_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE2_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE3_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE4_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE5_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE6_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE7_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE8_clEvUnexecuted instantiation: _ZZ14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ENKUlvE9_clEv | 
| 319 |  | template <typename Stream> | 
| 320 |  | void ReadFromStream(FuzzedDataProvider& fuzzed_data_provider, Stream& stream) noexcept | 
| 321 | 0 | { | 
| 322 | 0 |     while (fuzzed_data_provider.ConsumeBool()) { | 
| 323 | 0 |         try { | 
| 324 | 0 |             CallOneOf( | 
| 325 | 0 |                 fuzzed_data_provider, | 
| 326 | 0 |                 READ_FROM_STREAM_CASE(bool), | 
| 327 | 0 |                 READ_FROM_STREAM_CASE(int8_t), | 
| 328 | 0 |                 READ_FROM_STREAM_CASE(uint8_t), | 
| 329 | 0 |                 READ_FROM_STREAM_CASE(int16_t), | 
| 330 | 0 |                 READ_FROM_STREAM_CASE(uint16_t), | 
| 331 | 0 |                 READ_FROM_STREAM_CASE(int32_t), | 
| 332 | 0 |                 READ_FROM_STREAM_CASE(uint32_t), | 
| 333 | 0 |                 READ_FROM_STREAM_CASE(int64_t), | 
| 334 | 0 |                 READ_FROM_STREAM_CASE(uint64_t), | 
| 335 | 0 |                 READ_FROM_STREAM_CASE(std::string), | 
| 336 | 0 |                 READ_FROM_STREAM_CASE(std::vector<uint8_t>)); | 
| 337 | 0 |         } catch (const std::ios_base::failure&) { | 
| 338 | 0 |             break; | 
| 339 | 0 |         } | 
| 340 | 0 |     } | 
| 341 | 0 | } Unexecuted instantiation: _Z14ReadFromStreamI8AutoFileEvR18FuzzedDataProviderRT_Unexecuted instantiation: _Z14ReadFromStreamI12BufferedFileEvR18FuzzedDataProviderRT_ | 
| 342 |  |  | 
| 343 |  | #endif // BITCOIN_TEST_FUZZ_UTIL_H |