Fix issue #717 t Fix issue #717 where if addrman is starved of addresses (e.g. on testnet) the Select_() function will loop endlessly trying to find an address, and therefore eat up 100% cpu time on the 'opencon' thread. Solution is to (1) add a delay to the loop and (2) restrict the number of attempts to find an address. On exiting the loop, we return to an outer loop in net.cpp which will sleep, add seed nodes and calculate new addresses.
143 lines
4.2 KiB
Makefile
143 lines
4.2 KiB
Makefile
TESTS += test/test_bitcoin
|
|
bin_PROGRAMS += test/test_bitcoin
|
|
TEST_SRCDIR = test
|
|
TEST_BINARY=test/test_bitcoin$(EXEEXT)
|
|
|
|
|
|
EXTRA_DIST += \
|
|
test/bctest.py \
|
|
test/bitcoin-util-test.py \
|
|
test/data/bitcoin-util-test.json \
|
|
test/data/blanktx.hex \
|
|
test/data/tt-delin1-out.hex \
|
|
test/data/tt-delout1-out.hex \
|
|
test/data/tt-locktime317000-out.hex \
|
|
test/data/tx394b54bb.hex \
|
|
test/data/txcreate1.hex \
|
|
test/data/txcreate2.hex \
|
|
test/data/txcreatesign.hex
|
|
|
|
JSON_TEST_FILES = \
|
|
test/data/script_valid.json \
|
|
test/data/base58_keys_valid.json \
|
|
test/data/base58_encode_decode.json \
|
|
test/data/base58_keys_invalid.json \
|
|
test/data/script_invalid.json \
|
|
test/data/tx_invalid.json \
|
|
test/data/tx_valid.json \
|
|
test/data/sighash.json \
|
|
test/data/merkle_roots.json \
|
|
test/data/merkle_roots_empty.json \
|
|
test/data/merkle_serialization.json \
|
|
test/data/merkle_witness_serialization.json \
|
|
test/data/merkle_path.json
|
|
|
|
RAW_TEST_FILES = test/data/alertTests.raw
|
|
|
|
GENERATED_TEST_FILES = $(JSON_TEST_FILES:.json=.json.h) $(RAW_TEST_FILES:.raw=.raw.h)
|
|
|
|
BITCOIN_TESTS =\
|
|
test/arith_uint256_tests.cpp \
|
|
test/bignum.h \
|
|
test/addrman_tests.cpp \
|
|
test/alert_tests.cpp \
|
|
test/allocator_tests.cpp \
|
|
test/base32_tests.cpp \
|
|
test/base58_tests.cpp \
|
|
test/base64_tests.cpp \
|
|
test/bip32_tests.cpp \
|
|
test/bloom_tests.cpp \
|
|
test/checkblock_tests.cpp \
|
|
test/Checkpoints_tests.cpp \
|
|
test/coins_tests.cpp \
|
|
test/compress_tests.cpp \
|
|
test/crypto_tests.cpp \
|
|
test/DoS_tests.cpp \
|
|
test/equihash_tests.cpp \
|
|
test/getarg_tests.cpp \
|
|
test/hash_tests.cpp \
|
|
test/key_tests.cpp \
|
|
test/main_tests.cpp \
|
|
test/mempool_tests.cpp \
|
|
test/miner_tests.cpp \
|
|
test/mruset_tests.cpp \
|
|
test/multisig_tests.cpp \
|
|
test/netbase_tests.cpp \
|
|
test/pmt_tests.cpp \
|
|
test/policyestimator_tests.cpp \
|
|
test/pow_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/scriptnum_tests.cpp \
|
|
test/serialize_tests.cpp \
|
|
test/sighash_tests.cpp \
|
|
test/sigopcount_tests.cpp \
|
|
test/skiplist_tests.cpp \
|
|
test/test_bitcoin.cpp \
|
|
test/test_bitcoin.h \
|
|
test/timedata_tests.cpp \
|
|
test/transaction_tests.cpp \
|
|
test/uint256_tests.cpp \
|
|
test/univalue_tests.cpp \
|
|
test/util_tests.cpp \
|
|
test/sha256compress_tests.cpp
|
|
|
|
if ENABLE_WALLET
|
|
BITCOIN_TESTS += \
|
|
test/accounting_tests.cpp \
|
|
wallet/test/wallet_tests.cpp \
|
|
test/rpc_wallet_tests.cpp
|
|
endif
|
|
|
|
test_test_bitcoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
|
test_test_bitcoin_CPPFLAGS = -fopenmp $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS)
|
|
test_test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
|
|
$(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1)
|
|
if ENABLE_WALLET
|
|
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
|
endif
|
|
|
|
test_test_bitcoin_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBZCASH) $(LIBZCASH_LIBS)
|
|
test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
|
|
|
nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES)
|
|
|
|
$(BITCOIN_TESTS): $(GENERATED_TEST_FILES)
|
|
|
|
CLEAN_BITCOIN_TEST = test/*.gcda test/*.gcno $(GENERATED_TEST_FILES)
|
|
|
|
CLEANFILES += $(CLEAN_BITCOIN_TEST)
|
|
|
|
bitcoin_test: $(TEST_BINARY)
|
|
|
|
bitcoin_test_check: $(TEST_BINARY) FORCE
|
|
$(MAKE) check-TESTS TESTS=$^
|
|
|
|
bitcoin_test_clean : FORCE
|
|
rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY)
|
|
|
|
check-local:
|
|
@echo "Running test/bitcoin-util-test.py..."
|
|
$(AM_V_at)srcdir=$(srcdir) PYTHONPATH=$(builddir)/test $(srcdir)/test/bitcoin-util-test.py
|
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
|
|
|
|
%.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 "};};" >> $@
|
|
@echo "Generated $@"
|
|
|
|
%.raw.h: %.raw
|
|
@$(MKDIR_P) $(@D)
|
|
@echo "namespace alert_tests{" > $@
|
|
@echo "static unsigned const char $(*F)[] = {" >> $@
|
|
@$(HEXDUMP) -v -e '8/1 "0x%02x, "' -e '"\n"' $< | $(SED) -e 's/0x ,//g' >> $@
|
|
@echo "};};" >> $@
|
|
@echo "Generated $@"
|