mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-23 15:20:49 +01:00
test: refactor: usdt_mempool: store all events
Even though we expect these functions to only produce one event, we still keep a counter to check if that's true. By simply storing all the events, we can remove the counters and make debugging easier, by allowing pdb to access the events.
This commit is contained in:
parent
bc43270450
commit
9f55773a37
1 changed files with 16 additions and 28 deletions
|
@ -137,9 +137,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
"""Add a transaction to the mempool and make sure the tracepoint returns
|
"""Add a transaction to the mempool and make sure the tracepoint returns
|
||||||
the expected txid, vsize, and fee."""
|
the expected txid, vsize, and fee."""
|
||||||
|
|
||||||
EXPECTED_ADDED_EVENTS = 1
|
events = []
|
||||||
handled_added_events = 0
|
|
||||||
event = None
|
|
||||||
|
|
||||||
self.log.info("Hooking into mempool:added tracepoint...")
|
self.log.info("Hooking into mempool:added tracepoint...")
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
@ -148,9 +146,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
||||||
|
|
||||||
def handle_added_event(_, data, __):
|
def handle_added_event(_, data, __):
|
||||||
nonlocal event, handled_added_events
|
events.append(bpf["added_events"].event(data))
|
||||||
event = bpf["added_events"].event(data)
|
|
||||||
handled_added_events += 1
|
|
||||||
|
|
||||||
bpf["added_events"].open_perf_buffer(handle_added_event)
|
bpf["added_events"].open_perf_buffer(handle_added_event)
|
||||||
|
|
||||||
|
@ -165,7 +161,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
self.generate(node, 1)
|
self.generate(node, 1)
|
||||||
|
|
||||||
self.log.info("Ensuring mempool:added event was handled successfully...")
|
self.log.info("Ensuring mempool:added event was handled successfully...")
|
||||||
assert_equal(EXPECTED_ADDED_EVENTS, handled_added_events)
|
assert_equal(1, len(events))
|
||||||
|
event = events[0]
|
||||||
assert_equal(bytes(event.hash)[::-1].hex(), tx["txid"])
|
assert_equal(bytes(event.hash)[::-1].hex(), tx["txid"])
|
||||||
assert_equal(event.vsize, tx["tx"].get_vsize())
|
assert_equal(event.vsize, tx["tx"].get_vsize())
|
||||||
assert_equal(event.fee, fee)
|
assert_equal(event.fee, fee)
|
||||||
|
@ -177,9 +174,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
"""Expire a transaction from the mempool and make sure the tracepoint returns
|
"""Expire a transaction from the mempool and make sure the tracepoint returns
|
||||||
the expected txid, expiry reason, vsize, and fee."""
|
the expected txid, expiry reason, vsize, and fee."""
|
||||||
|
|
||||||
EXPECTED_REMOVED_EVENTS = 1
|
events = []
|
||||||
handled_removed_events = 0
|
|
||||||
event = None
|
|
||||||
|
|
||||||
self.log.info("Hooking into mempool:removed tracepoint...")
|
self.log.info("Hooking into mempool:removed tracepoint...")
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
@ -188,9 +183,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
||||||
|
|
||||||
def handle_removed_event(_, data, __):
|
def handle_removed_event(_, data, __):
|
||||||
nonlocal event, handled_removed_events
|
events.append(bpf["removed_events"].event(data))
|
||||||
event = bpf["removed_events"].event(data)
|
|
||||||
handled_removed_events += 1
|
|
||||||
|
|
||||||
bpf["removed_events"].open_perf_buffer(handle_removed_event)
|
bpf["removed_events"].open_perf_buffer(handle_removed_event)
|
||||||
|
|
||||||
|
@ -212,7 +205,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf.perf_buffer_poll(timeout=200)
|
bpf.perf_buffer_poll(timeout=200)
|
||||||
|
|
||||||
self.log.info("Ensuring mempool:removed event was handled successfully...")
|
self.log.info("Ensuring mempool:removed event was handled successfully...")
|
||||||
assert_equal(EXPECTED_REMOVED_EVENTS, handled_removed_events)
|
assert_equal(1, len(events))
|
||||||
|
event = events[0]
|
||||||
assert_equal(bytes(event.hash)[::-1].hex(), txid)
|
assert_equal(bytes(event.hash)[::-1].hex(), txid)
|
||||||
assert_equal(event.reason.decode("UTF-8"), "expiry")
|
assert_equal(event.reason.decode("UTF-8"), "expiry")
|
||||||
assert_equal(event.vsize, tx["tx"].get_vsize())
|
assert_equal(event.vsize, tx["tx"].get_vsize())
|
||||||
|
@ -226,9 +220,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
"""Replace one and two transactions in the mempool and make sure the tracepoint
|
"""Replace one and two transactions in the mempool and make sure the tracepoint
|
||||||
returns the expected txids, vsizes, and fees."""
|
returns the expected txids, vsizes, and fees."""
|
||||||
|
|
||||||
EXPECTED_REPLACED_EVENTS = 1
|
events = []
|
||||||
handled_replaced_events = 0
|
|
||||||
event = None
|
|
||||||
|
|
||||||
self.log.info("Hooking into mempool:replaced tracepoint...")
|
self.log.info("Hooking into mempool:replaced tracepoint...")
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
@ -237,9 +229,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
||||||
|
|
||||||
def handle_replaced_event(_, data, __):
|
def handle_replaced_event(_, data, __):
|
||||||
nonlocal event, handled_replaced_events
|
events.append(bpf["replaced_events"].event(data))
|
||||||
event = bpf["replaced_events"].event(data)
|
|
||||||
handled_replaced_events += 1
|
|
||||||
|
|
||||||
bpf["replaced_events"].open_perf_buffer(handle_replaced_event)
|
bpf["replaced_events"].open_perf_buffer(handle_replaced_event)
|
||||||
|
|
||||||
|
@ -261,7 +251,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf.perf_buffer_poll(timeout=200)
|
bpf.perf_buffer_poll(timeout=200)
|
||||||
|
|
||||||
self.log.info("Ensuring mempool:replaced event was handled successfully...")
|
self.log.info("Ensuring mempool:replaced event was handled successfully...")
|
||||||
assert_equal(EXPECTED_REPLACED_EVENTS, handled_replaced_events)
|
assert_equal(1, len(events))
|
||||||
|
event = events[0]
|
||||||
assert_equal(bytes(event.replaced_hash)[::-1].hex(), original_tx["txid"])
|
assert_equal(bytes(event.replaced_hash)[::-1].hex(), original_tx["txid"])
|
||||||
assert_equal(event.replaced_vsize, original_tx["tx"].get_vsize())
|
assert_equal(event.replaced_vsize, original_tx["tx"].get_vsize())
|
||||||
assert_equal(event.replaced_fee, original_fee)
|
assert_equal(event.replaced_fee, original_fee)
|
||||||
|
@ -277,9 +268,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
"""Create an invalid transaction and make sure the tracepoint returns
|
"""Create an invalid transaction and make sure the tracepoint returns
|
||||||
the expected txid, rejection reason, peer id, and peer address."""
|
the expected txid, rejection reason, peer id, and peer address."""
|
||||||
|
|
||||||
EXPECTED_REJECTED_EVENTS = 1
|
events = []
|
||||||
handled_rejected_events = 0
|
|
||||||
event = None
|
|
||||||
|
|
||||||
self.log.info("Adding P2P connection...")
|
self.log.info("Adding P2P connection...")
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
|
@ -291,9 +280,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
|
||||||
|
|
||||||
def handle_rejected_event(_, data, __):
|
def handle_rejected_event(_, data, __):
|
||||||
nonlocal event, handled_rejected_events
|
events.append(bpf["rejected_events"].event(data))
|
||||||
event = bpf["rejected_events"].event(data)
|
|
||||||
handled_rejected_events += 1
|
|
||||||
|
|
||||||
bpf["rejected_events"].open_perf_buffer(handle_rejected_event)
|
bpf["rejected_events"].open_perf_buffer(handle_rejected_event)
|
||||||
|
|
||||||
|
@ -305,7 +292,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
bpf.perf_buffer_poll(timeout=200)
|
bpf.perf_buffer_poll(timeout=200)
|
||||||
|
|
||||||
self.log.info("Ensuring mempool:rejected event was handled successfully...")
|
self.log.info("Ensuring mempool:rejected event was handled successfully...")
|
||||||
assert_equal(EXPECTED_REJECTED_EVENTS, handled_rejected_events)
|
assert_equal(1, len(events))
|
||||||
|
event = events[0]
|
||||||
assert_equal(bytes(event.hash)[::-1].hex(), tx["tx"].hash)
|
assert_equal(bytes(event.hash)[::-1].hex(), tx["tx"].hash)
|
||||||
assert_equal(event.reason.decode("UTF-8"), "min relay fee not met")
|
assert_equal(event.reason.decode("UTF-8"), "min relay fee not met")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue