Skip to content

Commit ff4cc17

Browse files
committed
fix(tests): resolve the prod binary from CBM_TEST_BINARY, not a hardcoded 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>
1 parent eb3e571 commit ff4cc17

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

scripts/test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ CBM_TEST_BINARY="$WATCHDOG_BINARY" bash "$ROOT/tests/test_worker_watchdog.sh"
280280
# still exits nonzero for the user-facing tool error, but the supervisor must
281281
# preserve that response instead of misreporting exit_nonzero as a file crash.
282282
echo "=== Step 5c: worker error-response transport regression ==="
283-
bash "$ROOT/tests/test_worker_error_response.sh"
283+
CBM_TEST_BINARY="$WATCHDOG_BINARY" bash "$ROOT/tests/test_worker_error_response.sh"
284284

285285
# Step 5d (#1388) is DELIBERATELY NOT GATING HERE — see
286286
# tests/test_hook_conflict_notice.sh for the full what-was-tried record.

tests/test_hook_conflict_notice.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
set -euo pipefail
2525

2626
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
27-
BINARY="${ROOT}/build/c/codebase-memory-mcp"
27+
BINARY="${CBM_TEST_BINARY:-${ROOT}/build/c/codebase-memory-mcp}"
2828
if [[ ! -x "${BINARY}" && -x "${BINARY}.exe" ]]; then
2929
BINARY="${BINARY}.exe"
3030
fi

tests/test_worker_error_response.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
set -euo pipefail
77

88
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
9-
BINARY="${ROOT}/build/c/codebase-memory-mcp"
9+
# scripts/test.sh builds into $BUILD_DIR, which is NOT build/c on every leg (the
10+
# Linux containers use build/linux-arm64 / build/linux-amd64). Honour the binary
11+
# the caller built, exactly as test_parent_watchdog.sh and test_worker_watchdog.sh
12+
# do; the build/c default keeps a bare manual invocation working.
13+
BINARY="${CBM_TEST_BINARY:-${ROOT}/build/c/codebase-memory-mcp}"
1014
if [[ ! -x "${BINARY}" && -x "${BINARY}.exe" ]]; then
1115
BINARY="${BINARY}.exe"
1216
fi

0 commit comments

Comments
 (0)