aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2024-08-16 19:26:17 +0100
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2024-08-16 19:27:41 +0100
commit3d853795707c5a1828dcd09c1f68bb07dee472cd (patch)
tree35154e60e7942659e68484a48acbd96273a27ba6 /src/test
parent908530e312a3d4561f9c1feeb2a76ce899f21c68 (diff)
cmake: Add fuzzing options
Diffstat (limited to 'src/test')
-rw-r--r--src/test/fuzz/CMakeLists.txt144
-rw-r--r--src/test/fuzz/util/CMakeLists.txt23
2 files changed, 167 insertions, 0 deletions
diff --git a/src/test/fuzz/CMakeLists.txt b/src/test/fuzz/CMakeLists.txt
new file mode 100644
index 0000000000..134232e984
--- /dev/null
+++ b/src/test/fuzz/CMakeLists.txt
@@ -0,0 +1,144 @@
+# Copyright (c) 2023-present The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or https://opensource.org/license/mit/.
+
+add_subdirectory(util)
+
+add_executable(fuzz
+ addition_overflow.cpp
+ addrman.cpp
+ asmap.cpp
+ asmap_direct.cpp
+ autofile.cpp
+ banman.cpp
+ base_encode_decode.cpp
+ bech32.cpp
+ bip324.cpp
+ bitdeque.cpp
+ bitset.cpp
+ block.cpp
+ block_header.cpp
+ block_index.cpp
+ blockfilter.cpp
+ bloom_filter.cpp
+ buffered_file.cpp
+ chain.cpp
+ checkqueue.cpp
+ cluster_linearize.cpp
+ coins_view.cpp
+ coinscache_sim.cpp
+ connman.cpp
+ crypto.cpp
+ crypto_aes256.cpp
+ crypto_aes256cbc.cpp
+ crypto_chacha20.cpp
+ crypto_chacha20poly1305.cpp
+ crypto_common.cpp
+ crypto_diff_fuzz_chacha20.cpp
+ crypto_hkdf_hmac_sha256_l32.cpp
+ crypto_poly1305.cpp
+ cuckoocache.cpp
+ decode_tx.cpp
+ descriptor_parse.cpp
+ deserialize.cpp
+ eval_script.cpp
+ feefrac.cpp
+ fee_rate.cpp
+ feeratediagram.cpp
+ fees.cpp
+ flatfile.cpp
+ float.cpp
+ golomb_rice.cpp
+ headerssync.cpp
+ hex.cpp
+ http_request.cpp
+ integer.cpp
+ key.cpp
+ key_io.cpp
+ kitchen_sink.cpp
+ load_external_block_file.cpp
+ locale.cpp
+ merkleblock.cpp
+ message.cpp
+ miniscript.cpp
+ minisketch.cpp
+ mini_miner.cpp
+ muhash.cpp
+ multiplication_overflow.cpp
+ net.cpp
+ net_permissions.cpp
+ netaddress.cpp
+ netbase_dns_lookup.cpp
+ node_eviction.cpp
+ p2p_handshake.cpp
+ p2p_transport_serialization.cpp
+ package_eval.cpp
+ parse_hd_keypath.cpp
+ parse_numbers.cpp
+ parse_script.cpp
+ parse_univalue.cpp
+ partially_downloaded_block.cpp
+ policy_estimator.cpp
+ policy_estimator_io.cpp
+ poolresource.cpp
+ pow.cpp
+ prevector.cpp
+ primitives_transaction.cpp
+ process_message.cpp
+ process_messages.cpp
+ protocol.cpp
+ psbt.cpp
+ random.cpp
+ rbf.cpp
+ rolling_bloom_filter.cpp
+ rpc.cpp
+ script.cpp
+ script_assets_test_minimizer.cpp
+ script_descriptor_cache.cpp
+ script_flags.cpp
+ script_format.cpp
+ script_interpreter.cpp
+ script_ops.cpp
+ script_parsing.cpp
+ script_sigcache.cpp
+ script_sign.cpp
+ scriptnum_ops.cpp
+ secp256k1_ec_seckey_import_export_der.cpp
+ secp256k1_ecdsa_signature_parse_der_lax.cpp
+ signature_checker.cpp
+ signet.cpp
+ socks5.cpp
+ span.cpp
+ string.cpp
+ strprintf.cpp
+ system.cpp
+ timeoffsets.cpp
+ torcontrol.cpp
+ transaction.cpp
+ tx_in.cpp
+ tx_out.cpp
+ tx_pool.cpp
+ txorphan.cpp
+ txrequest.cpp
+ utxo_snapshot.cpp
+ utxo_total_supply.cpp
+ validation_load_mempool.cpp
+ vecdeque.cpp
+ versionbits.cpp
+)
+target_link_libraries(fuzz
+ core_interface
+ test_fuzz
+ bitcoin_cli
+ bitcoin_common
+ minisketch
+ leveldb
+ univalue
+ secp256k1
+ Boost::headers
+ $<TARGET_NAME_IF_EXISTS:libevent::libevent>
+)
+
+if(ENABLE_WALLET)
+ add_subdirectory(${PROJECT_SOURCE_DIR}/src/wallet/test/fuzz wallet)
+endif()
diff --git a/src/test/fuzz/util/CMakeLists.txt b/src/test/fuzz/util/CMakeLists.txt
new file mode 100644
index 0000000000..f73a1a83c2
--- /dev/null
+++ b/src/test/fuzz/util/CMakeLists.txt
@@ -0,0 +1,23 @@
+# Copyright (c) 2023-present The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or https://opensource.org/license/mit/.
+
+add_library(test_fuzz STATIC EXCLUDE_FROM_ALL
+ descriptor.cpp
+ mempool.cpp
+ net.cpp
+ ../fuzz.cpp
+ ../util.cpp
+)
+
+target_link_libraries(test_fuzz
+ PRIVATE
+ core_interface
+ test_util
+ bitcoin_node
+ Boost::headers
+)
+
+if(NOT FUZZ_BINARY_LINKS_WITHOUT_MAIN_FUNCTION)
+ target_compile_definitions(test_fuzz PRIVATE PROVIDE_FUZZ_MAIN_FUNCTION)
+endif()