Merge #11774: [tests] Rename functional tests
6f881cc880[tests] Remove EXPECTED_VIOLATION_COUNT (Anthony Towns)3150b3fea7[tests] Rename misc functional tests. (Anthony Towns)81b79f2c39[tests] Rename rpc_* functional tests. (Anthony Towns)61b8f7f273[tests] Rename p2p_* functional tests. (Anthony Towns)90600bc7db[tests] Rename wallet_* functional tests. (Anthony Towns)ca6523d0c8[tests] Rename feature_* functional tests. (Anthony Towns) Pull request description: This PR changes the functional tests to have a consistent naming scheme: tests for individual RPC methods are named rpc_... tests for interfaces (REST, ZMQ, RPC features) are named interface_... tests that explicitly test the p2p interface are named p2p_... tests for wallet features are named wallet_... tests for mining features are named mining_... tests for mempool behaviour are named mempool_... tests for full features that aren't wallet/mining/mempool are named feature_... Rationale: it's sometimes difficult for new contributors to know what's already covered by existing tests and where new tests should be added. Naming in a consistent fashion makes it easier to see what's already covered at a glance. Tree-SHA512: 4246790552d42bbd95f6d5bdf67702b81b3b2c583ce7eaf1fe6d8e254721279b47315973c6e9ae82dad6e4c747f12188160764bf2624c0f8f3b4d39330ec8b16
This commit is contained in:
84 files changed
+92
-96
No files matched your search
@@ -87,7 +87,7 @@ start the networking thread. (Continue with the test logic in your existing
|
||||
thread.)
|
||||
|
||||
- Can be used to write tests where specific P2P protocol behavior is tested.
|
||||
Examples tests are `p2p-acceptblock.py`, `p2p-compactblocks.py`.
|
||||
Examples tests are `p2p_unrequested_blocks.py`, `p2p_compactblocks.py`.
|
||||
|
||||
#### Comptool
|
||||
|
||||
@@ -133,7 +133,7 @@ Each `TestInstance` consists of:
|
||||
acceptance is tested against the given outcome.
|
||||
|
||||
- For examples of tests written in this framework, see
|
||||
`invalidblockrequest.py` and `p2p-fullblocktest.py`.
|
||||
`p2p_invalid_block.py` and `feature_block.py`.
|
||||
|
||||
### test-framework modules
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -55,84 +55,84 @@ TEST_EXIT_SKIPPED = 77
|
||||
BASE_SCRIPTS= [
|
||||
# Scripts that are run by the travis build process.
|
||||
# Longest test should go first, to favor running tests in parallel
|
||||
'wallet-hd.py',
|
||||
'walletbackup.py',
|
||||
'wallet_hd.py',
|
||||
'wallet_backup.py',
|
||||
# vv Tests less than 5m vv
|
||||
'p2p-fullblocktest.py',
|
||||
'fundrawtransaction.py',
|
||||
'p2p-compactblocks.py',
|
||||
'segwit.py',
|
||||
'feature_block.py',
|
||||
'rpc_fundrawtransaction.py',
|
||||
'p2p_compactblocks.py',
|
||||
'feature_segwit.py',
|
||||
# vv Tests less than 2m vv
|
||||
'wallet.py',
|
||||
'wallet-accounts.py',
|
||||
'p2p-segwit.py',
|
||||
'wallet-dump.py',
|
||||
'listtransactions.py',
|
||||
'wallet_basic.py',
|
||||
'wallet_accounts.py',
|
||||
'p2p_segwit.py',
|
||||
'wallet_dump.py',
|
||||
'rpc_listtransactions.py',
|
||||
# vv Tests less than 60s vv
|
||||
'sendheaders.py',
|
||||
'zapwallettxes.py',
|
||||
'importmulti.py',
|
||||
'p2p_sendheaders.py',
|
||||
'wallet_zapwallettxes.py',
|
||||
'wallet_importmulti.py',
|
||||
'mempool_limit.py',
|
||||
'merkle_blocks.py',
|
||||
'receivedby.py',
|
||||
'abandonconflict.py',
|
||||
'bip68-112-113-p2p.py',
|
||||
'rawtransactions.py',
|
||||
'address_types.py',
|
||||
'reindex.py',
|
||||
'rpc_txoutproof.py',
|
||||
'wallet_listreceivedby.py',
|
||||
'wallet_abandonconflict.py',
|
||||
'feature_csv_activation.py',
|
||||
'rpc_rawtransaction.py',
|
||||
'wallet_address_types.py',
|
||||
'feature_reindex.py',
|
||||
# vv Tests less than 30s vv
|
||||
'keypool-topup.py',
|
||||
'zmq_test.py',
|
||||
'bitcoin_cli.py',
|
||||
'mempool_resurrect_test.py',
|
||||
'txn_doublespend.py --mineblock',
|
||||
'txn_clone.py',
|
||||
'txn_clone.py --segwit',
|
||||
'getchaintips.py',
|
||||
'rest.py',
|
||||
'mempool_spendcoinbase.py',
|
||||
'wallet_keypool_topup.py',
|
||||
'interface_zmq.py',
|
||||
'interface_bitcoin_cli.py',
|
||||
'mempool_resurrect.py',
|
||||
'wallet_txn_doublespend.py --mineblock',
|
||||
'wallet_txn_clone.py',
|
||||
'wallet_txn_clone.py --segwit',
|
||||
'rpc_getchaintips.py',
|
||||
'interface_rest.py',
|
||||
'mempool_spend_coinbase.py',
|
||||
'mempool_reorg.py',
|
||||
'mempool_persist.py',
|
||||
'multiwallet.py',
|
||||
'multiwallet.py --usecli',
|
||||
'httpbasics.py',
|
||||
'multi_rpc.py',
|
||||
'proxy_test.py',
|
||||
'signrawtransactions.py',
|
||||
'disconnect_ban.py',
|
||||
'decodescript.py',
|
||||
'blockchain.py',
|
||||
'deprecated_rpc.py',
|
||||
'disablewallet.py',
|
||||
'net.py',
|
||||
'keypool.py',
|
||||
'p2p-mempool.py',
|
||||
'prioritise_transaction.py',
|
||||
'invalidblockrequest.py',
|
||||
'invalidtxrequest.py',
|
||||
'p2p-versionbits-warning.py',
|
||||
'preciousblock.py',
|
||||
'importprunedfunds.py',
|
||||
'signmessages.py',
|
||||
'nulldummy.py',
|
||||
'import-rescan.py',
|
||||
'mining.py',
|
||||
'bumpfee.py',
|
||||
'rpcnamedargs.py',
|
||||
'listsinceblock.py',
|
||||
'p2p-leaktests.py',
|
||||
'wallet-encryption.py',
|
||||
'bipdersig-p2p.py',
|
||||
'bip65-cltv-p2p.py',
|
||||
'uptime.py',
|
||||
'resendwallettransactions.py',
|
||||
'minchainwork.py',
|
||||
'p2p-fingerprint.py',
|
||||
'uacomment.py',
|
||||
'p2p-acceptblock.py',
|
||||
'wallet_multiwallet.py',
|
||||
'wallet_multiwallet.py --usecli',
|
||||
'interface_http.py',
|
||||
'rpc_users.py',
|
||||
'feature_proxy.py',
|
||||
'rpc_signrawtransaction.py',
|
||||
'p2p_disconnect_ban.py',
|
||||
'rpc_decodescript.py',
|
||||
'rpc_blockchain.py',
|
||||
'rpc_deprecated.py',
|
||||
'wallet_disable.py',
|
||||
'rpc_net.py',
|
||||
'wallet_keypool.py',
|
||||
'p2p_mempool.py',
|
||||
'mining_prioritisetransaction.py',
|
||||
'p2p_invalid_block.py',
|
||||
'p2p_invalid_tx.py',
|
||||
'feature_versionbits_warning.py',
|
||||
'rpc_preciousblock.py',
|
||||
'wallet_importprunedfunds.py',
|
||||
'rpc_signmessage.py',
|
||||
'feature_nulldummy.py',
|
||||
'wallet_import_rescan.py',
|
||||
'mining_basic.py',
|
||||
'wallet_bumpfee.py',
|
||||
'rpc_named_arguments.py',
|
||||
'wallet_listsinceblock.py',
|
||||
'p2p_leak.py',
|
||||
'wallet_encryption.py',
|
||||
'feature_dersig.py',
|
||||
'feature_cltv.py',
|
||||
'rpc_uptime.py',
|
||||
'wallet_resendwallettransactions.py',
|
||||
'feature_minchainwork.py',
|
||||
'p2p_fingerprint.py',
|
||||
'feature_uacomment.py',
|
||||
'p2p_unrequested_blocks.py',
|
||||
'feature_logging.py',
|
||||
'node_network_limited.py',
|
||||
'conf_args.py',
|
||||
'p2p_node_network_limited.py',
|
||||
'feature_config_args.py',
|
||||
# Don't append tests at the end to avoid merge conflicts
|
||||
# Put them in a random line within the section that fits their approximate run-time
|
||||
]
|
||||
@@ -140,29 +140,29 @@ BASE_SCRIPTS= [
|
||||
EXTENDED_SCRIPTS = [
|
||||
# These tests are not run by the travis build process.
|
||||
# Longest test should go first, to favor running tests in parallel
|
||||
'pruning.py',
|
||||
'feature_pruning.py',
|
||||
# vv Tests less than 20m vv
|
||||
'smartfees.py',
|
||||
'feature_fee_estimation.py',
|
||||
# vv Tests less than 5m vv
|
||||
'maxuploadtarget.py',
|
||||
'feature_maxuploadtarget.py',
|
||||
'mempool_packages.py',
|
||||
'dbcrash.py',
|
||||
'feature_dbcrash.py',
|
||||
# vv Tests less than 2m vv
|
||||
'bip68-sequence.py',
|
||||
'getblocktemplate_longpoll.py',
|
||||
'p2p-timeouts.py',
|
||||
'feature_bip68_sequence.py',
|
||||
'mining_getblocktemplate_longpoll.py',
|
||||
'p2p_timeouts.py',
|
||||
# vv Tests less than 60s vv
|
||||
'bip9-softforks.py',
|
||||
'p2p-feefilter.py',
|
||||
'rpcbind_test.py',
|
||||
'feature_bip9_softforks.py',
|
||||
'p2p_feefilter.py',
|
||||
'rpc_bind.py',
|
||||
# vv Tests less than 30s vv
|
||||
'assumevalid.py',
|
||||
'feature_assumevalid.py',
|
||||
'example_test.py',
|
||||
'txn_doublespend.py',
|
||||
'txn_clone.py --mineblock',
|
||||
'notifications.py',
|
||||
'invalidateblock.py',
|
||||
'replace-by-fee.py',
|
||||
'wallet_txn_doublespend.py',
|
||||
'wallet_txn_clone.py --mineblock',
|
||||
'feature_notifications.py',
|
||||
'rpc_invalidateblock.py',
|
||||
'feature_rbf.py',
|
||||
]
|
||||
|
||||
# Place EXTENDED_SCRIPTS first since it has the 3 longest running tests
|
||||
@@ -472,9 +472,8 @@ class TestResult():
|
||||
|
||||
|
||||
def check_script_prefixes():
|
||||
"""Check that no more than `EXPECTED_VIOLATION_COUNT` of the
|
||||
"""Check that at most a handful of the
|
||||
test scripts don't start with one of the allowed name prefixes."""
|
||||
EXPECTED_VIOLATION_COUNT = 77
|
||||
|
||||
# LEEWAY is provided as a transition measure, so that pull-requests
|
||||
# that introduce new tests that don't conform with the naming
|
||||
@@ -484,13 +483,10 @@ def check_script_prefixes():
|
||||
good_prefixes_re = re.compile("(example|feature|interface|mempool|mining|p2p|rpc|wallet)_")
|
||||
bad_script_names = [script for script in ALL_SCRIPTS if good_prefixes_re.match(script) is None]
|
||||
|
||||
if len(bad_script_names) < EXPECTED_VIOLATION_COUNT:
|
||||
print("{}HURRAY!{} Number of functional tests violating naming convention reduced!".format(BOLD[1], BOLD[0]))
|
||||
print("Consider reducing EXPECTED_VIOLATION_COUNT from %d to %d" % (EXPECTED_VIOLATION_COUNT, len(bad_script_names)))
|
||||
elif len(bad_script_names) > EXPECTED_VIOLATION_COUNT:
|
||||
print("INFO: %d tests not meeting naming conventions (expected %d):" % (len(bad_script_names), EXPECTED_VIOLATION_COUNT))
|
||||
if len(bad_script_names) > 0:
|
||||
print("INFO: %d tests not meeting naming conventions:" % (len(bad_script_names)))
|
||||
print(" %s" % ("\n ".join(sorted(bad_script_names))))
|
||||
assert len(bad_script_names) <= EXPECTED_VIOLATION_COUNT + LEEWAY, "Too many tests not following naming convention! (%d found, expected: <= %d)" % (len(bad_script_names), EXPECTED_VIOLATION_COUNT)
|
||||
assert len(bad_script_names) <= LEEWAY, "Too many tests not following naming convention! (%d found, maximum: %d)" % (len(bad_script_names), LEEWAY)
|
||||
|
||||
|
||||
def check_script_list(src_dir):
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user