[PR #6570] [MERGED] fix(tests): stabilize process fixtures and malformed input coverage #7379

Closed
opened 2026-11-01 21:47:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/6570
Author: @gensokyo-dev
Created: 10/23/2026
Status: ✅ Merged
Merged: 10/23/2026
Merged by: @gensokyo-dev

Base: main ← Head: fix/ci-coreutils-portability-6556


📝 Commits (6)

  • 07b07ca fix(tests): remove host coreutils assumptions from fixtures
  • 72e4c20 fix(tests): align portable fixtures with current main
  • c2e59bd fix(tests): bound retained child lifetimes on current main
  • 7f3771d fix(tests): use malformed Inspector exclusion input
  • c152c96 fix(tests): model the selected ADB destination as a file
  • 6b8099d fix(tests): integrate current main fixture contracts

📊 Changes

6 files changed (+88 additions, -51 deletions)

View changed files

📝 tests/boundary/browser/cdpScriptMetadata.test.ts (+4 -4)
📝 tests/boundary/go/goBinaryImage.test.ts (+3 -0)
📝 tests/boundary/process/cleanLinuxHopperRuntime.test.ts (+29 -23)
📝 tests/boundary/providers/adb/adbInputSnapshotOwnership.test.ts (+24 -6)
➕ tests/fixtures/retainedRuntimeNode.ts (+16 -0)
📝 tests/process-global/cleanLinuxHopperRuntime.test.ts (+12 -18)

📄 Description

Portable CI fails when a renamed host sleep is a multicall binary, readiness is consumed before its complete line, or negative fixtures supply facts that current main correctly accepts. Fixes #6556; follows #6480 and unblocks #6316.

  • Share an owned Node copy, preserve alternate-executable/removed-symlink identity, and wait for IPC readiness. Retain a 30-second lifetime backstop when PID handoff fails. Frame Python readiness/PID/JSON as complete lines.
  • Give the Inspector exclusion fixture an actually invalid numeric script ID. Bind ADB request/probe/push/hash facts to one selected file and reject unmodeled commands; distinguish clean false test -d from true test -e. Preserve cancellation, cleanup, receipts and completeness assertions.
  • Integrate main 3ed9f4b7e. Adopt main's firmware producer and Go MZ/amd64p32 fixture corrections without duplicate implementations. Retain a distinct truncated-COFF negative control in the direct image test.

Only tests/fixtures change; production behavior and provider authority are unaffected.

Executed validation, Node 24.22.1 / npm 11.16.0, bounded concurrency:

  • 219 passed on integrated main across Go image/P32/provider/CLI/MCP, MZ/PE, Inspector script metadata and ADB snapshot ownership. After final ADB command/path matching, all 16 snapshot cases passed again.
  • 76 passed on Ubuntu 26.04, covering firmware/MCP/deadlines and real Unix process lifetimes. Read-only source/dependencies, network disabled, one CPU, 2 GiB, Ubuntu Python 3.14.4/procps 4.0.4. Runtime fixture sources match the tested snapshot.
  • Real detached renamed Node, IPC disconnected and owner termination omitted: exited itself after 30.115 s. Barrier-controlled Python probe confirms premature chunk-close failure. Disabling executable identity fails alternate-launcher cases.
  • Earlier broader checks: 163 ADB and 52 Inspector cases passed. Compiled CLI inspection of SRI-authenticated published 6.7.0 PE bytes confirmed valid carrier / unresolved signature / malformed COFF behavior. Actual Binwalk/Unblob/Hopper, Android devices and real Go compilers are unverified.
  • Final npm run check: 6 tasks plus architecture guards passed. Discovery: 2,122 files, each once.

Completed tasks, fresh processes with warm installed dependencies/filesystem and partly cached preparation:

Task Elapsed CPU Memory peak
Integrated 219 cases, including preparation 145.373 s 131.982 s 1,954.1 MiB sampled family RSS
Ubuntu 26, 76 cases 94.604 s 90.134 s 1,109.8 MiB cgroup

Cgroup includes page cache and excludes Docker/image preparation; RSS can double-count shared pages or miss short-lived children. No speedup claim. Cold-cache, tokens and CI-wide costs are unmeasured.

Baseline failures are retained in #6556. One earlier local 7-file aggregate hit a 30-second MCP schema timeout (98 passed); later focused runs and hosted Go MCP passed with unchanged timeouts. Full current-head CI is tracked separately.

Author readiness

Human owner: @gensokyo-dev

Ready submission and merge are explicitly authorized by the maintainer in this session. Personal human-review attestations are left for their author.

  • 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/6570 **Author:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Created:** 10/23/2026 **Status:** ✅ Merged **Merged:** 10/23/2026 **Merged by:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Base:** `main` ← **Head:** `fix/ci-coreutils-portability-6556` --- ### 📝 Commits (6) - [`07b07ca`](https://github.com/morluto/rea/commit/07b07ca0067cbf15668265c74889e6c3d9bba848) fix(tests): remove host coreutils assumptions from fixtures - [`72e4c20`](https://github.com/morluto/rea/commit/72e4c20b6ba426dce3045dba7205762937c3cceb) fix(tests): align portable fixtures with current main - [`c2e59bd`](https://github.com/morluto/rea/commit/c2e59bd537b11ca5e329f4eb5bf0a947b7d7577c) fix(tests): bound retained child lifetimes on current main - [`7f3771d`](https://github.com/morluto/rea/commit/7f3771d568a65c5b2f3033ce342cd3bb884f28db) fix(tests): use malformed Inspector exclusion input - [`c152c96`](https://github.com/morluto/rea/commit/c152c961e0afb2499bc6178953cebf29675705d2) fix(tests): model the selected ADB destination as a file - [`6b8099d`](https://github.com/morluto/rea/commit/6b8099dc3fd17fbf37cd6ae2051d8a6557a0a1d0) fix(tests): integrate current main fixture contracts ### 📊 Changes **6 files changed** (+88 additions, -51 deletions) <details> <summary>View changed files</summary> 📝 `tests/boundary/browser/cdpScriptMetadata.test.ts` (+4 -4) 📝 `tests/boundary/go/goBinaryImage.test.ts` (+3 -0) 📝 `tests/boundary/process/cleanLinuxHopperRuntime.test.ts` (+29 -23) 📝 `tests/boundary/providers/adb/adbInputSnapshotOwnership.test.ts` (+24 -6) ➕ `tests/fixtures/retainedRuntimeNode.ts` (+16 -0) 📝 `tests/process-global/cleanLinuxHopperRuntime.test.ts` (+12 -18) </details> ### 📄 Description Portable CI fails when a renamed host `sleep` is a multicall binary, readiness is consumed before its complete line, or negative fixtures supply facts that current main correctly accepts. Fixes #6556; follows #6480 and unblocks #6316. - Share an owned Node copy, preserve alternate-executable/removed-symlink identity, and wait for IPC readiness. Retain a 30-second lifetime backstop when PID handoff fails. Frame Python readiness/PID/JSON as complete lines. - Give the Inspector exclusion fixture an actually invalid numeric script ID. Bind ADB request/probe/push/hash facts to one selected file and reject unmodeled commands; distinguish clean false `test -d` from true `test -e`. Preserve cancellation, cleanup, receipts and completeness assertions. - Integrate main `3ed9f4b7e`. Adopt main's firmware producer and Go MZ/amd64p32 fixture corrections without duplicate implementations. Retain a distinct truncated-COFF negative control in the direct image test. Only tests/fixtures change; production behavior and provider authority are unaffected. Executed validation, Node 24.22.1 / npm 11.16.0, bounded concurrency: - **219 passed** on integrated main across Go image/P32/provider/CLI/MCP, MZ/PE, Inspector script metadata and ADB snapshot ownership. After final ADB command/path matching, **all 16 snapshot cases passed again**. - **76 passed on Ubuntu 26.04**, covering firmware/MCP/deadlines and real Unix process lifetimes. Read-only source/dependencies, network disabled, one CPU, 2 GiB, Ubuntu Python 3.14.4/procps 4.0.4. Runtime fixture sources match the tested snapshot. - Real detached renamed Node, IPC disconnected and owner termination omitted: exited itself after **30.115 s**. Barrier-controlled Python probe confirms premature chunk-close failure. Disabling executable identity fails alternate-launcher cases. - Earlier broader checks: 163 ADB and 52 Inspector cases passed. Compiled CLI inspection of SRI-authenticated published 6.7.0 PE bytes confirmed valid carrier / unresolved signature / malformed COFF behavior. Actual Binwalk/Unblob/Hopper, Android devices and real Go compilers are unverified. - Final `npm run check`: 6 tasks plus architecture guards passed. Discovery: **2,122 files, each once**. Completed tasks, fresh processes with warm installed dependencies/filesystem and partly cached preparation: | Task | Elapsed | CPU | Memory peak | | --- | ---: | ---: | ---: | | Integrated 219 cases, including preparation | 145.373 s | 131.982 s | 1,954.1 MiB sampled family RSS | | Ubuntu 26, 76 cases | 94.604 s | 90.134 s | 1,109.8 MiB cgroup | Cgroup includes page cache and excludes Docker/image preparation; RSS can double-count shared pages or miss short-lived children. No speedup claim. Cold-cache, tokens and CI-wide costs are unmeasured. Baseline failures are retained in #6556. One earlier local 7-file aggregate hit a 30-second MCP schema timeout (98 passed); later focused runs and hosted Go MCP passed with unchanged timeouts. Full current-head CI is tracked separately. ## Author readiness Human owner: @gensokyo-dev Ready submission and merge are explicitly authorized by the maintainer in this session. Personal human-review attestations are left for their author. - [ ] 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. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-11-01 21:47:25 +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#7379
No description provided.