mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
merge bitcoin#25794: don't rely on block_connected USDT event order in tests
This commit is contained in:
parent
457bbd3f8b
commit
88696129f3
@ -91,7 +91,7 @@ class ValidationTracepointTest(BitcoinTestFramework):
|
|||||||
# that the handle_* functions succeeded.
|
# that the handle_* functions succeeded.
|
||||||
BLOCKS_EXPECTED = 2
|
BLOCKS_EXPECTED = 2
|
||||||
blocks_checked = 0
|
blocks_checked = 0
|
||||||
expected_blocks = list()
|
expected_blocks = dict()
|
||||||
|
|
||||||
self.log.info("hook into the validation:block_connected tracepoint")
|
self.log.info("hook into the validation:block_connected tracepoint")
|
||||||
ctx = USDT(path=str(self.options.bitcoind))
|
ctx = USDT(path=str(self.options.bitcoind))
|
||||||
@ -104,15 +104,16 @@ class ValidationTracepointTest(BitcoinTestFramework):
|
|||||||
nonlocal expected_blocks, blocks_checked
|
nonlocal expected_blocks, blocks_checked
|
||||||
event = ctypes.cast(data, ctypes.POINTER(Block)).contents
|
event = ctypes.cast(data, ctypes.POINTER(Block)).contents
|
||||||
self.log.info(f"handle_blockconnected(): {event}")
|
self.log.info(f"handle_blockconnected(): {event}")
|
||||||
block = expected_blocks.pop(0)
|
block_hash = bytes(event.hash[::-1]).hex()
|
||||||
assert_equal(block["hash"], bytes(event.hash[::-1]).hex())
|
block = expected_blocks[block_hash]
|
||||||
|
assert_equal(block["hash"], block_hash)
|
||||||
assert_equal(block["height"], event.height)
|
assert_equal(block["height"], event.height)
|
||||||
assert_equal(len(block["tx"]), event.transactions)
|
assert_equal(len(block["tx"]), event.transactions)
|
||||||
assert_equal(len([tx["vin"] for tx in block["tx"]]), event.inputs)
|
assert_equal(len([tx["vin"] for tx in block["tx"]]), event.inputs)
|
||||||
assert_equal(0, event.sigops) # no sigops in coinbase tx
|
assert_equal(0, event.sigops) # no sigops in coinbase tx
|
||||||
# only plausibility checks
|
# only plausibility checks
|
||||||
assert(event.duration > 0)
|
assert(event.duration > 0)
|
||||||
|
del expected_blocks[block_hash]
|
||||||
blocks_checked += 1
|
blocks_checked += 1
|
||||||
|
|
||||||
bpf["block_connected"].open_perf_buffer(
|
bpf["block_connected"].open_perf_buffer(
|
||||||
@ -122,7 +123,7 @@ class ValidationTracepointTest(BitcoinTestFramework):
|
|||||||
block_hashes = self.nodes[0].generatetoaddress(
|
block_hashes = self.nodes[0].generatetoaddress(
|
||||||
BLOCKS_EXPECTED, ADDRESS_BCRT1_UNSPENDABLE)
|
BLOCKS_EXPECTED, ADDRESS_BCRT1_UNSPENDABLE)
|
||||||
for block_hash in block_hashes:
|
for block_hash in block_hashes:
|
||||||
expected_blocks.append(self.nodes[0].getblock(block_hash, 2))
|
expected_blocks[block_hash] = self.nodes[0].getblock(block_hash, 2)
|
||||||
|
|
||||||
bpf.perf_buffer_poll(timeout=200)
|
bpf.perf_buffer_poll(timeout=200)
|
||||||
bpf.cleanup()
|
bpf.cleanup()
|
||||||
|
Loading…
Reference in New Issue
Block a user