elements/src/test/fuzz
Ava Chow 9f1aa88d4d
Merge bitcoin/bitcoin#30884: streams: cache file position within AutoFile
a240e150e8 streams: remove AutoFile::Get() entirely (Pieter Wuille)
e624a9bef1 streams: cache file position within AutoFile (Pieter Wuille)

Pull request description:

  Fixes #30833.

  Instead of relying on frequent `ftell` calls (which appear to cause a significant slowdown on some systems) in XOR-enabled `AutoFile`s, cache the file position within `AutoFile` itself.

ACKs for top commit:
  achow101:
    ACK a240e150e8
  davidgumberg:
    untested reACK https://github.com/bitcoin/bitcoin/pull/30884/commits/a240e150e837b5a95ed19765a2e8b7c5b6013f35
  theStack:
    Code-review ACK a240e150e8

Tree-SHA512: fd3681edc018afaf955dc7a41a0c953ca80d46c1129e3c5b306c87c95aae93b2fe7b900794eb8b6f10491f9211645e7939918a28838295e6873eb226fca7006f
2024-09-16 23:09:16 -04:00
..
util Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
addition_overflow.cpp build, msvc: Build fuzz.exe binary 2024-04-18 10:27:25 +01:00
addrman.cpp addrman: change Select to support multiple networks 2024-09-10 12:58:54 -03:00
asmap.cpp [netgroupman] Add GetMappedAS() and GetGroup() 2022-04-20 14:35:52 +01:00
asmap_direct.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
autofile.cpp streams: remove AutoFile::Get() entirely 2024-09-13 21:59:29 -04:00
banman.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
base_encode_decode.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
bech32.cpp fuzz: replace hardcoded numbers for bech32 limits 2024-08-06 11:03:31 +02:00
bip324.cpp refactor: Remove Span operator==, Use std::ranges::equal 2024-08-13 07:44:31 +02:00
bitdeque.cpp fuzz: Avoid timeout in bitdeque 2023-12-06 15:44:38 +01:00
bitset.cpp random: convert XoRoShiRo128PlusPlus into full RNG 2024-07-01 10:26:46 -04:00
block.cpp fuzz: Drop unused version from fuzz input format 2023-11-30 11:27:21 +01:00
block_header.cpp refactor: Hand-replace some uint256S -> uint256 2024-08-05 14:51:47 +02:00
block_index.cpp qa: a fuzz target for the block index database 2024-05-29 18:55:04 +02:00
blockfilter.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
bloom_filter.cpp Use ParamsWrapper for witness serialization 2023-11-14 08:45:30 +10:00
buffered_file.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
chain.cpp chain: Rename HaveTxsDownloaded to HaveNumChainTxs 2023-10-06 19:43:32 +02:00
checkqueue.cpp refactor: Make CCheckQueue constructor start worker threads 2023-10-03 10:52:15 +01:00
cluster_linearize.cpp clusterlin: only start/use search when enough iterations left 2024-09-12 15:15:36 -04:00
CMakeLists.txt Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2p 2024-09-16 13:59:22 -04:00
coins_view.cpp coins: pass linked list of flagged entries to BatchWrite 2024-08-05 19:43:56 -04:00
coinscache_sim.cpp coins: pass linked list of flagged entries to BatchWrite 2024-08-05 19:43:56 -04:00
connman.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
crypto.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
crypto_aes256.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
crypto_aes256cbc.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
crypto_chacha20.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
crypto_chacha20poly1305.cpp fuzz: fix timeout in crypto_fschacha20poly1305 2024-08-27 11:25:47 -03:00
crypto_common.cpp
crypto_diff_fuzz_chacha20.cpp crypto: require key on ChaCha20 initialization 2023-08-17 15:31:27 -04:00
crypto_hkdf_hmac_sha256_l32.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
crypto_poly1305.cpp fuzz: support std::byte in Consume{Fixed,Variable}LengthByteVector 2023-08-17 15:31:56 -04:00
cuckoocache.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
decode_tx.cpp
descriptor_parse.cpp Merge bitcoin/bitcoin#22838: descriptors: Be able to specify change and receiving in a single descriptor string 2024-08-28 15:56:15 +01:00
deserialize.cpp assumeutxo: Add network magic ctor param to SnapshotMetadata 2024-05-24 18:44:02 +02:00
eval_script.cpp Adapt to libsecp256k1 API changes 2022-12-13 15:08:24 -05:00
fee_rate.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
feefrac.cpp Add fuzz test for FeeFrac 2024-03-18 10:32:00 -04:00
feeratediagram.cpp Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
fees.cpp util: move fees.h and error.h to common/messages.h 2024-05-16 10:16:08 -05:00
flatfile.cpp Refactor: Remove unused FlatFilePos::SetNull 2023-03-21 13:54:11 +01:00
float.cpp Remove unused version.h include 2023-11-30 11:28:19 +01:00
fuzz.cpp scripted-diff: fuzz: Rename fuzz_seed_corpus to fuzz_corpora 2024-09-03 20:40:35 +02:00
fuzz.h fuzz: Use std::span in FuzzBufferType 2024-06-12 15:21:31 +02:00
FuzzedDataProvider.h doc: fix typos 2023-11-07 10:21:51 +09:00
golomb_rice.cpp refactor: SpanReader without nVersion 2023-11-28 12:42:07 +01:00
headerssync.cpp Rename CalculateHeadersWork to CalculateClaimedHeadersWork 2024-03-05 10:01:24 -05:00
hex.cpp Merge bitcoin/bitcoin#30618: test: support std::optional in BOOST_CHECK_* and increase FromUserHex fuzz feature coverage 2024-09-12 12:36:37 -04:00
http_request.cpp refactor: Remove call to ShutdownRequested from HTTPRequest 2023-12-04 15:39:15 -04:00
i2p.cpp netbase: extend CreateSock() to support creating arbitrary sockets 2024-06-14 14:23:50 +02:00
integer.cpp Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2p 2024-09-16 13:59:22 -04:00
key.cpp refactor: remove unused CKey::Negate method 2024-06-03 16:59:43 +02:00
key_io.cpp test: Use ECC_Context helper in bench and fuzz tests 2024-05-09 15:56:04 +02:00
kitchen_sink.cpp rpc: clarify ALREADY_IN_CHAIN rpc errors 2024-08-05 15:45:58 +01:00
load_external_block_file.cpp blockstorage: switch from CAutoFile to AutoFile 2023-11-18 03:01:03 +10:00
locale.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
merkleblock.cpp refactor: Use Txid in CMerkleBlock 2023-11-28 17:49:41 +01:00
message.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
mini_miner.cpp fuzz: mini_miner_selection fixups. 2024-07-09 17:22:57 +01:00
miniscript.cpp refactor: Remove Span operator==, Use std::ranges::equal 2024-08-13 07:44:31 +02:00
minisketch.cpp [fuzz] Improve fuzzing stability for minisketch harness 2023-12-14 20:10:21 +00:00
muhash.cpp refactor: Hand-replace some uint256S -> uint256 2024-08-05 14:51:47 +02:00
multiplication_overflow.cpp build, msvc: Build fuzz.exe binary 2024-04-18 10:27:25 +01:00
net.cpp net: Clarify that m_addr_local is only set once 2024-08-09 14:05:04 +02:00
net_permissions.cpp Merge bitcoin/bitcoin#27114: p2p: Allow whitelisting manual connections 2024-03-12 12:59:02 -04:00
netaddress.cpp fuzz: extend ConsumeNetAddr() to return I2P and CJDNS addresses 2024-01-23 11:49:32 +01:00
netbase_dns_lookup.cpp p2p: return CSubNet in LookupSubNet 2023-05-30 16:27:21 -03:00
node_eviction.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
p2p_handshake.cpp remove repeated word in note 2024-08-13 15:44:46 -04:00
p2p_headers_presync.cpp fuzz: Add harness for p2p headers sync 2024-09-10 11:56:07 +01:00
p2p_transport_serialization.cpp refactor: Remove Span operator==, Use std::ranges::equal 2024-08-13 07:44:31 +02:00
package_eval.cpp scripted-diff: change names from V3 to TRUC 2024-07-02 12:06:07 +01:00
parse_hd_keypath.cpp Switch hardened derivation marker to h in descriptors 2023-04-04 18:33:08 +02:00
parse_numbers.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
parse_script.cpp
parse_univalue.cpp fuzz: Limit parse_univalue input length 2024-07-19 15:39:02 +02:00
partially_downloaded_block.cpp Merge bitcoin/bitcoin#30237: test: Add Compact Block Encoding test ReceiveWithExtraTransactions covering non-empty extra_txn 2024-07-01 14:11:52 +01:00
policy_estimator.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
policy_estimator_io.cpp fuzz: Remove FuzzedAutoFileProvider 2023-11-14 17:41:26 +01:00
poolresource.cpp refactor: Remove Span operator==, Use std::ranges::equal 2024-08-13 07:44:31 +02:00
pow.cpp Add FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION in PoW check 2024-09-02 15:43:33 +01:00
prevector.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
primitives_transaction.cpp Use ParamsWrapper for witness serialization 2023-11-14 08:45:30 +10:00
process_message.cpp test: [refactor] Pass TestOpts 2024-07-08 16:11:15 +02:00
process_messages.cpp test: [refactor] Pass TestOpts 2024-07-08 16:11:15 +02:00
protocol.cpp
psbt.cpp Remove unused version.h include 2023-11-30 11:28:19 +01:00
random.cpp random: drop ad-hoc Shuffle in favor of std::shuffle 2024-07-06 09:06:36 -04:00
rbf.cpp fuzz: have package_rbf always make small txns 2024-06-18 10:19:41 -04:00
rolling_bloom_filter.cpp
rpc.cpp test: [refactor] Pass TestOpts 2024-07-08 16:11:15 +02:00
script.cpp [test]: remove ExtractDestination false assertion for ANCHOR script 2024-08-09 11:18:45 +01:00
script_assets_test_minimizer.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
script_descriptor_cache.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
script_flags.cpp Fix IWYU for the script_flags fuzz target 2023-11-23 17:57:53 +01:00
script_format.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
script_interpreter.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
script_ops.cpp
script_parsing.cpp util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
script_sigcache.cpp fuzz: Deglobalize signature cache in sigcache test 2024-07-19 17:17:02 +02:00
script_sign.cpp Merge bitcoin/bitcoin#29043: fuzz: make FuzzedDataProvider usage deterministic 2024-09-04 15:04:53 -04:00
scriptnum_ops.cpp
secp256k1_ec_seckey_import_export_der.cpp test: replace deprecated secp256k1 context flags usage 2024-08-21 00:41:56 +02:00
secp256k1_ecdsa_signature_parse_der_lax.cpp test: Use ECC_Context helper in bench and fuzz tests 2024-05-09 15:56:04 +02:00
signature_checker.cpp Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
signet.cpp Use ParamsWrapper for witness serialization 2023-11-14 08:45:30 +10:00
socks5.cpp fuzz: make FuzzedDataProvider usage deterministic 2023-12-09 19:31:06 +01:00
span.cpp refactor: Remove Span operator==, Use std::ranges::equal 2024-08-13 07:44:31 +02:00
string.cpp util: Catch translation string errors at compile time 2024-07-10 09:40:47 +02:00
strprintf.cpp
system.cpp multiprocess: Add -ipcbind option to bitcoin-node 2024-09-06 09:08:10 -04:00
timeoffsets.cpp refactor: remove warnings globals 2024-06-13 11:20:49 +01:00
torcontrol.cpp scripted-diff: Use new FUZZ_TARGET macro everywhere 2023-07-13 20:37:14 +02:00
transaction.cpp fuzz: Drop unused version from fuzz input format 2023-11-30 11:27:21 +01:00
tx_in.cpp Remove unused version.h include 2023-11-30 11:28:19 +01:00
tx_out.cpp Remove unused version.h include 2023-11-30 11:28:19 +01:00
tx_pool.cpp scripted-diff: change names from V3 to TRUC 2024-07-02 12:06:07 +01:00
txorphan.cpp fuzz: Speed up PickValue in txorphan 2024-07-23 10:37:58 +02:00
txrequest.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
util.cpp policy: Add OP_1 <0x4e73> as a standard output type 2024-07-30 14:06:58 -04:00
util.h Remove unused version.h include 2023-11-30 11:28:19 +01:00
utxo_snapshot.cpp validation: Use span for ProcessNewBlockHeaders 2024-08-30 10:17:09 +02:00
utxo_total_supply.cpp test: [refactor] Pass TestOpts 2024-07-08 16:11:15 +02:00
validation_load_mempool.cpp mempool: move LoadMempool/DumpMempool to node 2024-06-26 22:47:09 +00:00
vecdeque.cpp random: convert XoRoShiRo128PlusPlus into full RNG 2024-07-01 10:26:46 -04:00
versionbits.cpp scripted-diff: Use new FUZZ_TARGET macro everywhere 2023-07-13 20:37:14 +02:00