aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorstickies-v <stickies-v@protonmail.com>2023-06-23 12:05:34 +0100
committerstickies-v <stickies-v@protonmail.com>2023-06-23 16:47:43 +0100
commit9f55773a370a0d039e727445ccee6b84e05f562a (patch)
treeffd99254d6880f61c8958ae70ade6d9b97e3b52b /test
parentbc432704505eb165dd86de39ea3434c6fb7a2514 (diff)
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.
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/interface_usdt_mempool.py44
1 files changed, 16 insertions, 28 deletions
diff --git a/test/functional/interface_usdt_mempool.py b/test/functional/interface_usdt_mempool.py
index f138fa44cc..208b065c34 100755
--- a/test/functional/interface_usdt_mempool.py
+++ b/test/functional/interface_usdt_mempool.py
@@ -137,9 +137,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
"""Add a transaction to the mempool and make sure the tracepoint returns
the expected txid, vsize, and fee."""
- EXPECTED_ADDED_EVENTS = 1
- handled_added_events = 0
- event = None
+ events = []
self.log.info("Hooking into mempool:added tracepoint...")
node = self.nodes[0]
@@ -148,9 +146,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
def handle_added_event(_, data, __):
- nonlocal event, handled_added_events
- event = bpf["added_events"].event(data)
- handled_added_events += 1
+ events.append(bpf["added_events"].event(data))
bpf["added_events"].open_perf_buffer(handle_added_event)
@@ -165,7 +161,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
self.generate(node, 1)
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(event.vsize, tx["tx"].get_vsize())
assert_equal(event.fee, fee)
@@ -177,9 +174,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
"""Expire a transaction from the mempool and make sure the tracepoint returns
the expected txid, expiry reason, vsize, and fee."""
- EXPECTED_REMOVED_EVENTS = 1
- handled_removed_events = 0
- event = None
+ events = []
self.log.info("Hooking into mempool:removed tracepoint...")
node = self.nodes[0]
@@ -188,9 +183,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
def handle_removed_event(_, data, __):
- nonlocal event, handled_removed_events
- event = bpf["removed_events"].event(data)
- handled_removed_events += 1
+ events.append(bpf["removed_events"].event(data))
bpf["removed_events"].open_perf_buffer(handle_removed_event)
@@ -212,7 +205,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf.perf_buffer_poll(timeout=200)
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(event.reason.decode("UTF-8"), "expiry")
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
returns the expected txids, vsizes, and fees."""
- EXPECTED_REPLACED_EVENTS = 1
- handled_replaced_events = 0
- event = None
+ events = []
self.log.info("Hooking into mempool:replaced tracepoint...")
node = self.nodes[0]
@@ -237,9 +229,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
def handle_replaced_event(_, data, __):
- nonlocal event, handled_replaced_events
- event = bpf["replaced_events"].event(data)
- handled_replaced_events += 1
+ events.append(bpf["replaced_events"].event(data))
bpf["replaced_events"].open_perf_buffer(handle_replaced_event)
@@ -261,7 +251,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf.perf_buffer_poll(timeout=200)
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(event.replaced_vsize, original_tx["tx"].get_vsize())
assert_equal(event.replaced_fee, original_fee)
@@ -277,9 +268,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
"""Create an invalid transaction and make sure the tracepoint returns
the expected txid, rejection reason, peer id, and peer address."""
- EXPECTED_REJECTED_EVENTS = 1
- handled_rejected_events = 0
- event = None
+ events = []
self.log.info("Adding P2P connection...")
node = self.nodes[0]
@@ -291,9 +280,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
def handle_rejected_event(_, data, __):
- nonlocal event, handled_rejected_events
- event = bpf["rejected_events"].event(data)
- handled_rejected_events += 1
+ events.append(bpf["rejected_events"].event(data))
bpf["rejected_events"].open_perf_buffer(handle_rejected_event)
@@ -305,7 +292,8 @@ class MempoolTracepointTest(BitcoinTestFramework):
bpf.perf_buffer_poll(timeout=200)
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(event.reason.decode("UTF-8"), "min relay fee not met")