Skip to content
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 framework lessthan2 #13

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion test/functional/feature_block.py
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@ def run_test(self):
self.move_tip(57)
self.next_block(58, spend=out[17])
tx = CTransaction()
assert len(out[17].vout) < 42
assert_greater_than(42, len(out[17].vout))
tx.vin.append(CTxIn(COutPoint(out[17].sha256, 42), CScript([OP_TRUE]), SEQUENCE_FINAL))
tx.vout.append(CTxOut(0, b""))
tx.calc_sha256()
Expand Down
3 changes: 2 additions & 1 deletion test/functional/feature_coinstatsindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
assert_raises_rpc_error,
)
from test_framework.wallet import (
Expand Down Expand Up @@ -226,7 +227,7 @@ def _test_coin_stats_index(self):

self.generate(index_node, 1, sync_fun=self.no_op)
res10 = index_node.gettxoutsetinfo('muhash')
assert res8['txouts'] < res10['txouts']
assert_greater_than(res10['txouts'], res8['txouts'])

self.log.info("Test that the index works with -reindex")

Expand Down
3 changes: 2 additions & 1 deletion test/functional/feature_rbf.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
assert_raises_rpc_error,
)
from test_framework.wallet import MiniWallet
Expand Down Expand Up @@ -102,7 +103,7 @@ def make_utxo(self, node, amount, *, confirmed=True, scriptPubKey=None):
new_size = len(node.getrawmempool())
# Error out if we have something stuck in the mempool, as this
# would likely be a bug.
assert new_size < mempool_size
assert_greater_than(mempool_size, new_size)
mempool_size = new_size

return self.wallet.get_utxo(txid=tx["txid"], vout=tx["sent_vout"])
Expand Down
9 changes: 6 additions & 3 deletions test/functional/mempool_resurrect.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
"""Test resurrection of mined transactions when the blockchain is re-organized."""

from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import assert_equal
from test_framework.util import (
assert_equal,
assert_greater_than,
)
from test_framework.wallet import MiniWallet


Expand Down Expand Up @@ -38,7 +41,7 @@ def run_test(self):
assert_equal(set(node.getrawmempool()), set())
confirmed_txns = set(node.getblock(blocks[0])['tx'] + node.getblock(blocks[1])['tx'])
# Checks that all spend txns are contained in the mined blocks
assert spends_ids < confirmed_txns
assert_greater_than(confirmed_txns, spends_ids)

# Use invalidateblock to re-org back
node.invalidateblock(blocks[0])
Expand All @@ -51,7 +54,7 @@ def run_test(self):
# mempool should be empty, all txns confirmed
assert_equal(set(node.getrawmempool()), set())
confirmed_txns = set(node.getblock(blocks[0])['tx'])
assert spends_ids < confirmed_txns
assert_greater_than(confirmed_txns, spends_ids)


if __name__ == '__main__':
Expand Down
2 changes: 1 addition & 1 deletion test/functional/p2p_addr_relay.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def setup_addr_msg(self, num, sequential_ips=True):
addr.time = self.mocktime + random.randrange(-100, 100)
addr.nServices = P2P_SERVICES
if sequential_ips:
assert self.counter < 256 ** 2 # Don't allow the returned ip addresses to wrap.
assert_greater_than(256 ** 2, self.counter) # Don't allow the returned ip addresses to wrap.
addr.ip = f"123.123.{self.counter // 256}.{self.counter % 256}"
self.counter += 1
else:
Expand Down
5 changes: 3 additions & 2 deletions test/functional/p2p_segwit.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
softfork_active,
assert_raises_rpc_error,
)
Expand Down Expand Up @@ -846,7 +847,7 @@ def test_block_malleability(self):
assert self.nodes[0].getbestblockhash() != block.hash

block.vtx[0].wit.vtxinwit[0].scriptWitness.stack.pop()
assert block.get_weight() < MAX_BLOCK_WEIGHT
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
Expand Down Expand Up @@ -1884,7 +1885,7 @@ def test_witness_sigops(self):
extra_sigops_available = MAX_SIGOP_COST % sigops_per_script

# We chose the number of checkmultisigs/checksigs to make this work:
assert extra_sigops_available < 100 # steer clear of MAX_OPS_PER_SCRIPT
assert_greater_than(100, extra_sigops_available) # steer clear of MAX_OPS_PER_SCRIPT

# This script, when spent with the first
# N(=MAX_SIGOP_COST//sigops_per_script) outputs of our transaction,
Expand Down
7 changes: 5 additions & 2 deletions test/functional/p2p_sendtxrcncl.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
P2P_VERSION,
)
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import assert_equal
from test_framework.util import (
assert_equal,
assert_greater_than,
)

class PeerNoVerack(P2PInterface):
def __init__(self, wtxidrelay=True):
Expand Down Expand Up @@ -82,7 +85,7 @@ def run_test(self):
peer.wait_for_verack()
verack_index = [i for i, msg in enumerate(peer.messages) if msg.msgtype == b'verack'][0]
sendtxrcncl_index = [i for i, msg in enumerate(peer.messages) if msg.msgtype == b'sendtxrcncl'][0]
assert sendtxrcncl_index < verack_index
assert_greater_than(verack_index, sendtxrcncl_index)
self.nodes[0].disconnect_p2ps()

self.log.info('SENDTXRCNCL on pre-WTXID version should not be sent')
Expand Down
6 changes: 3 additions & 3 deletions test/functional/rpc_blockchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ def _test_gettxoutsetinfo(self):
assert_equal(res['bestblock'], node.getblockhash(HEIGHT))
size = res['disk_size']
assert size > 6400
assert size < 64000
assert_greater_than(64000, size)
assert_equal(len(res['bestblock']), 64)
assert_equal(len(res['hash_serialized_3']), 64)

Expand Down Expand Up @@ -433,7 +433,7 @@ def _test_getdifficulty(self):
difficulty = self.nodes[0].getdifficulty()
# 1 hash in 2 should be valid, so difficulty should be 1/2**31
# 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):
self.log.info("Test getnetworkhashps")
Expand Down Expand Up @@ -475,7 +475,7 @@ def _test_getnetworkhashps(self):

# This should be 2 hashes every 10 minutes or 1/300
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
# hashes per second from the last difficulty change.
Expand Down
4 changes: 3 additions & 1 deletion test/functional/rpc_createmultisig.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from test_framework.util import (
assert_raises_rpc_error,
assert_equal,
assert_greater_than,
)
from test_framework.wallet_util import generate_keypair
from test_framework.wallet import (
Expand Down Expand Up @@ -143,7 +144,8 @@ def checkbalances(self):
balw = self.wallet.get_balance()

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
assert bal1 == 0
assert bal2 == self.moved
Expand Down
7 changes: 5 additions & 2 deletions test/functional/test_framework/blocktools.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@
keys_to_multisig_script,
script_to_p2wsh_script,
)
from .util import assert_equal
from .util import (
assert_equal,
assert_greater_than,
)

WITNESS_SCALE_FACTOR = 4
MAX_BLOCK_SIGOPS = 20000
Expand Down Expand Up @@ -160,7 +163,7 @@ def create_tx_with_script(prevtx, n, script_sig=b"", *, amount, script_pub_key=C
Can optionally pass scriptPubKey and scriptSig, default is anyone-can-spend output.
"""
tx = CTransaction()
assert n < len(prevtx.vout)
assert_greater_than(len(prevtx.vout), n)
tx.vin.append(CTxIn(COutPoint(prevtx.sha256, n), script_sig, SEQUENCE_FINAL))
tx.vout.append(CTxOut(amount, script_pub_key))
tx.calc_sha256()
Expand Down
4 changes: 3 additions & 1 deletion test/functional/test_framework/netutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import array
import os

from .util import assert_greater_than

# STATE_ESTABLISHED = '01'
# STATE_SYN_SENT = '02'
# STATE_SYN_RECV = '03'
Expand Down Expand Up @@ -133,7 +135,7 @@ def addr_to_hex(addr):
if i == 0 or i == (len(addr)-1): # skip empty component at beginning or end
continue
x += 1 # :: skips to suffix
assert x < 2
assert_greater_than(2, x)
else: # two bytes per component
val = int(comp, 16)
sub[x].append(val >> 8)
Expand Down
4 changes: 3 additions & 1 deletion test/functional/test_framework/p2p.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
MAX_NODES,
p2p_port,
wait_until_helper_internal,
assert_greater_than,
)
from test_framework.v2_p2p import (
EncryptedP2PState,
Expand Down Expand Up @@ -744,7 +745,8 @@ def listen(cls, p2p, callback, port=None, addr=None, idx=1):
for connections, call `callback`."""

if port is None:
assert 0 < idx <= MAX_NODES
assert_greater_than(idx, 0)
assert idx <= MAX_NODES
port = p2p_port(MAX_NODES - idx)
if addr is None:
addr = '127.0.0.1'
Expand Down
3 changes: 2 additions & 1 deletion test/functional/test_framework/script.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import unittest

from .key import TaggedHash, tweak_add_pubkey, compute_xonly_pubkey
from .util import assert_greater_than

from .messages import (
CTransaction,
Expand Down Expand Up @@ -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):
assert (len(txTo.vin) == len(spent_utxos))
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
in_type = hash_type & SIGHASH_ANYONECANPAY
spk = spent_utxos[input_index].scriptPubKey
Expand Down
3 changes: 2 additions & 1 deletion test/functional/wallet_abandonconflict.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
assert_raises_rpc_error,
)

Expand Down Expand Up @@ -53,7 +54,7 @@ def run_test(self):
assert_raises_rpc_error(-5, 'Transaction not eligible for abandonment', lambda: alice.abandontransaction(txid=txA))

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
balance = newbalance

# Disconnect nodes so node0's transactions don't get into node1's mempool
Expand Down
2 changes: 1 addition & 1 deletion test/functional/wallet_bumpfee.py
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ def test_unconfirmed_not_spendable(self, rbf_node, rbf_node_address):

def test_bumpfee_metadata(self, rbf_node, dest_address):
self.log.info('Test that bumped txn metadata persists to new txn record')
assert rbf_node.getbalance() < 49
assert_greater_than(49, rbf_node.getbalance())
self.generatetoaddress(rbf_node, 101, rbf_node.getnewaddress())
rbfid = rbf_node.sendtoaddress(dest_address, 49, "comment value", "to value")
bumped_tx = rbf_node.bumpfee(rbfid)
Expand Down
3 changes: 2 additions & 1 deletion test/functional/wallet_conflicts.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
)

class TxConflicts(BitcoinTestFramework):
Expand Down Expand Up @@ -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")
# 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

# Conflicted tx should have confirmations set to the confirmations of the most conflicting tx
Expand Down
4 changes: 3 additions & 1 deletion test/functional/wallet_create_tx.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
assert_raises_rpc_error,
)
from test_framework.blocktools import (
Expand Down Expand Up @@ -45,7 +46,8 @@ def test_anti_fee_sniping(self):
self.generate(self.nodes[0], 1)
txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 1)
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

def test_tx_size_too_large(self):
# More than 10kB of outputs, so that we hit -maxtxfee with a high feerate
Expand Down