Skip to content

finding(scripts): three more scripts/__tests__ files are host-dependent on macOS — bash32-floor-wiring (self-test spawn), check-control-bytes (BSD grep prints Binary file … matches), ensure-chromium-ready (timeout missing) — same class as #8361 #8404

Description

@hotlong

Observation

Running the repository-level suite on a stock macOS host (pnpm exec vitest run scripts/__tests__/, tree = objectui PR #8360 head 21b1bf51f, all three files byte-identical to origin/main) gives Test Files 3 failed | 117 passed (120), Tests 4 failed | 3571 passed (3575). None of the four assertions reads anything that PR touches; each cites a host command or host behaviour. CI (Linux) is green on the same bytes: run 34143666942 on that head, all four test shards success.

file assertion host signature
scripts/__tests__/bash32-floor-wiring.test.ts "its self-test passes — the half that makes a green scan mean something" node scripts/check-bash32-floor.mjs --self-test exits non-zero on the host bash (GNU bash 3.2.57(1)-release (arm64-apple-darwin25)) with bash: line 1: syntax error near unexpected token for a brace, an ampersand and a redirect — the self-test's spawned probe shell does not parse on the very bash version the gate floors to
scripts/__tests__/check-control-bytes.test.ts "the refusal this asserts against is a refusal grep really makes … and print no line at all" BSD grep prints Binary file /var/folders/… matches where GNU grep prints nothing; the assertion expects an empty string
scripts/__tests__/ensure-chromium-ready.test.ts (2 assertions) "installs the system libraries and succeeds once Chromium launches"; "terminates well inside the job ceiling when the dependency install never returns" scripts/ensure-chromium-ready.sh: line 87: timeout: command not found — coreutils timeout is absent on macOS, so the objectui#5304 signature is never printed

Same class as #8361 (git grep -E has no \b under BSD regex): tests whose fixtures shell out to the host and assume GNU userland. #8361 covered one file in packages/types; this card covers the three in scripts/__tests__. Between them, a macOS run of pnpm test has four known-red files that are not defects in the tree. Dedup read before filing: #7692 (closed) is about the absence of a bash-version floor gate, not about these tests reading red on macOS; the other Binary file hits are dashboard cards and the ECONNREFUSED test-infra card.

Options (not a ruling — filed for triage)

  • A. Skip-with-reason on the host: each test already has a precise precondition (a GNU timeout, a GNU grep, a bash the probe parses under); it.skipIf(...) with a message naming the missing tool turns a misleading red into a stated narrowing. CI stays the judge.
  • B. Make the fixtures portable: a gtimeout fallback, --binary-files=without-match (or -q) for the binary case, a probe shell the bash-3.2 floor gate's own self-test accepts.
  • C. Leave it and document in AGENTS.md §怎么跑测试 that scripts/__tests__ is Linux-only locally. Cheapest; every macOS seat pays the diagnosis once.

Observation-class finding (finding label, no pm:queue): nothing ships wrong and the CI verdict is correct; the cost is local diagnosis time on macOS.

Filed from Claude Code session session_f95e3874-e532-4748-a921-044aa2752a2b while working objectui#8225 (PR #8360, patch round 1).


Blocked-by: #8493

⚠️ Added by the domain:devx @ objectui execution seat, 2026-09-08T07:15Z. The work is complete and PR #8511 is green on its own branch; it was removed from the merge queue twice (2026-09-08T04:48:06Z and 2026-09-08T06:47:15Z) by Test (shard 2/4) failing on packages/plugin-kanban/src/ObjectKanban.contractEnvelope-6839.test.tsx:134 — the case tracked by objectui#8493, which first failed at 01:09:52Z on an unrelated comments-only PR, ⛔ before this branch was ever queued. ⇒ This is the state-model's work finished, PR held by an external gate case, ⛔ not unfinished work. Per the commitment written on PR #8511, there is ⛔ no third re-queue; the escalation is recorded on objectui#8493 (5580826266).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repofindingpriority:p3tooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions