-
-
Notifications
You must be signed in to change notification settings - Fork 1
live ida validation
Fake IDB and host tests are useful for fast feedback, but they do not establish that an operation behaves correctly inside a real IDA runtime. Live integration tests are opt-in and require a licensed local IDA installation and a target binary.
When a change touches IDA-side behavior, validate the smallest relevant path:
- session creation and analysis completion;
- decompilation, disassembly, and xrefs;
- the intended IDB mutation and its persisted result;
- snapshot or undo behavior when rollback is involved;
- retrieval against the selected backend and model;
- architecture-specific behavior for firmware or raw blobs.
Record the IDA version, runtime mode, binary, retrieval backend, and model when reporting results. Do not present fake-test results as live IDA behavior.
The live tests live under tests/integration/ and are intentionally not part
of the fast default suite. Follow the repository's
Live IDA testing
instructions for the required environment and runner options.
The basic invocation is:
IDA_MCP_LIVE_TEST=1 IDA_MCP_LIVE_IDADIR=/path/to/ida \
pytest -q tests/integrationUse IDADIR or IDA_DIR instead of IDA_MCP_LIVE_IDADIR when that is how the
IDA installation is exposed. IDA_MCP_LIVE_IDAT can select an executable
directly. The tests compile a temporary ELF fixture when no test binary is
provided; set IDA_MCP_LIVE_BINARY to use an existing fixture instead.
A normal development loop can still run the non-live suite:
pytest -q --basetemp=.pytest_tmpRun the integration scope separately only after configuring the licensed IDA installation and target binary described by the live-testing guide.
For a manual smoke test:
- Open the target with
ida_open_binary. - Poll
ida_session_status. - Call
ida_overview. - Read one known function with
ida_decompile. - Verify a reference with
ida_xrefs_to. - If testing a mutation, snapshot first, acknowledge the operation, re-read the result, and restore the snapshot if it was only an experiment.
- Call
ida_session_healthbefore closing the session.
For a live failure, include the operation name, minimal arguments, expected and actual result, IDA version, Python version, operating system, and relevant runtime/backend details.
The repository metadata and README require IDA Pro 9.2 or newer. The optional idalib runtime path is experimental and requires an IDA 9.3-or-newer install with its idalib Python environment. The normal offline test suite and fake-IDB tests do not validate behavior inside a live IDA process.
References: live-testing guide, plugin metadata, version source.