# Copyright (c) 2013-2016 The Palladium Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

FUZZ_TARGETS = \
  test/fuzz/addition_overflow \
  test/fuzz/addr_info_deserialize \
  test/fuzz/addrdb \
  test/fuzz/address_deserialize \
  test/fuzz/addrman_deserialize \
  test/fuzz/asmap \
  test/fuzz/banentry_deserialize \
  test/fuzz/base_encode_decode \
  test/fuzz/bech32 \
  test/fuzz/block \
  test/fuzz/block_deserialize \
  test/fuzz/block_file_info_deserialize \
  test/fuzz/block_filter_deserialize \
  test/fuzz/block_header \
  test/fuzz/block_header_and_short_txids_deserialize \
  test/fuzz/blockfilter \
  test/fuzz/blockheader_deserialize \
  test/fuzz/blocklocator_deserialize \
  test/fuzz/blockmerkleroot \
  test/fuzz/blocktransactions_deserialize \
  test/fuzz/blocktransactionsrequest_deserialize \
  test/fuzz/blockundo_deserialize \
  test/fuzz/bloom_filter \
  test/fuzz/bloomfilter_deserialize \
  test/fuzz/chain \
  test/fuzz/checkqueue \
  test/fuzz/coins_deserialize \
  test/fuzz/cuckoocache \
  test/fuzz/decode_tx \
  test/fuzz/descriptor_parse \
  test/fuzz/diskblockindex_deserialize \
  test/fuzz/eval_script \
  test/fuzz/fee_rate \
  test/fuzz/fee_rate_deserialize \
  test/fuzz/fees \
  test/fuzz/flat_file_pos_deserialize \
  test/fuzz/flatfile \
  test/fuzz/float \
  test/fuzz/hex \
  test/fuzz/http_request \
  test/fuzz/integer \
  test/fuzz/inv_deserialize \
  test/fuzz/key \
  test/fuzz/key_io \
  test/fuzz/key_origin_info_deserialize \
  test/fuzz/locale \
  test/fuzz/merkle_block_deserialize \
  test/fuzz/merkleblock \
  test/fuzz/messageheader_deserialize \
  test/fuzz/multiplication_overflow \
  test/fuzz/net_permissions \
  test/fuzz/netaddr_deserialize \
  test/fuzz/netaddress \
  test/fuzz/out_point_deserialize \
  test/fuzz/p2p_transport_deserializer \
  test/fuzz/parse_hd_keypath \
  test/fuzz/parse_iso8601 \
  test/fuzz/parse_numbers \
  test/fuzz/parse_script \
  test/fuzz/parse_univalue \
  test/fuzz/prevector \
  test/fuzz/partial_merkle_tree_deserialize \
  test/fuzz/partially_signed_transaction_deserialize \
  test/fuzz/pow \
  test/fuzz/prefilled_transaction_deserialize \
  test/fuzz/process_messages \
  test/fuzz/process_message \
  test/fuzz/process_message_addr \
  test/fuzz/process_message_block \
  test/fuzz/process_message_blocktxn \
  test/fuzz/process_message_cmpctblock \
  test/fuzz/process_message_feefilter \
  test/fuzz/process_message_filteradd \
  test/fuzz/process_message_filterclear \
  test/fuzz/process_message_filterload \
  test/fuzz/process_message_getaddr \
  test/fuzz/process_message_getblocks \
  test/fuzz/process_message_getblocktxn \
  test/fuzz/process_message_getdata \
  test/fuzz/process_message_getheaders \
  test/fuzz/process_message_headers \
  test/fuzz/process_message_inv \
  test/fuzz/process_message_mempool \
  test/fuzz/process_message_notfound \
  test/fuzz/process_message_ping \
  test/fuzz/process_message_pong \
  test/fuzz/process_message_sendcmpct \
  test/fuzz/process_message_sendheaders \
  test/fuzz/process_message_tx \
  test/fuzz/process_message_verack \
  test/fuzz/process_message_version \
  test/fuzz/protocol \
  test/fuzz/psbt \
  test/fuzz/psbt_input_deserialize \
  test/fuzz/psbt_output_deserialize \
  test/fuzz/pub_key_deserialize \
  test/fuzz/random \
  test/fuzz/rolling_bloom_filter \
  test/fuzz/script \
  test/fuzz/script_deserialize \
  test/fuzz/script_flags \
  test/fuzz/service_deserialize \
  test/fuzz/signature_checker \
  test/fuzz/snapshotmetadata_deserialize \
  test/fuzz/span \
  test/fuzz/spanparsing \
  test/fuzz/string \
  test/fuzz/strprintf \
  test/fuzz/sub_net_deserialize \
  test/fuzz/timedata \
  test/fuzz/transaction \
  test/fuzz/tx_in \
  test/fuzz/tx_in_deserialize \
  test/fuzz/tx_out \
  test/fuzz/txoutcompressor_deserialize \
  test/fuzz/txundo_deserialize \
  test/fuzz/uint160_deserialize \
  test/fuzz/uint256_deserialize

