[GH-ISSUE #2629] test(ghidra): update positive integration hosts for declared Java admission #943

Closed
opened 2026-10-15 18:29:47 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/2629

Originally assigned to: @N0zoM1z0 on GitHub.

Confirmed main regression

At parent main 3ae826ceba6f25b08bce50bcb51001209bc16b57, several positive Ghidra integration fixtures still expose only application.version=12.1.4 through their installation host. Commit 2187e16f1 correctly changed installation admission to require the installation’s declared Java minimum instead of guessing JDK 21. The fixtures were not all updated, so intended routing/reopen/transport-continuation tests now fail before their expected provider behavior.

Independent reproduction

A clean, separate worktree at exact parent main (without PR #2511) with pinned Node 24.18.0 / npm 11.16.0 and fresh npm ci ran:

npm run test:focused -- tests/boundary/mcp/ghidraRoutingMcp.test.ts tests/boundary/mcp/ghidraReopen.test.ts

All four cases failed. The three reopen cases fail at their first provider query; the routing case reports the capability as unavailable. In the broader 42-file incremental check, analysisViewMcp also failed its successive-source-page case because it received an admission error instead of the completed-result transport error carrying reported_limits.

The same stale positive installation host also appears in tests/boundary/providers/ghidra/ghidraJavaLaunch.test.ts, where it is meant to reach actual child cancellation/timeout cleanup, not installation refusal. Existing explicitly named missing-minimum negative cases in GhidraInstallation and GhidraDoctor are intentional and must remain unchanged.

Static gate regression from the same update

Both local check:ci and remote run 38353628377 report formatter errors in GhidraDoctor.test.ts and GhidraSnapshotCache.test.ts. Normalize only these two touched files with the pinned formatter. A separate Windows native header download returned HTTP 502; that external failure is not evidence of a source defect and does not justify changing the downloader.

Bounded repair and acceptance

Declare application.java.min=21 in the three positive fixture producers, consistent with their existing JDK-21 probes; preserve the fail-closed production parser and the missing-minimum negative oracles. Restore formatter compliance for the two touched source-test files. Keep all routing, calls, identity, lazy reopen, failed cleanup, cancellation, timeout, retained-page and follow-up MCP assertions. Run every shared-harness consumer, related Ghidra source/boundary cases, static/discovery/documentation checks and complete remote coverage. Simulated installation/Java bridges do not establish real Ghidra engine behavior.

Additional same-root fixture confirmed by complete CI

Run 38354327059 shard 5 failed 25 PSP installed-extension/profile cases. The remaining positive host in ghidraPspExtension.test.ts declares Ghidra 12.1.3 with a JDK-21 probe, but omits the Java minimum. The earlier exact-12.1.4 search missed it. Preserve this intentionally different supported patch version and append minimum 21; preserve precise unsupported-target/ABI and before-extension-read assertions. Expanded repository-wide property-declaration inspection covers all versions, templates and parser references, distinguishing intentional missing-minimum cases.

Resolved on main

Main commit 18d56f5321c3c5d5be40c19bcb0a0f2b25c2d459 now contains the equivalent four-host Java declaration and formatter correction. Its relevant files are byte-identical to the repaired fixtures validated here. The expanded Ghidra selection passes 42 files / 583 cases with one named skip; intentional missing-minimum and all cleanup/PSP assertions remain. Closing completed on that main repair, without claiming a duplicate PR merge.

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/2629 Originally assigned to: @N0zoM1z0 on GitHub. ## Confirmed main regression At parent main `3ae826ceba6f25b08bce50bcb51001209bc16b57`, several positive Ghidra integration fixtures still expose only `application.version=12.1.4` through their installation host. Commit `2187e16f1` correctly changed installation admission to require the installation’s declared Java minimum instead of guessing JDK 21. The fixtures were not all updated, so intended routing/reopen/transport-continuation tests now fail before their expected provider behavior. ## Independent reproduction A clean, separate worktree at exact parent main (without PR #2511) with pinned Node 24.18.0 / npm 11.16.0 and fresh npm ci ran: ```sh npm run test:focused -- tests/boundary/mcp/ghidraRoutingMcp.test.ts tests/boundary/mcp/ghidraReopen.test.ts ``` All four cases failed. The three reopen cases fail at their first provider query; the routing case reports the capability as unavailable. In the broader 42-file incremental check, `analysisViewMcp` also failed its successive-source-page case because it received an admission error instead of the completed-result transport error carrying `reported_limits`. The same stale positive installation host also appears in `tests/boundary/providers/ghidra/ghidraJavaLaunch.test.ts`, where it is meant to reach actual child cancellation/timeout cleanup, not installation refusal. Existing explicitly named missing-minimum negative cases in GhidraInstallation and GhidraDoctor are intentional and must remain unchanged. ## Static gate regression from the same update Both local `check:ci` and remote run 38353628377 report formatter errors in GhidraDoctor.test.ts and GhidraSnapshotCache.test.ts. Normalize only these two touched files with the pinned formatter. A separate Windows native header download returned HTTP 502; that external failure is not evidence of a source defect and does not justify changing the downloader. ## Bounded repair and acceptance Declare `application.java.min=21` in the three positive fixture producers, consistent with their existing JDK-21 probes; preserve the fail-closed production parser and the missing-minimum negative oracles. Restore formatter compliance for the two touched source-test files. Keep all routing, calls, identity, lazy reopen, failed cleanup, cancellation, timeout, retained-page and follow-up MCP assertions. Run every shared-harness consumer, related Ghidra source/boundary cases, static/discovery/documentation checks and complete remote coverage. Simulated installation/Java bridges do not establish real Ghidra engine behavior. ## Additional same-root fixture confirmed by complete CI Run 38354327059 shard 5 failed 25 PSP installed-extension/profile cases. The remaining positive host in ghidraPspExtension.test.ts declares Ghidra 12.1.3 with a JDK-21 probe, but omits the Java minimum. The earlier exact-12.1.4 search missed it. Preserve this intentionally different supported patch version and append minimum 21; preserve precise unsupported-target/ABI and before-extension-read assertions. Expanded repository-wide property-declaration inspection covers all versions, templates and parser references, distinguishing intentional missing-minimum cases. ## Resolved on main Main commit `18d56f5321c3c5d5be40c19bcb0a0f2b25c2d459` now contains the equivalent four-host Java declaration and formatter correction. Its relevant files are byte-identical to the repaired fixtures validated here. The expanded Ghidra selection passes 42 files / 583 cases with one named skip; intentional missing-minimum and all cleanup/PSP assertions remain. Closing completed on that main repair, without claiming a duplicate PR merge.
bsakaguchi 2026-10-15 18:29:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#943
No description provided.