From ebff7caaaf348602422f6943e9de01240a79994e Mon Sep 17 00:00:00 2001 From: blasty Date: Thu, 6 Aug 2026 22:05:03 +0200 Subject: tests: one front door Fourteen test files, each its own __main__, and no way to run them but from memory -- so in practice you ran the one you were working on and hoped. Worse, nothing said which files need a licensed IDA and a real worker (minutes) and which are pure stdlib (milliseconds), so the cheap ones nobody ran either. tests/run.py runs the lot and prints one table. --fast selects only the suites that need nothing, which is 257 checks in half a second under any python3 -- that's the one you run between edits. The classification lives in the test files, not in a table here that would rot the first time someone adds a test: each declares NEEDS_IDA at module scope and run.py reads it with ast (it can't import them -- they run their suite at import). A file without the marker is a hard error rather than a silent guess. --- tests/test_project_ui.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tests/test_project_ui.py') diff --git a/tests/test_project_ui.py b/tests/test_project_ui.py index 54c06bd..753717a 100644 --- a/tests/test_project_ui.py +++ b/tests/test_project_ui.py @@ -8,6 +8,10 @@ Needs idalib (it spawns real workers, one per binary) and textual: Defaults to targets/echo + targets/cat. The binaries are copied into a temp source dir first, so the "source tree stays pristine" promise is checkable. """ + +#: spawns one real worker per binary and drives the pilot. +#: Read by tests/run.py (--fast skips every NEEDS_IDA file). +NEEDS_IDA = True import asyncio import os import shutil -- cgit v1.3.1-sl0p