rea/tests/conformance
morluto 5cbf06c7ad
fix(ghidra): admit the 12.1 line and the install's JDK range (#840)
* fix(ghidra): admit the 12.1 line and the install's JDK range

The provider treated the verified Ghidra 12.1.4 build and JDK 21 as the only
legal installation, so a working 12.1.x package or a newer JDK was rejected
before analysis started.

Admission now follows the 12.1 release line and application.java.min/max.
A compatible build other than 12.1.4 keeps its observed version and records
that the bridge was verified against 12.1.4.

Fixes #821

* fix(ghidra): stop pinning the NativeAOT build to one version string

The build script still rejected every Ghidra release except the literal
12.1.4 and every javac except major 21. It now accepts the 12.1 line and
javac 21 or newer, compiles with --release 21, and records the observed
Ghidra version. The JADX engine version uses the audited release constant.

* fix(ghidra): report unverified builds on analysis results

Session open uses health only as a startup gate and discards that
execution, so the unverified-build limitation never reached CLI or MCP
results. Attach it to every Ghidra execution for that install.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-10-07 12:24:36 +08:00
..
c test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
contracts refactor(domain): split error taxonomy into thematic modules (#636) 2026-10-06 05:57:38 +08:00
ghidra fix(ghidra): admit the 12.1 line and the install's JDK range (#840) 2026-10-07 12:24:36 +08:00
ida feat(ida): add read-only GUI and headless MCP providers (#754) 2026-10-07 01:47:05 +08:00
interface-builder feat(native): add investigation features (#486) 2026-09-30 00:41:05 +08:00
napi test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
native feat(native): add inspection primitives, dispatch traces and approved UI observation (#500) 2026-10-04 16:02:36 +08:00
objc test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
providers feat(ghidra): enable Windows x64 read-only analysis (#699) 2026-10-06 16:53:33 +08:00
readiness feat(electron): add autonomous Electron runtime analysis (#464) 2026-08-05 19:07:46 +08:00
runtime-inspector feat(runtime): add passive V8 Inspector observation 2026-07-24 13:16:35 +00:00
swift test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
versions test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
README.md refactor(contracts): simplify workflows and drop readiness tool 2026-09-29 09:22:44 +08:00
readmeConsistency.test.ts docs(installation): pin manual MCP registration to the release version (#658) 2026-10-06 13:50:08 +08:00
releaseConfiguration.test.ts docs(installation): pin manual MCP registration to the release version (#658) 2026-10-06 13:50:08 +08:00
scanTodos.test.ts test: overhaul deterministic suite architecture 2026-07-29 22:00:38 +00:00

README.md

Source-built conformance fixtures

These sources are deliberately small semantic oracles for REA providers. Run npm run verify:fixtures on macOS or Linux to compile them into the ignored build/conformance/ directory, emit a hash-and-toolchain manifest, and verify their platform-native symbols and strings with local command-line tools. The portable C, version, and large-inventory fixtures build as Mach-O on macOS and ELF on Linux; Objective-C, Swift, and N-API-like fixtures remain macOS-only.

Only source files are versioned. Generated binaries, generated large-fixture source, debug information, and manifests must remain under build/.

ghidra/inventory.c is also compiled into temporary Linux ELF debug and stripped variants by npm run verify:ghidra. It fixes local functions, external puts linkage, defined strings, and writable/executable memory needed to prove the read-only Ghidra inventory contracts without committing a binary.

scripts/create-ghidra-windows-fixture.mjs separately emits a deterministic, ignored native x86-64 PE application for the controlled Windows Ghidra P0 lane. The generator and fixed SHA-256 are versioned; the .exe is never committed or executed. npm run verify:ghidra:windows uses it to prove all 19 operations, digest linkage, transport, and cleanup on the self-hosted real-Ghidra runner.

The C fixture fixes a known call chain and strings. The version pair fixes an added symbol, changed string, and changed call relationship. The generated large fixture contains 1,205 uniquely named functions and strings to verify that providers return complete inventories. Objective-C, Swift, and N-API-like fixtures provide metadata-oriented inputs without package or network dependencies.

readiness/ adds source-only generated JavaScript CLI and Electron fixtures for the repository's reconstruction-readiness verifier. npm run verify:readiness combines them with the compiled native fixtures, exercises CLI and MCP parity for real analysis operations, and checks the internal machine-readable report documented in docs/reconstruction-readiness.md.