[tests] p2p_segwit: remove unnecessary arguments from subtests.
This commit is contained in:
parent
25711c2696
commit
55e8050853
1 changed files with 23 additions and 28 deletions
|
@ -241,7 +241,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.test_non_witness_transaction()
|
self.test_non_witness_transaction()
|
||||||
self.test_unnecessary_witness_before_segwit_activation()
|
self.test_unnecessary_witness_before_segwit_activation()
|
||||||
self.test_v0_outputs_arent_spendable()
|
self.test_v0_outputs_arent_spendable()
|
||||||
self.test_block_relay(segwit_activated=False)
|
self.test_block_relay()
|
||||||
|
|
||||||
# Advance to segwit being 'started'
|
# Advance to segwit being 'started'
|
||||||
self.advance_to_segwit_started()
|
self.advance_to_segwit_started()
|
||||||
|
@ -256,8 +256,8 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
# Retest unnecessary witnesses
|
# Retest unnecessary witnesses
|
||||||
self.test_unnecessary_witness_before_segwit_activation()
|
self.test_unnecessary_witness_before_segwit_activation()
|
||||||
self.test_witness_tx_relay_before_segwit_activation()
|
self.test_witness_tx_relay_before_segwit_activation()
|
||||||
self.test_block_relay(segwit_activated=False)
|
self.test_block_relay()
|
||||||
self.test_standardness_v0(segwit_activated=False)
|
self.test_standardness_v0()
|
||||||
|
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
|
|
||||||
# Test P2SH witness handling again
|
# Test P2SH witness handling again
|
||||||
self.test_p2sh_witness(segwit_activated=True)
|
self.test_p2sh_witness()
|
||||||
self.test_witness_commitments()
|
self.test_witness_commitments()
|
||||||
self.test_block_malleability()
|
self.test_block_malleability()
|
||||||
self.test_witness_block_size()
|
self.test_witness_block_size()
|
||||||
|
@ -276,9 +276,9 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.test_max_witness_push_length()
|
self.test_max_witness_push_length()
|
||||||
self.test_max_witness_program_length()
|
self.test_max_witness_program_length()
|
||||||
self.test_witness_input_length()
|
self.test_witness_input_length()
|
||||||
self.test_block_relay(segwit_activated=True)
|
self.test_block_relay()
|
||||||
self.test_tx_relay_after_segwit_activation()
|
self.test_tx_relay_after_segwit_activation()
|
||||||
self.test_standardness_v0(segwit_activated=True)
|
self.test_standardness_v0()
|
||||||
self.test_segwit_versions()
|
self.test_segwit_versions()
|
||||||
self.test_premature_coinbase_witness_spend()
|
self.test_premature_coinbase_witness_spend()
|
||||||
self.test_uncompressed_pubkey()
|
self.test_uncompressed_pubkey()
|
||||||
|
@ -286,7 +286,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.test_non_standard_witness_blinding()
|
self.test_non_standard_witness_blinding()
|
||||||
self.test_non_standard_witness()
|
self.test_non_standard_witness()
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
self.test_upgrade_after_activation(node_id=2)
|
self.test_upgrade_after_activation()
|
||||||
self.test_witness_sigops()
|
self.test_witness_sigops()
|
||||||
|
|
||||||
# Individual tests
|
# Individual tests
|
||||||
|
@ -375,7 +375,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.utxo.append(UTXO(tx.sha256, 0, tx.vout[0].nValue))
|
self.utxo.append(UTXO(tx.sha256, 0, tx.vout[0].nValue))
|
||||||
|
|
||||||
@subtest
|
@subtest
|
||||||
def test_block_relay(self, segwit_activated):
|
def test_block_relay(self):
|
||||||
"""Test that block requests to NODE_WITNESS peer are with MSG_WITNESS_FLAG.
|
"""Test that block requests to NODE_WITNESS peer are with MSG_WITNESS_FLAG.
|
||||||
|
|
||||||
This is true regardless of segwit activation.
|
This is true regardless of segwit activation.
|
||||||
|
@ -409,7 +409,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
|
|
||||||
# Check that we can getdata for witness blocks or regular blocks,
|
# Check that we can getdata for witness blocks or regular blocks,
|
||||||
# and the right thing happens.
|
# and the right thing happens.
|
||||||
if not segwit_activated:
|
if self.segwit_status != 'active':
|
||||||
# Before activation, we should be able to request old blocks with
|
# Before activation, we should be able to request old blocks with
|
||||||
# or without witness, and they should be the same.
|
# or without witness, and they should be the same.
|
||||||
chain_height = self.nodes[0].getblockcount()
|
chain_height = self.nodes[0].getblockcount()
|
||||||
|
@ -662,7 +662,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.utxo.append(UTXO(tx_hash, 0, tx_value))
|
self.utxo.append(UTXO(tx_hash, 0, tx_value))
|
||||||
|
|
||||||
@subtest
|
@subtest
|
||||||
def test_standardness_v0(self, segwit_activated):
|
def test_standardness_v0(self):
|
||||||
"""Test V0 txout standardness.
|
"""Test V0 txout standardness.
|
||||||
|
|
||||||
V0 segwit outputs and inputs are always standard.
|
V0 segwit outputs and inputs are always standard.
|
||||||
|
@ -721,7 +721,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
tx3.wit.vtxinwit.append(CTxInWitness())
|
tx3.wit.vtxinwit.append(CTxInWitness())
|
||||||
tx3.wit.vtxinwit[0].scriptWitness.stack = [witness_program]
|
tx3.wit.vtxinwit[0].scriptWitness.stack = [witness_program]
|
||||||
tx3.rehash()
|
tx3.rehash()
|
||||||
if not segwit_activated:
|
if self.segwit_status != 'active':
|
||||||
# Just check mempool acceptance, but don't add the transaction to the mempool, since witness is disallowed
|
# Just check mempool acceptance, but don't add the transaction to the mempool, since witness is disallowed
|
||||||
# in blocks and the tx is impossible to mine right now.
|
# in blocks and the tx is impossible to mine right now.
|
||||||
assert_equal(self.nodes[0].testmempoolaccept([bytes_to_hex_str(tx3.serialize_with_witness())]), [{'txid': tx3.hash, 'allowed': True}])
|
assert_equal(self.nodes[0].testmempoolaccept([bytes_to_hex_str(tx3.serialize_with_witness())]), [{'txid': tx3.hash, 'allowed': True}])
|
||||||
|
@ -753,7 +753,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.segwit_status = 'active'
|
self.segwit_status = 'active'
|
||||||
|
|
||||||
@subtest
|
@subtest
|
||||||
def test_p2sh_witness(self, segwit_activated):
|
def test_p2sh_witness(self):
|
||||||
"""Test P2SH wrapped witness programs."""
|
"""Test P2SH wrapped witness programs."""
|
||||||
|
|
||||||
# Prepare the p2sh-wrapped witness output
|
# Prepare the p2sh-wrapped witness output
|
||||||
|
@ -774,7 +774,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
test_transaction_acceptance(self.nodes[0].rpc, self.test_node, tx, with_witness=False, accepted=True)
|
test_transaction_acceptance(self.nodes[0].rpc, self.test_node, tx, with_witness=False, accepted=True)
|
||||||
block = self.build_next_block()
|
block = self.build_next_block()
|
||||||
self.update_witness_block_with_transactions(block, [tx])
|
self.update_witness_block_with_transactions(block, [tx])
|
||||||
test_witness_block(self.nodes[0].rpc, self.test_node, block, accepted=True, with_witness=segwit_activated)
|
test_witness_block(self.nodes[0].rpc, self.test_node, block, accepted=True, with_witness=True)
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
|
|
||||||
# Now test attempts to spend the output.
|
# Now test attempts to spend the output.
|
||||||
|
@ -803,7 +803,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
spend_tx.wit.vtxinwit[0].scriptWitness.stack = [b'a', witness_program]
|
spend_tx.wit.vtxinwit[0].scriptWitness.stack = [b'a', witness_program]
|
||||||
|
|
||||||
# Verify mempool acceptance
|
# Verify mempool acceptance
|
||||||
test_transaction_acceptance(self.nodes[0].rpc, self.test_node, spend_tx, with_witness=True, accepted=segwit_activated)
|
test_transaction_acceptance(self.nodes[0].rpc, self.test_node, spend_tx, with_witness=True, accepted=True)
|
||||||
block = self.build_next_block()
|
block = self.build_next_block()
|
||||||
self.update_witness_block_with_transactions(block, [spend_tx])
|
self.update_witness_block_with_transactions(block, [spend_tx])
|
||||||
|
|
||||||
|
@ -811,10 +811,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
# This no longer works before activation, because SCRIPT_VERIFY_WITNESS
|
# This no longer works before activation, because SCRIPT_VERIFY_WITNESS
|
||||||
# is always set.
|
# is always set.
|
||||||
# TODO: rewrite this test to make clear that it only works after activation.
|
# TODO: rewrite this test to make clear that it only works after activation.
|
||||||
if segwit_activated:
|
test_witness_block(self.nodes[0].rpc, self.test_node, block, accepted=True)
|
||||||
test_witness_block(self.nodes[0].rpc, self.test_node, block, accepted=True)
|
|
||||||
else:
|
|
||||||
test_witness_block(self.nodes[0].rpc, self.test_node, block, accepted=True, with_witness=False)
|
|
||||||
|
|
||||||
# Update self.utxo
|
# Update self.utxo
|
||||||
self.utxo.pop(0)
|
self.utxo.pop(0)
|
||||||
|
@ -1964,30 +1961,28 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.utxo.pop(0)
|
self.utxo.pop(0)
|
||||||
|
|
||||||
@subtest
|
@subtest
|
||||||
def test_upgrade_after_activation(self, node_id):
|
def test_upgrade_after_activation(self):
|
||||||
"""Test the behavior of starting up a segwit-aware node after the softfork has activated."""
|
"""Test the behavior of starting up a segwit-aware node after the softfork has activated."""
|
||||||
|
|
||||||
assert(node_id != 0) # node0 is assumed to be a segwit-active bitcoind
|
|
||||||
|
|
||||||
# Make sure the nodes are all up
|
# Make sure the nodes are all up
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
|
|
||||||
# Restart with the new binary
|
# Restart with the new binary
|
||||||
self.stop_node(node_id)
|
self.stop_node(2)
|
||||||
self.start_node(node_id, extra_args=["-vbparams=segwit:0:999999999999"])
|
self.start_node(2, extra_args=["-vbparams=segwit:0:999999999999"])
|
||||||
connect_nodes(self.nodes[0], node_id)
|
connect_nodes(self.nodes[0], 2)
|
||||||
|
|
||||||
sync_blocks(self.nodes)
|
sync_blocks(self.nodes)
|
||||||
|
|
||||||
# Make sure that this peer thinks segwit has activated.
|
# Make sure that this peer thinks segwit has activated.
|
||||||
assert(get_bip9_status(self.nodes[node_id], 'segwit')['status'] == "active")
|
assert(get_bip9_status(self.nodes[2], 'segwit')['status'] == "active")
|
||||||
|
|
||||||
# Make sure this peer's blocks match those of node0.
|
# Make sure this peer's blocks match those of node0.
|
||||||
height = self.nodes[node_id].getblockcount()
|
height = self.nodes[2].getblockcount()
|
||||||
while height >= 0:
|
while height >= 0:
|
||||||
block_hash = self.nodes[node_id].getblockhash(height)
|
block_hash = self.nodes[2].getblockhash(height)
|
||||||
assert_equal(block_hash, self.nodes[0].getblockhash(height))
|
assert_equal(block_hash, self.nodes[0].getblockhash(height))
|
||||||
assert_equal(self.nodes[0].getblock(block_hash), self.nodes[node_id].getblock(block_hash))
|
assert_equal(self.nodes[0].getblock(block_hash), self.nodes[2].getblock(block_hash))
|
||||||
height -= 1
|
height -= 1
|
||||||
|
|
||||||
@subtest
|
@subtest
|
||||||
|
|
Loading…
Reference in a new issue