[PR #3299] [MERGED] test(ci): correct Rizin readiness and Hopper launcher fixtures #5711

Closed
opened 2026-10-31 01:08:51 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3299
Author: @N0zoM1z0
Created: 10/14/2026
Status: ✅ Merged
Merged: 10/14/2026
Merged by: @N0zoM1z0

Base: main ← Head: fix/rizin-stdin-fixture-order


📝 Commits (7)

  • 82f9b42 test(rizin): close fixture stdin before announcing readiness
  • 7a99912 Merge latest main to include the verified uninstall fixture corrections
  • f62632e test(javascript): assert wrapper ownership in the correct source mode
  • 7419553 test(hopper): provide controlled Linux loader evidence for doctor
  • d9e4e9a Integrate the independent main fixture prerequisites for validation
  • a89ce21 Merge latest main and retain the upstream wrapper ownership correction
  • c61c537 Merge verified upstream ownership fixes and the Hopper fixture prerequisite

📊 Changes

2 files changed (+30 additions, -3 deletions)

View changed files

📝 tests/boundary/cli/doctorHopperDiscovery.test.ts (+28 -2)
📝 tests/boundary/providers/RizinDebugSessionCoverage.part2.test.ts (+2 -1)

📄 Description

Post-merge correction: the Rizin stdin/readiness fix is intact in squash a32b4b6ac. Concurrent main commit 7435e79d6 changed the Hopper platform assertions before merge; Git combined them with our older loader fixture without a textual conflict, producing a failing Hopper test in the actual merge tree. Frozen-head CI did not validate that later combination. The earlier byte-identical Hopper claim was incorrect and has been withdrawn. Follow-up #3410 removes the obsolete loader setup and restores the pre-merge main platform contract; see its current evidence. No production runtime code changed in this PR.

Summary

Fixes #3295 and #3406. The real-child Rizin stdin-closure fixture announced readiness before closing stdin, so a parent write could legitimately succeed before the condition asserted by the test held. Close stdin before emitting the same NUL readiness frame.

Change and scope

The owned Rizin delta is one shell-command reorder and a comment. The real owned child, 500 ms command deadline, failure assertion, closed-session assertion and cleanup remain intact. No production code changes.

Current head c61c537dd integrates main ba33c706d and the unchanged Hopper fixture prerequisite #3410 (a89ce212d). That prerequisite has its own issue/branch/commit. The current qualified integration tree will merge both fixture fixes; #3410 will then close as incorporated, without claiming it was separately merged. Main's wrapper ownership producer correction dae1e5538 is retained, including its original positive assertions. Withdrawn JavaScript test-only changes are absent from the current tree.

This is an ordinary test correction within existing boundaries; a new capability scope decision is not applicable. Public CLI/MCP, evidence/provenance formats, generated metadata, packages and releases remain unchanged.

Evidence and validation

  • Observed on main 307af044: Stryker's real initial test run failed this assertion (expected true to be false). Full mutation and preflight-only modes execute the same initial-test path.
  • Outside Stryker, inserting a controlled sleep 0.2 between the original readiness and stdin closure reproduces the failure. Closing stdin before readiness passes the unchanged assertion. The temporary delay is absent from this PR.
  • Latest npm run test:focused -- with all five RizinDebugSessionCoverage.part*.test.ts files plus RizinCommandTimeout.test.ts and RizinTimeoutEvidence.test.ts — 7 files / 60 tests passed in 8.51 s on the current integrated tree.
  • Latest npm run check:ci — 8 tasks and architecture guards across 1,394 files passed. Normal pre-push checks passed.
  • git diff --check — passed.

Executed on Linux / Node 24.18.0 / npm 11.16.0 / Vitest 5.0.3. These are real owned shell children exercising the Rizin manager; they do not establish compatibility with an installed Rizin engine. The existing Windows skip remains intact.

Superseded hosted runs exposed independently reproduced main issues (uninstall fixture ownership and the wrapper static producer). Their failed evidence is retained. The current revision incorporates the corrections; no blind retry, assertion relaxation or full-mutation success is claimed from those failed attempts. Current-head hosted CI passed all required checks and both complete mutation passes. Its merged portable report verifies 1,273 unique files, 14,521 passing tests, 126 skipped and zero failures. Current Greptile review is 5/5 with no inline findings.

Author readiness

Human owner: @N0zoM1z0

AI-assisted preparation. The human owner explicitly confirmed review of this PR's diff and validation evidence, accepted responsibility, and dictated all three declarations on 2026-10-14.

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3299 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/14/2026 **Status:** ✅ Merged **Merged:** 10/14/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `fix/rizin-stdin-fixture-order` --- ### 📝 Commits (7) - [`82f9b42`](https://github.com/morluto/rea/commit/82f9b4299609f910cfdae76ec7f4c62a238246ab) test(rizin): close fixture stdin before announcing readiness - [`7a99912`](https://github.com/morluto/rea/commit/7a9991289cfe81732fa95f054035b035f1f00a8d) Merge latest main to include the verified uninstall fixture corrections - [`f62632e`](https://github.com/morluto/rea/commit/f62632e7a6f38ad9cbdc2e61d636768161dbaa7b) test(javascript): assert wrapper ownership in the correct source mode - [`7419553`](https://github.com/morluto/rea/commit/74195532be5582a7fe3ce5d6651f865113261c78) test(hopper): provide controlled Linux loader evidence for doctor - [`d9e4e9a`](https://github.com/morluto/rea/commit/d9e4e9ab3717a21725da266ba6fdbc76586e58f0) Integrate the independent main fixture prerequisites for validation - [`a89ce21`](https://github.com/morluto/rea/commit/a89ce212d6fe6a813f9160b2d4ea3f76deebd6c5) Merge latest main and retain the upstream wrapper ownership correction - [`c61c537`](https://github.com/morluto/rea/commit/c61c537dd600fcb30aa6a618b369928c2929c6c7) Merge verified upstream ownership fixes and the Hopper fixture prerequisite ### 📊 Changes **2 files changed** (+30 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `tests/boundary/cli/doctorHopperDiscovery.test.ts` (+28 -2) 📝 `tests/boundary/providers/RizinDebugSessionCoverage.part2.test.ts` (+2 -1) </details> ### 📄 Description > Post-merge correction: the Rizin stdin/readiness fix is intact in squash `a32b4b6ac`. Concurrent main commit `7435e79d6` changed the Hopper platform assertions before merge; Git combined them with our older loader fixture without a textual conflict, producing a failing Hopper test in the actual merge tree. Frozen-head CI did not validate that later combination. The earlier byte-identical Hopper claim was incorrect and has been withdrawn. Follow-up #3410 removes the obsolete loader setup and restores the pre-merge main platform contract; see its current evidence. No production runtime code changed in this PR. ## Summary Fixes #3295 and #3406. The real-child Rizin stdin-closure fixture announced readiness before closing stdin, so a parent write could legitimately succeed before the condition asserted by the test held. Close stdin before emitting the same NUL readiness frame. ## Change and scope The owned Rizin delta is one shell-command reorder and a comment. The real owned child, 500 ms command deadline, failure assertion, closed-session assertion and cleanup remain intact. No production code changes. Current head `c61c537dd` integrates main `ba33c706d` and the unchanged Hopper fixture prerequisite #3410 (`a89ce212d`). That prerequisite has its own issue/branch/commit. The current qualified integration tree will merge both fixture fixes; #3410 will then close as incorporated, without claiming it was separately merged. Main's wrapper ownership producer correction `dae1e5538` is retained, including its original positive assertions. Withdrawn JavaScript test-only changes are absent from the current tree. This is an ordinary test correction within existing boundaries; a new capability scope decision is not applicable. Public CLI/MCP, evidence/provenance formats, generated metadata, packages and releases remain unchanged. ## Evidence and validation - Observed on main `307af044`: Stryker's real initial test run failed this assertion (`expected true to be false`). Full mutation and preflight-only modes execute the same initial-test path. - Outside Stryker, inserting a controlled `sleep 0.2` between the original readiness and stdin closure reproduces the failure. Closing stdin before readiness passes the unchanged assertion. The temporary delay is absent from this PR. - Latest `npm run test:focused --` with all five `RizinDebugSessionCoverage.part*.test.ts` files plus `RizinCommandTimeout.test.ts` and `RizinTimeoutEvidence.test.ts` — **7 files / 60 tests passed** in 8.51 s on the current integrated tree. - Latest `npm run check:ci` — **8 tasks and architecture guards across 1,394 files passed**. Normal pre-push checks passed. - `git diff --check` — passed. Executed on Linux / Node 24.18.0 / npm 11.16.0 / Vitest 5.0.3. These are real owned shell children exercising the Rizin manager; they do not establish compatibility with an installed Rizin engine. The existing Windows skip remains intact. Superseded hosted runs exposed independently reproduced main issues (uninstall fixture ownership and the wrapper static producer). Their failed evidence is retained. The current revision incorporates the corrections; no blind retry, assertion relaxation or full-mutation success is claimed from those failed attempts. Current-head hosted CI passed all required checks and both complete mutation passes. Its merged portable report verifies 1,273 unique files, 14,521 passing tests, 126 skipped and zero failures. Current Greptile review is 5/5 with no inline findings. ## Author readiness Human owner: @N0zoM1z0 AI-assisted preparation. The human owner explicitly confirmed review of this PR's diff and validation evidence, accepted responsibility, and dictated all three declarations on 2026-10-14. - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:08:51 +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#5711
No description provided.