Skip to content

Commit 9f55773

Browse files
committed
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.
1 parent bc43270 commit 9f55773

File tree

1 file changed

+16
-28
lines changed

1 file changed

+16
-28
lines changed

test/functional/interface_usdt_mempool.py

+16-28
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,7 @@ def added_test(self):
137137
"""Add a transaction to the mempool and make sure the tracepoint returns
138138
the expected txid, vsize, and fee."""
139139

140-
EXPECTED_ADDED_EVENTS = 1
141-
handled_added_events = 0
142-
event = None
140+
events = []
143141

144142
self.log.info("Hooking into mempool:added tracepoint...")
145143
node = self.nodes[0]
@@ -148,9 +146,7 @@ def added_test(self):
148146
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
149147

150148
def handle_added_event(_, data, __):
151-
nonlocal event, handled_added_events
152-
event = bpf["added_events"].event(data)
153-
handled_added_events += 1
149+
events.append(bpf["added_events"].event(data))
154150

155151
bpf["added_events"].open_perf_buffer(handle_added_event)
156152

@@ -165,7 +161,8 @@ def handle_added_event(_, data, __):
165161
self.generate(node, 1)
166162

167163
self.log.info("Ensuring mempool:added event was handled successfully...")
168-
assert_equal(EXPECTED_ADDED_EVENTS, handled_added_events)
164+
assert_equal(1, len(events))
165+
event = events[0]
169166
assert_equal(bytes(event.hash)[::-1].hex(), tx["txid"])
170167
assert_equal(event.vsize, tx["tx"].get_vsize())
171168
assert_equal(event.fee, fee)
@@ -177,9 +174,7 @@ def removed_test(self):
177174
"""Expire a transaction from the mempool and make sure the tracepoint returns
178175
the expected txid, expiry reason, vsize, and fee."""
179176

180-
EXPECTED_REMOVED_EVENTS = 1
181-
handled_removed_events = 0
182-
event = None
177+
events = []
183178

184179
self.log.info("Hooking into mempool:removed tracepoint...")
185180
node = self.nodes[0]
@@ -188,9 +183,7 @@ def removed_test(self):
188183
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
189184

190185
def handle_removed_event(_, data, __):
191-
nonlocal event, handled_removed_events
192-
event = bpf["removed_events"].event(data)
193-
handled_removed_events += 1
186+
events.append(bpf["removed_events"].event(data))
194187

195188
bpf["removed_events"].open_perf_buffer(handle_removed_event)
196189

@@ -212,7 +205,8 @@ def handle_removed_event(_, data, __):
212205
bpf.perf_buffer_poll(timeout=200)
213206

214207
self.log.info("Ensuring mempool:removed event was handled successfully...")
215-
assert_equal(EXPECTED_REMOVED_EVENTS, handled_removed_events)
208+
assert_equal(1, len(events))
209+
event = events[0]
216210
assert_equal(bytes(event.hash)[::-1].hex(), txid)
217211
assert_equal(event.reason.decode("UTF-8"), "expiry")
218212
assert_equal(event.vsize, tx["tx"].get_vsize())
@@ -226,9 +220,7 @@ def replaced_test(self):
226220
"""Replace one and two transactions in the mempool and make sure the tracepoint
227221
returns the expected txids, vsizes, and fees."""
228222

229-
EXPECTED_REPLACED_EVENTS = 1
230-
handled_replaced_events = 0
231-
event = None
223+
events = []
232224

233225
self.log.info("Hooking into mempool:replaced tracepoint...")
234226
node = self.nodes[0]
@@ -237,9 +229,7 @@ def replaced_test(self):
237229
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
238230

239231
def handle_replaced_event(_, data, __):
240-
nonlocal event, handled_replaced_events
241-
event = bpf["replaced_events"].event(data)
242-
handled_replaced_events += 1
232+
events.append(bpf["replaced_events"].event(data))
243233

244234
bpf["replaced_events"].open_perf_buffer(handle_replaced_event)
245235

@@ -261,7 +251,8 @@ def handle_replaced_event(_, data, __):
261251
bpf.perf_buffer_poll(timeout=200)
262252

263253
self.log.info("Ensuring mempool:replaced event was handled successfully...")
264-
assert_equal(EXPECTED_REPLACED_EVENTS, handled_replaced_events)
254+
assert_equal(1, len(events))
255+
event = events[0]
265256
assert_equal(bytes(event.replaced_hash)[::-1].hex(), original_tx["txid"])
266257
assert_equal(event.replaced_vsize, original_tx["tx"].get_vsize())
267258
assert_equal(event.replaced_fee, original_fee)
@@ -277,9 +268,7 @@ def rejected_test(self):
277268
"""Create an invalid transaction and make sure the tracepoint returns
278269
the expected txid, rejection reason, peer id, and peer address."""
279270

280-
EXPECTED_REJECTED_EVENTS = 1
281-
handled_rejected_events = 0
282-
event = None
271+
events = []
283272

284273
self.log.info("Adding P2P connection...")
285274
node = self.nodes[0]
@@ -291,9 +280,7 @@ def rejected_test(self):
291280
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0)
292281

293282
def handle_rejected_event(_, data, __):
294-
nonlocal event, handled_rejected_events
295-
event = bpf["rejected_events"].event(data)
296-
handled_rejected_events += 1
283+
events.append(bpf["rejected_events"].event(data))
297284

298285
bpf["rejected_events"].open_perf_buffer(handle_rejected_event)
299286

@@ -305,7 +292,8 @@ def handle_rejected_event(_, data, __):
305292
bpf.perf_buffer_poll(timeout=200)
306293

307294
self.log.info("Ensuring mempool:rejected event was handled successfully...")
308-
assert_equal(EXPECTED_REJECTED_EVENTS, handled_rejected_events)
295+
assert_equal(1, len(events))
296+
event = events[0]
309297
assert_equal(bytes(event.hash)[::-1].hex(), tx["tx"].hash)
310298
assert_equal(event.reason.decode("UTF-8"), "min relay fee not met")
311299

0 commit comments

Comments
 (0)