if ENABLE_FUZZ
noinst_PROGRAMS += $(FUZZ_TARGETS:=)
else
bin_PROGRAMS += test/test_palladium
endif

TEST_SRCDIR = test
TEST_BINARY=test/test_palladium$(EXEEXT)

JSON_TEST_FILES = \
  test/data/script_tests.json \
  test/data/base58_encode_decode.json \
  test/data/blockfilters.json \
  test/data/key_io_valid.json \
  test/data/key_io_invalid.json \
  test/data/script_tests.json \
  test/data/sighash.json \
  test/data/tx_invalid.json \
  test/data/tx_valid.json

RAW_TEST_FILES = \
  test/data/asmap.raw

GENERATED_TEST_FILES = $(JSON_TEST_FILES:.json=.json.h) $(RAW_TEST_FILES:.raw=.raw.h)

PALLADIUM_TEST_SUITE = \
  test/main.cpp \
  $(TEST_UTIL_H)

FUZZ_SUITE_LD_COMMON = \
 $(LIBPALLADIUM_SERVER) \
 $(LIBPALLADIUM_COMMON) \
 $(LIBPALLADIUM_UTIL) \
 $(LIBTEST_UTIL) \
 $(LIBTEST_FUZZ) \
 $(LIBPALLADIUM_CONSENSUS) \
 $(LIBPALLADIUM_CRYPTO) \
 $(LIBPALLADIUM_CLI) \
 $(LIBUNIVALUE) \
 $(LIBLEVELDB) \
 $(LIBLEVELDB_SSE42) \
 $(BOOST_LIBS) \
 $(LIBMEMENV) \
 $(LIBSECP256K1) \
 $(EVENT_LIBS) \
 $(EVENT_PTHREADS_LIBS)

# test_palladium binary #
PALLADIUM_TESTS =\
  test/arith_uint256_tests.cpp \
  test/scriptnum10.h \
  test/addrman_tests.cpp \
  test/amount_tests.cpp \
  test/allocator_tests.cpp \
  test/base32_tests.cpp \
  test/base58_tests.cpp \
  test/base64_tests.cpp \
  test/bech32_tests.cpp \
  test/bip32_tests.cpp \
  test/blockchain_tests.cpp \
  test/blockencodings_tests.cpp \
  test/blockfilter_tests.cpp \
  test/blockfilter_index_tests.cpp \
  test/bloom_tests.cpp \
  test/bswap_tests.cpp \
  test/checkqueue_tests.cpp \
  test/coins_tests.cpp \
  test/compilerbug_tests.cpp \
  test/compress_tests.cpp \
  test/crypto_tests.cpp \
  test/cuckoocache_tests.cpp \
  test/denialofservice_tests.cpp \
  test/descriptor_tests.cpp \
  test/flatfile_tests.cpp \
  test/fs_tests.cpp \
  test/getarg_tests.cpp \
  test/hash_tests.cpp \
  test/key_io_tests.cpp \
  test/key_tests.cpp \
  test/limitedmap_tests.cpp \
  test/logging_tests.cpp \
  test/dbwrapper_tests.cpp \
  test/validation_tests.cpp \
  test/mempool_tests.cpp \
  test/merkle_tests.cpp \
  test/merkleblock_tests.cpp \
  test/miner_tests.cpp \
  test/multisig_tests.cpp \
  test/net_tests.cpp \
  test/netbase_tests.cpp \
  test/pmt_tests.cpp \
  test/policyestimator_tests.cpp \
  test/pow_tests.cpp \
  test/prevector_tests.cpp \
  test/raii_event_tests.cpp \
  test/random_tests.cpp \
  test/reverselock_tests.cpp \
  test/rpc_tests.cpp \
  test/sanity_tests.cpp \
  test/scheduler_tests.cpp \
  test/script_p2sh_tests.cpp \
  test/script_tests.cpp \
  test/script_standard_tests.cpp \
  test/scriptnum_tests.cpp \
  test/serialize_tests.cpp \
  test/settings_tests.cpp \
  test/sighash_tests.cpp \
  test/sigopcount_tests.cpp \
  test/skiplist_tests.cpp \
  test/streams_tests.cpp \
  test/sync_tests.cpp \
  test/util_threadnames_tests.cpp \
  test/timedata_tests.cpp \
  test/torcontrol_tests.cpp \
  test/transaction_tests.cpp \
  test/txindex_tests.cpp \
  test/txvalidation_tests.cpp \
  test/txvalidationcache_tests.cpp \
  test/uint256_tests.cpp \
  test/util_tests.cpp \
  test/validation_block_tests.cpp \
  test/validation_flush_tests.cpp \
  test/validationinterface_tests.cpp \
  test/versionbits_tests.cpp

