aboutsummaryrefslogtreecommitdiffstats
path: root/idatui
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-08-06 23:25:23 +0200
committerblasty <blasty@local>2026-08-06 23:25:23 +0200
commit9622e957cdd9602a2f2230ed7d4c90b06688a217 (patch)
treed81a9c2761da67f2929d6fe852090a3f418038b1 /idatui
parentsplit: stop the resync loop that spun the worker forever (diff)
downloadida-tui-9622e957cdd9602a2f2230ed7d4c90b06688a217.tar.gz
ida-tui-9622e957cdd9602a2f2230ed7d4c90b06688a217.tar.xz
ida-tui-9622e957cdd9602a2f2230ed7d4c90b06688a217.zip
tests: wait for the thing, don't sleep and hope
test_trace_ui spent 18.8 of its 35.2 seconds in flat pilot.pause() calls placed to let an async seek land. Two loops were most of it: 6 iterations at 0.5s and 28 at 0.3s, 11.4s of sleeping to check that a step moves the cursor. They are condition waits now. The questions are unchanged -- does the listing cursor reach the pc, does the pseudocode cursor follow -- but they cost what they cost instead of a fixed budget. The second loop settles on something that does NOT presuppose the answer (the listing cursor arriving, and the trail map belonging to the loaded function): waiting on 'is this pc mapped' would have burned the timeout on every unmapped instruction, about half of them, and come out slower than the sleep it replaced. 35.2s -> 20.9s, 39 checks, stable over repeated runs. tests/_fixtures.py collects the staging both this suite and test_scenarios need -- scratch copy, seeded from a golden .i64 nothing writes back to -- which was private to test_scenarios. Worth saying plainly: on targets/echo the seeding is worth 0.19s, not the analysis time I assumed when I went looking. It is shared for the deduplication and for whatever gets pointed at a bigger binary.
Diffstat (limited to 'idatui')
0 files changed, 0 insertions, 0 deletions