-
Notifications
You must be signed in to change notification settings - Fork 35.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: use assert_greater_than util #30019
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. index ff67207c4e..2a4cc9dfba 100755
--- a/test/functional/p2p_segwit.py
+++ b/test/functional/p2p_segwit.py
@@ -85,6 +85,7 @@ from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
+ assert_greater_than_or_equal,
softfork_active,
assert_raises_rpc_error,
)
@@ -376,14 +377,14 @@ class SegWitTest(BitcoinTestFramework):
self.test_node.send_message(msg_headers())
self.test_node.announce_block_and_wait_for_getdata(block1, use_header=False)
- assert self.test_node.last_message["getdata"].inv[0].type == blocktype
+ assert_equal(self.test_node.last_message["getdata"].inv[0].type, blocktype)
test_witness_block(self.nodes[0], self.test_node, block1, True)
block2 = self.build_next_block()
block2.solve()
self.test_node.announce_block_and_wait_for_getdata(block2, use_header=True)
- assert self.test_node.last_message["getdata"].inv[0].type == blocktype
+ assert_equal(self.test_node.last_message["getdata"].inv[0].type, blocktype)
test_witness_block(self.nodes[0], self.test_node, block2, True)
# Check that we can getdata for witness blocks or regular blocks,
@@ -412,8 +413,8 @@ class SegWitTest(BitcoinTestFramework):
block = self.build_next_block()
self.update_witness_block_with_transactions(block, [])
# This gives us a witness commitment.
- assert len(block.vtx[0].wit.vtxinwit) == 1
- assert len(block.vtx[0].wit.vtxinwit[0].scriptWitness.stack) == 1
+ assert_equal(len(block.vtx[0].wit.vtxinwit), 1)
+ assert_equal(len(block.vtx[0].wit.vtxinwit[0].scriptWitness.stack), 1)
test_witness_block(self.nodes[0], self.test_node, block, accepted=True)
# Now try to retrieve it...
rpc_block = self.nodes[0].getblock(block.hash, False)
@@ -539,7 +540,7 @@ class SegWitTest(BitcoinTestFramework):
# Verify that if a peer doesn't set nServices to include NODE_WITNESS,
# the getdata is just for the non-witness portion.
self.old_node.announce_tx_and_wait_for_getdata(tx)
- assert self.old_node.last_message["getdata"].inv[0].type == MSG_TX
+ assert_equal(self.old_node.last_message["getdata"].inv[0].type, MSG_TX)
# Since we haven't delivered the tx yet, inv'ing the same tx from
# a witness transaction ought not result in a getdata.
@@ -807,7 +808,7 @@ class SegWitTest(BitcoinTestFramework):
block_3.vtx[0].vout[-1].nValue += 1
block_3.vtx[0].rehash()
block_3.hashMerkleRoot = block_3.calc_merkle_root()
- assert len(block_3.vtx[0].vout) == 4 # 3 OP_returns
+ assert_equal(len(block_3.vtx[0].vout), 4) # 3 OP_returns
block_3.solve()
test_witness_block(self.nodes[0], self.test_node, block_3, accepted=True)
@@ -838,7 +839,7 @@ class SegWitTest(BitcoinTestFramework):
block.solve()
block.vtx[0].wit.vtxinwit[0].scriptWitness.stack.append(b'a' * 5000000)
- assert block.get_weight() > MAX_BLOCK_WEIGHT
+ assert_greater_than(block.get_weight(), MAX_BLOCK_WEIGHT)
# We can't send over the p2p network, because this is too big to relay
# TODO: repeat this test with a block that can be relayed
@@ -850,7 +851,7 @@ class SegWitTest(BitcoinTestFramework):
assert_greater_than(MAX_BLOCK_WEIGHT, block.get_weight())
assert_equal(None, self.nodes[0].submitblock(block.serialize().hex()))
- assert self.nodes[0].getbestblockhash() == block.hash
+ assert_equal(self.nodes[0].getbestblockhash(), block.hash)
# Now make sure that malleating the witness reserved value doesn't
# result in a block permanently marked bad.
@@ -875,7 +876,7 @@ class SegWitTest(BitcoinTestFramework):
# Test that witness-bearing blocks are limited at ceil(base + wit/4) <= 1MB.
block = self.build_next_block()
- assert len(self.utxo) > 0
+ assert_greater_than(len(self.utxo), 0)
# Create a P2WSH transaction.
# The witness script will be a bunch of OP_2DROP's, followed by OP_TRUE.
@@ -896,7 +897,7 @@ class SegWitTest(BitcoinTestFramework):
for _ in range(NUM_OUTPUTS):
parent_tx.vout.append(CTxOut(child_value, script_pubkey))
parent_tx.vout[0].nValue -= 50000
- assert parent_tx.vout[0].nValue > 0
+ assert_greater_than(parent_tx.vout[0].nValue, 0)
parent_tx.rehash()
child_tx = CTransaction()
@@ -924,7 +925,7 @@ class SegWitTest(BitcoinTestFramework):
assert_equal(block.get_weight(), MAX_BLOCK_WEIGHT + 1)
# Make sure that our test case would exceed the old max-network-message
# limit
- assert len(block.serialize()) > 2 * 1024 * 1024
+ assert_greater_than(len(block.serialize()), 2 * 1024 * 1024)
test_witness_block(self.nodes[0], self.test_node, block, accepted=False, reason='bad-blk-we
ight')
@@ -934,7 +935,7 @@ class SegWitTest(BitcoinTestFramework):
block.vtx[0].vout.pop()
add_witness_commitment(block)
block.solve()
- assert block.get_weight() == MAX_BLOCK_WEIGHT
+ assert_equal(block.get_weight(), MAX_BLOCK_WEIGHT)
test_witness_block(self.nodes[0], self.test_node, block, accepted=True)
@@ -1098,7 +1099,7 @@ class SegWitTest(BitcoinTestFramework):
# This script is 19 max pushes (9937 bytes), then 64 more opcode-bytes.
long_witness_script = CScript([b'a' * MAX_SCRIPT_ELEMENT_SIZE] * 19 + [OP_DROP] * 63 + [OP_
TRUE])
- assert len(long_witness_script) == MAX_WITNESS_SCRIPT_LENGTH + 1
+ assert_equal(len(long_witness_script), MAX_WITNESS_SCRIPT_LENGTH + 1)
long_script_pubkey = script_to_p2wsh_script(long_witness_script)
block = self.build_next_block()
@@ -1122,7 +1123,7 @@ class SegWitTest(BitcoinTestFramework):
# Try again with one less byte in the witness script
witness_script = CScript([b'a' * MAX_SCRIPT_ELEMENT_SIZE] * 19 + [OP_DROP] * 62 + [OP_TRUE]
)
- assert len(witness_script) == MAX_WITNESS_SCRIPT_LENGTH
+ assert_equal(len(witness_script), MAX_WITNESS_SCRIPT_LENGTH)
script_pubkey = script_to_p2wsh_script(witness_script)
tx.vout[0] = CTxOut(tx.vout[0].nValue, script_pubkey)
@@ -1151,7 +1152,7 @@ class SegWitTest(BitcoinTestFramework):
for _ in range(10):
tx.vout.append(CTxOut(int(value / 10), script_pubkey))
tx.vout[0].nValue -= 1000
- assert tx.vout[0].nValue >= 0
+ assert_greater_than_or_equal(tx.vout[0].nValue, 0)
block = self.build_next_block()
self.update_witness_block_with_transactions(block, [tx])
@@ -1358,7 +1359,7 @@ class SegWitTest(BitcoinTestFramework):
temp_utxo.append(UTXO(tx.sha256, 0, tx.vout[0].nValue))
self.generate(self.nodes[0], 1) # Mine all the transactions
- assert len(self.nodes[0].getrawmempool()) == 0
+ assert_equal(len(self.nodes[0].getrawmempool()), 0)
# Finally, verify that version 0 -> version 2 transactions
# are standard
@@ -1622,7 +1623,7 @@ class SegWitTest(BitcoinTestFramework):
# Create a slight bias for producing more utxos
num_outputs = random.randint(1, 11)
random.shuffle(temp_utxos)
- assert len(temp_utxos) > num_inputs
+ assert_greater_than(len(temp_utxos), num_inputs)
tx = CTransaction()
total_value = 0
for i in range(num_inputs): |
Original file line number | Original file line | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|---|
|
@@ -339,7 +339,7 @@ def _test_gettxoutsetinfo(self): | ||||||
assert_equal(res['bestblock'], node.getblockhash(HEIGHT)) | assert_equal(res['bestblock'], node.getblockhash(HEIGHT)) | ||||||
size = res['disk_size'] | size = res['disk_size'] | ||||||
assert size > 6400 | assert size > 6400 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
|||||||
assert size < 64000 | assert_greater_than(64000, size) | ||||||
assert_equal(len(res['bestblock']), 64) | assert_equal(len(res['bestblock']), 64) | ||||||
assert_equal(len(res['hash_serialized_3']), 64) | assert_equal(len(res['hash_serialized_3']), 64) | ||||||
|
|
||||||
|
@@ -433,7 +433,7 @@ def _test_getdifficulty(self): | ||||||
difficulty = self.nodes[0].getdifficulty() | difficulty = self.nodes[0].getdifficulty() | ||||||
# 1 hash in 2 should be valid, so difficulty should be 1/2**31 | # 1 hash in 2 should be valid, so difficulty should be 1/2**31 | ||||||
# binary => decimal => binary math is why we do this check | # binary => decimal => binary math is why we do this check | ||||||
assert abs(difficulty * 2**31 - 1) < 0.0001 | assert_greater_than(0.0001, abs(difficulty * 2**31 - 1)) | ||||||
|
|
||||||
def _test_getnetworkhashps(self): | def _test_getnetworkhashps(self): | ||||||
self.log.info("Test getnetworkhashps") | self.log.info("Test getnetworkhashps") | ||||||
|
@@ -475,7 +475,7 @@ def _test_getnetworkhashps(self): | ||||||
|
|
||||||
# This should be 2 hashes every 10 minutes or 1/300 | # This should be 2 hashes every 10 minutes or 1/300 | ||||||
hashes_per_second = self.nodes[0].getnetworkhashps() | hashes_per_second = self.nodes[0].getnetworkhashps() | ||||||
assert abs(hashes_per_second * 300 - 1) < 0.0001 | assert_greater_than(0.0001, abs(hashes_per_second * 300 - 1)) | ||||||
|
|
||||||
# Test setting the first param of getnetworkhashps to -1 returns the average network | # Test setting the first param of getnetworkhashps to -1 returns the average network | ||||||
# hashes per second from the last difficulty change. | # hashes per second from the last difficulty change. | ||||||
|
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
|
@@ -17,6 +17,7 @@ | ||
from test_framework.util import ( | from test_framework.util import ( | ||
assert_raises_rpc_error, | assert_raises_rpc_error, | ||
assert_equal, | assert_equal, | ||
assert_greater_than, | |||
) | ) | ||
from test_framework.wallet_util import generate_keypair | from test_framework.wallet_util import generate_keypair | ||
from test_framework.wallet import ( | from test_framework.wallet import ( | ||
|
@@ -143,7 +144,8 @@ def checkbalances(self): | ||
balw = self.wallet.get_balance() | balw = self.wallet.get_balance() | ||
|
|
||
height = node0.getblockchaininfo()["blocks"] | height = node0.getblockchaininfo()["blocks"] | ||
assert 150 < height < 350 | assert_greater_than(350, height) | ||
assert_greater_than(height, 150) | |||
total = 149 * 50 + (height - 149 - 100) * 25 | total = 149 * 50 + (height - 149 - 100) * 25 | ||
assert bal1 == 0 | assert bal1 == 0 | ||
assert bal2 == self.moved | assert bal2 == self.moved | ||
Comment on lines
150
to
151
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Change these to |
|||
|
Original file line number | Original file line | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|---|
|
@@ -80,6 +80,7 @@ | ||||||
MAX_NODES, | MAX_NODES, | ||||||
p2p_port, | p2p_port, | ||||||
wait_until_helper_internal, | wait_until_helper_internal, | ||||||
assert_greater_than, | |||||||
) | ) | ||||||
from test_framework.v2_p2p import ( | from test_framework.v2_p2p import ( | ||||||
EncryptedP2PState, | EncryptedP2PState, | ||||||
|
@@ -744,7 +745,8 @@ def listen(cls, p2p, callback, port=None, addr=None, idx=1): | ||||||
for connections, call `callback`.""" | for connections, call `callback`.""" | ||||||
|
|
||||||
if port is None: | if port is None: | ||||||
assert 0 < idx <= MAX_NODES | assert_greater_than(idx, 0) | ||||||
assert idx <= MAX_NODES | |||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
|||||||
port = p2p_port(MAX_NODES - idx) | port = p2p_port(MAX_NODES - idx) | ||||||
if addr is None: | if addr is None: | ||||||
addr = '127.0.0.1' | addr = '127.0.0.1' | ||||||
|
Original file line number | Original file line | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|---|
|
@@ -12,6 +12,7 @@ | ||||||
import unittest | import unittest | ||||||
|
|
||||||
from .key import TaggedHash, tweak_add_pubkey, compute_xonly_pubkey | from .key import TaggedHash, tweak_add_pubkey, compute_xonly_pubkey | ||||||
from .util import assert_greater_than | |||||||
|
|
||||||
from .messages import ( | from .messages import ( | ||||||
CTransaction, | CTransaction, | ||||||
|
@@ -813,7 +814,7 @@ def BIP341_sha_outputs(txTo): | ||||||
|
|
||||||
def TaprootSignatureMsg(txTo, spent_utxos, hash_type, input_index = 0, scriptpath = False, script = CScript(), codeseparator_pos = -1, annex = None, leaf_ver = LEAF_VERSION_TAPSCRIPT): | def TaprootSignatureMsg(txTo, spent_utxos, hash_type, input_index = 0, scriptpath = False, script = CScript(), codeseparator_pos = -1, annex = None, leaf_ver = LEAF_VERSION_TAPSCRIPT): | ||||||
assert (len(txTo.vin) == len(spent_utxos)) | assert (len(txTo.vin) == len(spent_utxos)) | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
|||||||
assert (input_index < len(txTo.vin)) | assert_greater_than(len(txTo.vin), input_index) | ||||||
out_type = SIGHASH_ALL if hash_type == 0 else hash_type & 3 | out_type = SIGHASH_ALL if hash_type == 0 else hash_type & 3 | ||||||
in_type = hash_type & SIGHASH_ANYONECANPAY | in_type = hash_type & SIGHASH_ANYONECANPAY | ||||||
spk = spent_utxos[input_index].scriptPubKey | spk = spent_utxos[input_index].scriptPubKey | ||||||
|
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
|
@@ -16,6 +16,7 @@ | ||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||
from test_framework.util import ( | from test_framework.util import ( | ||
assert_equal, | assert_equal, | ||
assert_greater_than, | |||
assert_raises_rpc_error, | assert_raises_rpc_error, | ||
) | ) | ||
|
|
||
|
@@ -53,7 +54,7 @@ def run_test(self): | ||
assert_raises_rpc_error(-5, 'Transaction not eligible for abandonment', lambda: alice.abandontransaction(txid=txA)) | assert_raises_rpc_error(-5, 'Transaction not eligible for abandonment', lambda: alice.abandontransaction(txid=txA)) | ||
|
|
||
newbalance = alice.getbalance() | newbalance = alice.getbalance() | ||
assert balance - newbalance < Decimal("0.001") #no more than fees lost | assert_greater_than(Decimal("0.001"), balance - newbalance) #no more than fees lost | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is needed as this specific test is full of
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see you are a newcomer too. When reviewing code, better to open the files in the text editor and check for a broader context than what the github interface will present. In my case, I use emacs with ediff, but all major IDEs will have a nice diff interface to inspect the PRs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
this isn't necessary... assert_greater_than("0.001", balance - newbalance) I wasn't suggesting comparing it to a string, of course, but to a decimal, as in the example I've provided, i.e.: assert_greater_than(0.001, balance - newbalance) This seems to be working for me, is it failing for you? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh, I see. Still, better to leave to preserve potential bugs since this is refactoring. |
|||
balance = newbalance | balance = newbalance | ||
|
|
||
# Disconnect nodes so node0's transactions don't get into node1's mempool | # Disconnect nodes so node0's transactions don't get into node1's mempool | ||
|
Original file line number | Original file line | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|---|
|
@@ -13,6 +13,7 @@ | ||||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||||
from test_framework.util import ( | from test_framework.util import ( | ||||||
assert_equal, | assert_equal, | ||||||
assert_greater_than, | |||||||
) | ) | ||||||
|
|
||||||
class TxConflicts(BitcoinTestFramework): | class TxConflicts(BitcoinTestFramework): | ||||||
|
@@ -104,7 +105,7 @@ def test_block_conflicts(self): | ||||||
|
|
||||||
self.log.info("Verify, after the reorg, that Tx_A was accepted, and tx_AB and its Child_Tx are conflicting now") | self.log.info("Verify, after the reorg, that Tx_A was accepted, and tx_AB and its Child_Tx are conflicting now") | ||||||
# Tx A was accepted, Tx AB was not. | # Tx A was accepted, Tx AB was not. | ||||||
assert conflicted_AB_tx["confirmations"] < 0 | assert_greater_than(0, conflicted_AB_tx["confirmations"]) | ||||||
assert conflicted_A_tx["confirmations"] > 0 | assert conflicted_A_tx["confirmations"] > 0 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this looks like an actual assert_greater_than
Suggested change
|
|||||||
|
|
||||||
# Conflicted tx should have confirmations set to the confirmations of the most conflicting tx | # Conflicted tx should have confirmations set to the confirmations of the most conflicting tx | ||||||
|
Original file line number | Original file line | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|---|
|
@@ -6,6 +6,7 @@ | ||||||
from test_framework.test_framework import BitcoinTestFramework | from test_framework.test_framework import BitcoinTestFramework | ||||||
from test_framework.util import ( | from test_framework.util import ( | ||||||
assert_equal, | assert_equal, | ||||||
assert_greater_than, | |||||||
assert_raises_rpc_error, | assert_raises_rpc_error, | ||||||
) | ) | ||||||
from test_framework.blocktools import ( | from test_framework.blocktools import ( | ||||||
|
@@ -45,7 +46,8 @@ def test_anti_fee_sniping(self): | ||||||
self.generate(self.nodes[0], 1) | self.generate(self.nodes[0], 1) | ||||||
txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 1) | txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 1) | ||||||
tx = self.nodes[0].gettransaction(txid=txid, verbose=True)['decoded'] | tx = self.nodes[0].gettransaction(txid=txid, verbose=True)['decoded'] | ||||||
assert 0 < tx['locktime'] <= 201 | assert_greater_than(tx['locktime'], 0) | ||||||
assert tx['locktime'] <= 201 | |||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
|||||||
|
|
||||||
def test_tx_size_too_large(self): | def test_tx_size_too_large(self): | ||||||
# More than 10kB of outputs, so that we hit -maxtxfee with a high feerate | # More than 10kB of outputs, so that we hit -maxtxfee with a high feerate | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.