if ENABLE_WALLET
PALLADIUM_TESTS += \
  wallet/test/db_tests.cpp \
  wallet/test/psbt_wallet_tests.cpp \
  wallet/test/wallet_tests.cpp \
  wallet/test/wallet_crypto_tests.cpp \
  wallet/test/coinselector_tests.cpp \
  wallet/test/init_tests.cpp \
  wallet/test/ismine_tests.cpp \
  wallet/test/scriptpubkeyman_tests.cpp

PALLADIUM_TEST_SUITE += \
  wallet/test/wallet_test_fixture.cpp \
  wallet/test/wallet_test_fixture.h \
  wallet/test/init_test_fixture.cpp \
  wallet/test/init_test_fixture.h
endif

test_test_palladium_SOURCES = $(PALLADIUM_TEST_SUITE) $(PALLADIUM_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
test_test_palladium_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) $(TESTDEFS) $(EVENT_CFLAGS)
test_test_palladium_LDADD = $(LIBTEST_UTIL)
if ENABLE_WALLET
test_test_palladium_LDADD += $(LIBPALLADIUM_WALLET)
endif

test_test_palladium_LDADD += $(LIBPALLADIUM_SERVER) $(LIBPALLADIUM_CLI) $(LIBPALLADIUM_COMMON) $(LIBPALLADIUM_UTIL) $(LIBPALLADIUM_CONSENSUS) $(LIBPALLADIUM_CRYPTO) $(LIBUNIVALUE) \
  $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
test_test_palladium_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)

test_test_palladium_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS)
test_test_palladium_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static

if ENABLE_ZMQ
test_test_palladium_LDADD += $(LIBPALLADIUM_ZMQ) $(ZMQ_LIBS)
endif

if ENABLE_FUZZ

test_fuzz_addition_overflow_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_addition_overflow_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_addition_overflow_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_addition_overflow_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_addition_overflow_SOURCES = test/fuzz/addition_overflow.cpp

test_fuzz_addr_info_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DADDR_INFO_DESERIALIZE=1
test_fuzz_addr_info_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_addr_info_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_addr_info_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_addr_info_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_addrdb_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_addrdb_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_addrdb_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_addrdb_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_addrdb_SOURCES = test/fuzz/addrdb.cpp

test_fuzz_address_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DADDRESS_DESERIALIZE=1
test_fuzz_address_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_address_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_address_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_address_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_addrman_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DADDRMAN_DESERIALIZE=1
test_fuzz_addrman_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_addrman_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_addrman_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_addrman_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_asmap_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_asmap_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_asmap_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_asmap_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_asmap_SOURCES = test/fuzz/asmap.cpp

test_fuzz_banentry_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBANENTRY_DESERIALIZE=1
test_fuzz_banentry_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_banentry_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_banentry_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_banentry_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_base_encode_decode_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_base_encode_decode_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_base_encode_decode_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_base_encode_decode_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_base_encode_decode_SOURCES = test/fuzz/base_encode_decode.cpp

