Merge pull request #95 from rusty-loy/classic_12_fix_tests

Fix extended tests
This commit is contained in:
TomZ
2016-02-29 16:41:05 +00:00
5 changed files with 73 additions and 53 deletions

View File

@@ -85,9 +85,9 @@ class BIP65Test(ComparisonTestFramework):
height += 1
yield TestInstance(test_blocks, sync_every_block=False)
''' Mine 749 version 4 blocks '''
''' Mine 74 version 4 blocks '''
test_blocks = []
for i in xrange(749):
for i in xrange(74):
block = create_block(self.tip, create_coinbase(height), self.last_block_time + 1)
block.nVersion = 4
block.rehash()
@@ -99,7 +99,7 @@ class BIP65Test(ComparisonTestFramework):
yield TestInstance(test_blocks, sync_every_block=False)
'''
Check that the new CLTV rules are not enforced in the 750th
Check that the new CLTV rules are not enforced in the 75th
version 3 block.
'''
spendtx = self.create_transaction(self.nodes[0],
@@ -120,7 +120,7 @@ class BIP65Test(ComparisonTestFramework):
yield TestInstance([[block, True]])
'''
Check that the new CLTV rules are enforced in the 751st version 4
Check that the new CLTV rules are enforced in the 76th version 4
block.
'''
spendtx = self.create_transaction(self.nodes[0],
@@ -137,9 +137,9 @@ class BIP65Test(ComparisonTestFramework):
self.last_block_time += 1
yield TestInstance([[block, False]])
''' Mine 199 new version blocks on last valid tip '''
''' Mine 19 new version blocks on last valid tip '''
test_blocks = []
for i in xrange(199):
for i in xrange(19):
block = create_block(self.tip, create_coinbase(height), self.last_block_time + 1)
block.nVersion = 4
block.rehash()

View File

@@ -12,6 +12,13 @@ from test_framework.util import *
class BIP65Test(BitcoinTestFramework):
def __init__(self):
self.num_nodes = 3
def setup_chain(self):
print "Initializing test directory "+self.options.tmpdir
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
def setup_network(self):
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir, []))
@@ -26,61 +33,60 @@ class BIP65Test(BitcoinTestFramework):
cnt = self.nodes[0].getblockcount()
# Mine some old-version blocks
self.nodes[1].generate(100)
self.nodes[1].generate(10)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 100):
raise AssertionError("Failed to mine 100 version=3 blocks")
if (self.nodes[0].getblockcount() != cnt + 10):
raise AssertionError("Failed to mine 10 version=3 blocks")
# Mine 750 new-version blocks
# Mine 75 new-version blocks
for i in xrange(15):
self.nodes[2].generate(50)
self.nodes[2].generate(5)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 850):
raise AssertionError("Failed to mine 750 version=4 blocks")
if (self.nodes[0].getblockcount() != cnt + 85):
raise AssertionError("Failed to mine 75 version=4 blocks")
# TODO: check that new CHECKLOCKTIMEVERIFY rules are not enforced
# Mine 1 new-version block
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 851):
raise AssertionError("Failed to mine a version=4 blocks")
if (self.nodes[0].getblockcount() != cnt + 86):
raise AssertionFailure("Failed to mine a version=4 block")
# TODO: check that new CHECKLOCKTIMEVERIFY rules are enforced
# Mine 198 new-version blocks
for i in xrange(2):
self.nodes[2].generate(99)
# Mine 18 new-version blocks
self.nodes[2].generate(18)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1049):
raise AssertionError("Failed to mine 198 version=4 blocks")
if (self.nodes[0].getblockcount() != cnt + 104):
raise AssertionError("Failed to mine 18 version=4 blocks")
# Mine 1 old-version block
self.nodes[1].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1050):
raise AssertionError("Failed to mine a version=3 block after 949 version=4 blocks")
if (self.nodes[0].getblockcount() != cnt + 105):
raise AssertionError("Failed to mine a version=3 block after 94 version=4 blocks")
# Mine 1 new-version blocks
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1051):
raise AssertionError("Failed to mine a version=4 block")
if (self.nodes[0].getblockcount() != cnt + 106):
raise AssertionError("Failed to mine a version=3 block")
# Mine 1 old-version blocks
try:
self.nodes[1].generate(1)
raise AssertionError("Succeeded to mine a version=3 block after 950 version=4 blocks")
raise AssertionError("Succeeded to mine a version=3 block after 95 version=4 blocks")
except JSONRPCException:
pass
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1051):
raise AssertionError("Accepted a version=3 block after 950 version=4 blocks")
if (self.nodes[0].getblockcount() != cnt + 106):
raise AssertionError("Accepted a version=3 block after 95 version=4 blocks")
# Mine 1 new-version blocks
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1052):
if (self.nodes[0].getblockcount() != cnt + 107):
raise AssertionError("Failed to mine a version=4 block")
if __name__ == '__main__':

