Skip to content

fix(tests): resolve the prod binary from CBM_TEST_BINARY, not a hardcoded build/c - #1463

Merged
DeusData merged 1 commit into
mainfrom
fix/test-binary-builddir
Aug 5, 2026
Merged

fix(tests): resolve the prod binary from CBM_TEST_BINARY, not a hardcoded build/c#1463
DeusData merged 1 commit into
mainfrom
fix/test-binary-builddir

Conversation

@DeusData

@DeusData DeusData commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Found by the local 3-OS ladder while gating the 0.9.1-rc.2 fix set.

Symptom

The Linux arm64 leg (./test-infrastructure/run.sh test) fails:

=== Step 5c: worker error-response transport regression ===
missing binary: /src/build/c/codebase-memory-mcp

Cause

The container legs build into build/linux-arm64 / build/linux-amd64; only build/c is the default. Steps 5 and 5b already hand their scripts CBM_TEST_BINARY="$ROOT/$BUILD_DIR/codebase-memory-mcp", but Step 5c does not, and tests/test_worker_error_response.sh (from #1369) hardcodes build/c.

CI could never catch this — every CI leg runs with the default BUILD_DIR=build/c. The container legs are the only place the paths diverge, which is exactly what the local ladder is for.

Fix

  • test_worker_error_response.sh honours ${CBM_TEST_BINARY:-…/build/c/…}, matching its sibling watchdog tests; the fallback keeps a bare manual invocation working.
  • scripts/test.sh passes CBM_TEST_BINARY to Step 5c, consistent with 5 and 5b.
  • test_hook_conflict_notice.sh had the identical hardcoding (local-only today) and is fixed the same way.

Verification

With the fix, the test passes against an out-of-tree binary; reverting it reproduces the ladder's exact failure (rc=2, missing binary: <worktree>/build/c/codebase-memory-mcp). Full Linux leg re-run is in progress.

…oded build/c

The Linux legs of the local 3-OS ladder build into build/linux-arm64 /
build/linux-amd64, not build/c, so Step 5c died with
'missing binary: /src/build/c/codebase-memory-mcp' and took the whole
leg down. Steps 5 and 5b already pass CBM_TEST_BINARY (derived from
$BUILD_DIR) to their scripts; 5c did not, and its test hardcoded the
path.

CI never caught this because every CI leg uses the default BUILD_DIR of
build/c - the container legs are the only ones that differ, which is
precisely what the local ladder is for.

- test_worker_error_response.sh honours ${CBM_TEST_BINARY:-build/c/...}
  like its sibling watchdog tests; the default keeps bare manual runs working
- scripts/test.sh passes CBM_TEST_BINARY to Step 5c, matching 5 and 5b
- test_hook_conflict_notice.sh carried the identical hardcoding and is
  fixed the same way (local-only today, but wrong is wrong)

Verified: with the fix the test passes against an out-of-tree binary;
reverting the fix reproduces the ladder's exact failure (rc=2,
'missing binary: <worktree>/build/c/codebase-memory-mcp').

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData enabled auto-merge August 5, 2026 22:33
@DeusData
DeusData merged commit 9b9b6ff into main Aug 5, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant