aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_index.py
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-08-07 14:46:56 +0200
committerblasty <blasty@local>2026-08-07 14:46:56 +0200
commit052d6d2f23f4e91682ef2273cd5c48c6011f994b (patch)
tree691dc95f5bc8c49f35b3440391c3cb1d023b9f7b /tests/test_index.py
parenttests: blob_ui 39.8s -> 4.1s, and a fatal it was hiding (diff)
downloadida-tui-052d6d2f23f4e91682ef2273cd5c48c6011f994b.tar.gz
ida-tui-052d6d2f23f4e91682ef2273cd5c48c6011f994b.tar.xz
ida-tui-052d6d2f23f4e91682ef2273cd5c48c6011f994b.zip
tests: thumb_ui 5m13s (crashing) -> 8.5s
It was not slow because ARM analysis is slow. It was slow because it fought Code Mode's ownership model and then waited out timeouts for the result. The suite deleted <fixture>.i64 and REOPENED THE SAME PATH before each of its four phases. That was safe when the TUI owned a private worker that died with it. Under Code Mode the database is leased, and the previous phase's managed worker can still hold it through its lease grace -- so the delete raced a live owner, the next open never produced a listing, and the suite died on `lst.model.index_of_ea(0)` with model=None after burning minutes in waits whose results were never checked. Each phase now gets its own temp copy: separate paths cannot collide and nothing waits for anyone to let go. This is the same hazard docs/CODEMODE_PORT.md flags -- sweeping files that another client may own -- showing up in the test suite rather than in the app. Also replaced four `wait(lambda: lst.model is not <old>, ..., 60)` gates. An item edit now keeps the listing's walk instead of rebuilding it, so the model object is never replaced and each of those sat out its full 60 seconds while the suite still reported success. They now settle() on the signal the checks actually read: the status line announcing Thumb/ARM/64-bit, and the function appearing in the index. 20 passed, 0 failed (it never reached a tally before). Verified separately that the four ARM operations the port carried over do work against a live database: set_thumb, thumb_scan, define_code_run, define_func_run.
Diffstat (limited to 'tests/test_index.py')
0 files changed, 0 insertions, 0 deletions