View File

@@ -12,6 +12,13 @@ from test_framework.util import *
class BIP66Test(BitcoinTestFramework):
def __init__(self):
self.num_nodes = 3
def setup_chain(self):
print "Initializing test directory "+self.options.tmpdir
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
def setup_network(self):
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir, []))
@@ -26,61 +33,61 @@ class BIP66Test(BitcoinTestFramework):
cnt = self.nodes[0].getblockcount()
# Mine some old-version blocks
self.nodes[1].generate(100)
self.nodes[1].generate(10)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 100):
raise AssertionError("Failed to mine 100 version=2 blocks")
if (self.nodes[0].getblockcount() != cnt + 10):
raise AssertionError("Failed to mine 10 version=2 blocks")
# Mine 750 new-version blocks
# Mine 75 new-version blocks
for i in xrange(15):
self.nodes[2].generate(50)
self.nodes[2].generate(5)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 850):
raise AssertionError("Failed to mine 750 version=3 blocks")
if (self.nodes[0].getblockcount() != cnt + 85):
raise AssertionError("Failed to mine 75 version=3 blocks")
# TODO: check that new DERSIG rules are not enforced
# Mine 1 new-version block
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 851):
if (self.nodes[0].getblockcount() != cnt + 86):
raise AssertionError("Failed to mine a version=3 blocks")
# TODO: check that new DERSIG rules are enforced
# Mine 198 new-version blocks
# Mine 18 new-version blocks
for i in xrange(2):
self.nodes[2].generate(99)
self.nodes[2].generate(9)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1049):
raise AssertionError("Failed to mine 198 version=3 blocks")
if (self.nodes[0].getblockcount() != cnt + 104):
raise AssertionError("Failed to mine 18 version=3 blocks")
# Mine 1 old-version block
self.nodes[1].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1050):
raise AssertionError("Failed to mine a version=2 block after 949 version=3 blocks")
if (self.nodes[0].getblockcount() != cnt + 105):
raise AssertionError("Failed to mine a version=2 block after 94 version=3 blocks")
# Mine 1 new-version blocks
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1051):
if (self.nodes[0].getblockcount() != cnt + 106):
raise AssertionError("Failed to mine a version=3 block")
# Mine 1 old-version blocks
try:
self.nodes[1].generate(1)
raise AssertionError("Succeeded to mine a version=2 block after 950 version=3 blocks")
raise AssertionError("Succeeded to mine a version=2 block after 95 version=3 blocks")
except JSONRPCException:
pass
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1051):
raise AssertionError("Accepted a version=2 block after 950 version=3 blocks")
if (self.nodes[0].getblockcount() != cnt + 106):
raise AssertionError("Accepted a version=2 block after 95 version=3 blocks")
# Mine 1 new-version blocks
self.nodes[2].generate(1)
self.sync_all()
if (self.nodes[0].getblockcount() != cnt + 1052):
if (self.nodes[0].getblockcount() != cnt + 107):
raise AssertionError("Failed to mine a version=3 block")
if __name__ == '__main__':

View File

@@ -14,6 +14,13 @@ class ForkNotifyTest(BitcoinTestFramework):
alert_filename = None # Set by setup_network
def __init__(self):
self.num_nodes = 3
def setup_chain(self):
print "Initializing test directory "+self.options.tmpdir
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
def setup_network(self):
self.nodes = []
self.alert_filename = os.path.join(self.options.tmpdir, "alert.txt")

View File

@@ -95,9 +95,9 @@ class MaxUploadTest(BitcoinTestFramework):
initialize_chain_clean(self.options.tmpdir, 2)
def setup_network(self):
# Start a node with maxuploadtarget of 200 MB (/24h)
# Start a node with maxuploadtarget of 400 MB (/24h)
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir, ["-debug", "-maxuploadtarget=200", "-blockmaxsize=999000"]))
self.nodes.append(start_node(0, self.options.tmpdir, ["-debug", "-maxuploadtarget=400", "-blockmaxsize=999000"]))
def mine_full_block(self, node, address):
# Want to create a full block
@@ -175,13 +175,13 @@ class MaxUploadTest(BitcoinTestFramework):
getdata_request = msg_getdata()
getdata_request.inv.append(CInv(2, big_old_block))
max_bytes_per_day = 200*1024*1024
daily_buffer = 144 * 1000000
max_bytes_per_day = 400*1024*1024
daily_buffer = 144 * 2000000
max_bytes_available = max_bytes_per_day - daily_buffer
success_count = max_bytes_available / old_block_size
# 144MB will be reserved for relaying new blocks, so expect this to
# succeed for ~70 tries.
# Space reserved for relaying 144 new blocks, so expect this to
# succeed for ~140 tries.
for i in xrange(success_count):
test_nodes[0].send_message(getdata_request)
test_nodes[0].sync_with_ping()