test_fuzz_bech32_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_bech32_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_bech32_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_bech32_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_bech32_SOURCES = test/fuzz/bech32.cpp

test_fuzz_block_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_block_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_SOURCES = test/fuzz/block.cpp

test_fuzz_block_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCK_DESERIALIZE=1
test_fuzz_block_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_block_file_info_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCK_FILE_INFO_DESERIALIZE=1
test_fuzz_block_file_info_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_file_info_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_file_info_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_file_info_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_block_filter_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCK_FILTER_DESERIALIZE=1
test_fuzz_block_filter_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_filter_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_filter_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_filter_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_block_header_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_block_header_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_header_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_header_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_header_SOURCES = test/fuzz/block_header.cpp

test_fuzz_block_header_and_short_txids_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCK_HEADER_AND_SHORT_TXIDS_DESERIALIZE=1
test_fuzz_block_header_and_short_txids_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_block_header_and_short_txids_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_block_header_and_short_txids_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_block_header_and_short_txids_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blockfilter_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_blockfilter_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blockfilter_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blockfilter_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blockfilter_SOURCES = test/fuzz/blockfilter.cpp

test_fuzz_blockheader_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKHEADER_DESERIALIZE=1
test_fuzz_blockheader_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blockheader_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blockheader_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blockheader_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blocklocator_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKLOCATOR_DESERIALIZE=1
test_fuzz_blocklocator_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blocklocator_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blocklocator_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blocklocator_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blockmerkleroot_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKMERKLEROOT=1
test_fuzz_blockmerkleroot_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blockmerkleroot_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blockmerkleroot_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blockmerkleroot_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blocktransactions_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKTRANSACTIONS_DESERIALIZE=1
test_fuzz_blocktransactions_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blocktransactions_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blocktransactions_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blocktransactions_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blocktransactionsrequest_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKTRANSACTIONSREQUEST_DESERIALIZE=1
test_fuzz_blocktransactionsrequest_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blocktransactionsrequest_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blocktransactionsrequest_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blocktransactionsrequest_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_blockundo_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOCKUNDO_DESERIALIZE=1
test_fuzz_blockundo_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_blockundo_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_blockundo_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_blockundo_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_bloom_filter_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_bloom_filter_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_bloom_filter_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_bloom_filter_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_bloom_filter_SOURCES = test/fuzz/bloom_filter.cpp

test_fuzz_bloomfilter_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DBLOOMFILTER_DESERIALIZE=1
test_fuzz_bloomfilter_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_bloomfilter_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_bloomfilter_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_bloomfilter_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_chain_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_chain_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_chain_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_chain_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_chain_SOURCES = test/fuzz/chain.cpp

test_fuzz_checkqueue_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_checkqueue_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_checkqueue_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_checkqueue_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_checkqueue_SOURCES = test/fuzz/checkqueue.cpp

test_fuzz_coins_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DCOINS_DESERIALIZE=1
test_fuzz_coins_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_coins_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_coins_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_coins_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_cuckoocache_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_cuckoocache_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_cuckoocache_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_cuckoocache_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_cuckoocache_SOURCES = test/fuzz/cuckoocache.cpp

test_fuzz_decode_tx_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_decode_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_decode_tx_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_decode_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_decode_tx_SOURCES = test/fuzz/decode_tx.cpp

test_fuzz_descriptor_parse_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_descriptor_parse_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_descriptor_parse_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_descriptor_parse_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_descriptor_parse_SOURCES = test/fuzz/descriptor_parse.cpp

test_fuzz_diskblockindex_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DDISKBLOCKINDEX_DESERIALIZE=1
test_fuzz_diskblockindex_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_diskblockindex_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_diskblockindex_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_diskblockindex_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_eval_script_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_eval_script_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_eval_script_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_eval_script_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_eval_script_SOURCES = test/fuzz/eval_script.cpp

test_fuzz_fee_rate_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_fee_rate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_fee_rate_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_fee_rate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_fee_rate_SOURCES = test/fuzz/fee_rate.cpp

test_fuzz_fee_rate_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DFEE_RATE_DESERIALIZE=1
test_fuzz_fee_rate_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_fee_rate_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_fee_rate_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_fee_rate_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_fees_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_fees_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_fees_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_fees_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_fees_SOURCES = test/fuzz/fees.cpp

test_fuzz_flat_file_pos_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DFLAT_FILE_POS_DESERIALIZE=1
test_fuzz_flat_file_pos_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_flat_file_pos_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_flat_file_pos_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_flat_file_pos_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_flatfile_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_flatfile_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_flatfile_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_flatfile_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_flatfile_SOURCES = test/fuzz/flatfile.cpp

test_fuzz_float_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_float_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_float_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_float_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_float_SOURCES = test/fuzz/float.cpp

test_fuzz_hex_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_hex_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_hex_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_hex_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_hex_SOURCES = test/fuzz/hex.cpp

test_fuzz_http_request_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_http_request_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_http_request_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_http_request_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_http_request_SOURCES = test/fuzz/http_request.cpp

test_fuzz_integer_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_integer_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_integer_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_integer_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_integer_SOURCES = test/fuzz/integer.cpp

test_fuzz_inv_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DINV_DESERIALIZE=1
test_fuzz_inv_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_inv_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_inv_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_inv_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_key_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_key_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_key_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_key_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_key_SOURCES = test/fuzz/key.cpp

test_fuzz_key_io_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_key_io_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_key_io_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_key_io_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_key_io_SOURCES = test/fuzz/key_io.cpp

test_fuzz_key_origin_info_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DKEY_ORIGIN_INFO_DESERIALIZE=1
test_fuzz_key_origin_info_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_key_origin_info_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_key_origin_info_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_key_origin_info_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_locale_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_locale_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_locale_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_locale_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_locale_SOURCES = test/fuzz/locale.cpp

test_fuzz_merkle_block_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMERKLE_BLOCK_DESERIALIZE=1
test_fuzz_merkle_block_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_merkle_block_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_merkle_block_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_merkle_block_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_merkleblock_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_merkleblock_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_merkleblock_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_merkleblock_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_merkleblock_SOURCES = test/fuzz/merkleblock.cpp

test_fuzz_messageheader_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGEHEADER_DESERIALIZE=1
test_fuzz_messageheader_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_messageheader_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_messageheader_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_messageheader_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_multiplication_overflow_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_multiplication_overflow_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_multiplication_overflow_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_multiplication_overflow_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_multiplication_overflow_SOURCES = test/fuzz/multiplication_overflow.cpp

test_fuzz_net_permissions_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_net_permissions_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_net_permissions_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_net_permissions_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_net_permissions_SOURCES = test/fuzz/net_permissions.cpp

test_fuzz_netaddr_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DNETADDR_DESERIALIZE=1
test_fuzz_netaddr_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_netaddr_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_netaddr_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_netaddr_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_netaddress_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_netaddress_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_netaddress_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_netaddress_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_netaddress_SOURCES = test/fuzz/netaddress.cpp

test_fuzz_out_point_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DOUT_POINT_DESERIALIZE=1
test_fuzz_out_point_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_out_point_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_out_point_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_out_point_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_p2p_transport_deserializer_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_p2p_transport_deserializer_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_p2p_transport_deserializer_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_p2p_transport_deserializer_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_p2p_transport_deserializer_SOURCES = test/fuzz/p2p_transport_deserializer.cpp

test_fuzz_parse_hd_keypath_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_parse_hd_keypath_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_parse_hd_keypath_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_parse_hd_keypath_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_parse_hd_keypath_SOURCES = test/fuzz/parse_hd_keypath.cpp

test_fuzz_parse_iso8601_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_parse_iso8601_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_parse_iso8601_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_parse_iso8601_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_parse_iso8601_SOURCES = test/fuzz/parse_iso8601.cpp

test_fuzz_parse_numbers_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_parse_numbers_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_parse_numbers_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_parse_numbers_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_parse_numbers_SOURCES = test/fuzz/parse_numbers.cpp

test_fuzz_parse_script_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_parse_script_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_parse_script_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_parse_script_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_parse_script_SOURCES = test/fuzz/parse_script.cpp

test_fuzz_parse_univalue_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_parse_univalue_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_parse_univalue_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_parse_univalue_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_parse_univalue_SOURCES = test/fuzz/parse_univalue.cpp

test_fuzz_prevector_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_prevector_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_prevector_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_prevector_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_prevector_SOURCES = test/fuzz/prevector.cpp

test_fuzz_partial_merkle_tree_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPARTIAL_MERKLE_TREE_DESERIALIZE=1
test_fuzz_partial_merkle_tree_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_partial_merkle_tree_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_partial_merkle_tree_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_partial_merkle_tree_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_partially_signed_transaction_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPARTIALLY_SIGNED_TRANSACTION_DESERIALIZE=1
test_fuzz_partially_signed_transaction_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_partially_signed_transaction_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_partially_signed_transaction_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_partially_signed_transaction_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_pow_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_pow_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_pow_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_pow_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_pow_SOURCES = test/fuzz/pow.cpp

test_fuzz_prefilled_transaction_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPREFILLED_TRANSACTION_DESERIALIZE=1
test_fuzz_prefilled_transaction_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_prefilled_transaction_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_prefilled_transaction_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_prefilled_transaction_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_process_messages_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_process_messages_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_messages_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_messages_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_messages_SOURCES = test/fuzz/process_messages.cpp

test_fuzz_process_message_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_process_message_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_addr_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=addr
test_fuzz_process_message_addr_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_addr_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_addr_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_addr_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_block_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=block
test_fuzz_process_message_block_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_block_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_block_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_block_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_blocktxn_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=blocktxn
test_fuzz_process_message_blocktxn_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_blocktxn_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_blocktxn_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_blocktxn_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_cmpctblock_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=cmpctblock
test_fuzz_process_message_cmpctblock_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_cmpctblock_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_cmpctblock_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_cmpctblock_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_feefilter_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=feefilter
test_fuzz_process_message_feefilter_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_feefilter_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_feefilter_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_feefilter_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_filteradd_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=filteradd
test_fuzz_process_message_filteradd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_filteradd_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_filteradd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_filteradd_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_filterclear_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=filterclear
test_fuzz_process_message_filterclear_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_filterclear_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_filterclear_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_filterclear_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_filterload_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=filterload
test_fuzz_process_message_filterload_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_filterload_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_filterload_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_filterload_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_getaddr_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=getaddr
test_fuzz_process_message_getaddr_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_getaddr_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_getaddr_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_getaddr_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_getblocks_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=getblocks
test_fuzz_process_message_getblocks_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_getblocks_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_getblocks_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_getblocks_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_getblocktxn_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=getblocktxn
test_fuzz_process_message_getblocktxn_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_getblocktxn_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_getblocktxn_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_getblocktxn_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_getdata_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=getdata
test_fuzz_process_message_getdata_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_getdata_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_getdata_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_getdata_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_getheaders_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=getheaders
test_fuzz_process_message_getheaders_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_getheaders_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_getheaders_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_getheaders_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_headers_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=headers
test_fuzz_process_message_headers_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_headers_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_headers_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_headers_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_inv_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=inv
test_fuzz_process_message_inv_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_inv_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_inv_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_inv_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_mempool_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=mempool
test_fuzz_process_message_mempool_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_mempool_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_mempool_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_mempool_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_notfound_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=notfound
test_fuzz_process_message_notfound_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_notfound_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_notfound_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_notfound_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_ping_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=ping
test_fuzz_process_message_ping_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_ping_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_ping_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_ping_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_pong_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=pong
test_fuzz_process_message_pong_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_pong_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_pong_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_pong_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_sendcmpct_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=sendcmpct
test_fuzz_process_message_sendcmpct_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_sendcmpct_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_sendcmpct_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_sendcmpct_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_sendheaders_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=sendheaders
test_fuzz_process_message_sendheaders_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_sendheaders_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_sendheaders_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_sendheaders_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_tx_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=tx
test_fuzz_process_message_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_tx_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_tx_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_verack_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=verack
test_fuzz_process_message_verack_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_verack_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_verack_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_verack_SOURCES = test/fuzz/process_message.cpp

test_fuzz_process_message_version_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DMESSAGE_TYPE=version
test_fuzz_process_message_version_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_process_message_version_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_process_message_version_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_process_message_version_SOURCES = test/fuzz/process_message.cpp

test_fuzz_protocol_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_protocol_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_protocol_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_protocol_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_protocol_SOURCES = test/fuzz/protocol.cpp

test_fuzz_psbt_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_psbt_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_psbt_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_psbt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_psbt_SOURCES = test/fuzz/psbt.cpp

test_fuzz_psbt_input_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPSBT_INPUT_DESERIALIZE=1
test_fuzz_psbt_input_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_psbt_input_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_psbt_input_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_psbt_input_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_psbt_output_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPSBT_OUTPUT_DESERIALIZE=1
test_fuzz_psbt_output_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_psbt_output_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_psbt_output_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_psbt_output_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_pub_key_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DPUB_KEY_DESERIALIZE=1
test_fuzz_pub_key_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_pub_key_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_pub_key_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_pub_key_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_random_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_random_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_random_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_random_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_random_SOURCES = test/fuzz/random.cpp

test_fuzz_rolling_bloom_filter_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_rolling_bloom_filter_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_rolling_bloom_filter_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_rolling_bloom_filter_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_rolling_bloom_filter_SOURCES = test/fuzz/rolling_bloom_filter.cpp

test_fuzz_script_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_script_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_script_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_script_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_script_SOURCES = test/fuzz/script.cpp

test_fuzz_script_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DSCRIPT_DESERIALIZE=1
test_fuzz_script_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_script_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_script_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_script_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_script_flags_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_script_flags_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_script_flags_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_script_flags_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_script_flags_SOURCES = test/fuzz/script_flags.cpp

# Disabled for now, as #18413 has not been backported.
# test_fuzz_script_ops_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
# test_fuzz_script_ops_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
# test_fuzz_script_ops_LDADD = $(FUZZ_SUITE_LD_COMMON)
# test_fuzz_script_ops_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
# test_fuzz_script_ops_SOURCES = test/fuzz/script_ops.cpp

# test_fuzz_scriptnum_ops_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
# test_fuzz_scriptnum_ops_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
# test_fuzz_scriptnum_ops_LDADD = $(FUZZ_SUITE_LD_COMMON)
# test_fuzz_scriptnum_ops_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
# test_fuzz_scriptnum_ops_SOURCES = test/fuzz/scriptnum_ops.cpp

test_fuzz_service_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DSERVICE_DESERIALIZE=1
test_fuzz_service_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_service_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_service_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_service_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_signature_checker_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_signature_checker_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_signature_checker_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_signature_checker_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_signature_checker_SOURCES = test/fuzz/signature_checker.cpp

test_fuzz_snapshotmetadata_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DSNAPSHOTMETADATA_DESERIALIZE=1
test_fuzz_snapshotmetadata_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_snapshotmetadata_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_snapshotmetadata_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_snapshotmetadata_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_span_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_span_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_span_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_span_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_span_SOURCES = test/fuzz/span.cpp

test_fuzz_spanparsing_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_spanparsing_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_spanparsing_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_spanparsing_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_spanparsing_SOURCES = test/fuzz/spanparsing.cpp

test_fuzz_string_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_string_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_string_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_string_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_string_SOURCES = test/fuzz/string.cpp

test_fuzz_strprintf_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_strprintf_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_strprintf_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_strprintf_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_strprintf_SOURCES = test/fuzz/strprintf.cpp

test_fuzz_sub_net_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DSUB_NET_DESERIALIZE=1
test_fuzz_sub_net_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_sub_net_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_sub_net_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_sub_net_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_timedata_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_timedata_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_timedata_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_timedata_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_timedata_SOURCES = test/fuzz/timedata.cpp

test_fuzz_transaction_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_transaction_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_transaction_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_transaction_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_transaction_SOURCES = test/fuzz/transaction.cpp

test_fuzz_tx_in_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_tx_in_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_tx_in_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_tx_in_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_tx_in_SOURCES = test/fuzz/tx_in.cpp

test_fuzz_tx_in_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DTX_IN_DESERIALIZE=1
test_fuzz_tx_in_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_tx_in_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_tx_in_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_tx_in_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_tx_out_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES)
test_fuzz_tx_out_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_tx_out_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_tx_out_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_tx_out_SOURCES = test/fuzz/tx_out.cpp

test_fuzz_txoutcompressor_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DTXOUTCOMPRESSOR_DESERIALIZE=1
test_fuzz_txoutcompressor_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_txoutcompressor_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_txoutcompressor_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_txoutcompressor_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_txundo_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DTXUNDO_DESERIALIZE=1
test_fuzz_txundo_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_txundo_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_txundo_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_txundo_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_uint160_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DUINT160_DESERIALIZE=1
test_fuzz_uint160_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_uint160_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_uint160_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_uint160_deserialize_SOURCES = test/fuzz/deserialize.cpp

test_fuzz_uint256_deserialize_CPPFLAGS = $(AM_CPPFLAGS) $(PALLADIUM_INCLUDES) -DUINT256_DESERIALIZE=1
test_fuzz_uint256_deserialize_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
test_fuzz_uint256_deserialize_LDADD = $(FUZZ_SUITE_LD_COMMON)
test_fuzz_uint256_deserialize_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
test_fuzz_uint256_deserialize_SOURCES = test/fuzz/deserialize.cpp

endif # ENABLE_FUZZ

nodist_test_test_palladium_SOURCES = $(GENERATED_TEST_FILES)

$(PALLADIUM_TESTS): $(GENERATED_TEST_FILES)

CLEAN_PALLADIUM_TEST = test/*.gcda test/*.gcno $(GENERATED_TEST_FILES) $(PALLADIUM_TESTS:=.log)

CLEANFILES += $(CLEAN_PALLADIUM_TEST)

if TARGET_WINDOWS
palladium_test: $(TEST_BINARY)
else
if ENABLE_BENCH
palladium_test: $(TEST_BINARY) $(BENCH_BINARY)
else
palladium_test: $(TEST_BINARY)
endif
endif

palladium_test_check: $(TEST_BINARY) FORCE
	$(MAKE) check-TESTS TESTS=$^

palladium_test_clean : FORCE
	rm -f $(CLEAN_PALLADIUM_TEST) $(test_test_palladium_OBJECTS) $(TEST_BINARY)

check-local: $(PALLADIUM_TESTS:.cpp=.cpp.test)
if BUILD_PALLADIUM_TX
	@echo "Running test/util/palladium-util-test.py..."
	$(PYTHON) $(top_builddir)/test/util/palladium-util-test.py
endif
	@echo "Running test/util/rpcauth-test.py..."
	$(PYTHON) $(top_builddir)/test/util/rpcauth-test.py
if TARGET_WINDOWS
else
if ENABLE_BENCH
	@echo "Running bench/bench_palladium -evals=1 -scaling=0..."
	$(BENCH_BINARY) -evals=1 -scaling=0 > /dev/null
endif
endif
	$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
if EMBEDDED_UNIVALUE
	$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue check
endif

%.cpp.test: %.cpp
	@echo Running tests: `cat $< | grep -E "(BOOST_FIXTURE_TEST_SUITE\\(|BOOST_AUTO_TEST_SUITE\\()" | cut -d '(' -f 2 | cut -d ',' -f 1 | cut -d ')' -f 1` from $<
	$(AM_V_at)$(TEST_BINARY) --catch_system_errors=no -l test_suite -t "`cat $< | grep -E "(BOOST_FIXTURE_TEST_SUITE\\(|BOOST_AUTO_TEST_SUITE\\()" | cut -d '(' -f 2 | cut -d ',' -f 1 | cut -d ')' -f 1`" -- DEBUG_LOG_OUT > $<.log 2>&1 || (cat $<.log && false)

%.json.h: %.json
	@$(MKDIR_P) $(@D)
	@{ \
	 echo "namespace json_tests{" && \
	 echo "static unsigned const char $(*F)[] = {" && \
	 $(HEXDUMP) -v -e '8/1 "0x%02x, "' -e '"\n"' $< | $(SED) -e 's/0x  ,//g' && \
	 echo "};};"; \
	} > "$@.new" && mv -f "$@.new" "$@"
	@echo "Generated $@"

%.raw.h: %.raw
	@$(MKDIR_P) $(@D)
	@{ \
	 echo "static unsigned const char $(*F)_raw[] = {" && \
	 $(HEXDUMP) -v -e '8/1 "0x%02x, "' -e '"\n"' $< | $(SED) -e 's/0x  ,//g' && \
	 echo "};"; \
	} > "$@.new" && mv -f "$@.new" "$@"
	@echo "Generated $@"
