From 5eea0d09d794fc08646eee7e2e1215dea148cfbd Mon Sep 17 00:00:00 2001 From: Drew Ritter Date: Wed, 10 Jun 2026 19:12:17 -0700 Subject: [PATCH] Fix companion lifecycle test ownership metadata --- tests/brainstorm-server/stop-server.test.sh | 11 +++++++++++ tests/brainstorm-server/windows-lifecycle.test.sh | 13 +++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/brainstorm-server/stop-server.test.sh b/tests/brainstorm-server/stop-server.test.sh index 66683b50..9362ab1f 100755 --- a/tests/brainstorm-server/stop-server.test.sh +++ b/tests/brainstorm-server/stop-server.test.sh @@ -27,6 +27,15 @@ trap cleanup EXIT track_dir() { DIRS+=("$1"); } track_pid() { PIDS+=("$1"); } +untrack_pid() { + local remove="$1" + local kept=() + local pid + for pid in "${PIDS[@]}"; do + [[ "$pid" == "$remove" ]] || kept+=("$pid") + done + PIDS=("${kept[@]}") +} new_server_id() { printf 'testid%026d\n' "$RANDOM" } @@ -67,6 +76,8 @@ sleep 0.3 if kill -0 "$SRV" 2>/dev/null; then bad "real brainstorm server still running after stop" "$OUT" else + wait "$SRV" 2>/dev/null || true + untrack_pid "$SRV" case "$OUT" in *stopped*) ok "real brainstorm server with matching instance id is stopped" ;; *) bad "server stopped but status was not 'stopped'" "$OUT" ;; diff --git a/tests/brainstorm-server/windows-lifecycle.test.sh b/tests/brainstorm-server/windows-lifecycle.test.sh index d178a755..0bdb710f 100755 --- a/tests/brainstorm-server/windows-lifecycle.test.sh +++ b/tests/brainstorm-server/windows-lifecycle.test.sh @@ -335,14 +335,17 @@ echo "" echo "--- Clean Shutdown ---" mkdir -p "$TEST_DIR/stop-test/state" +STOP_TEST_ID="$(printf 'windowsstop%021d\n' "$RANDOM")" +printf '%s\n' "$STOP_TEST_ID" > "$TEST_DIR/stop-test/state/server-instance-id" BRAINSTORM_DIR="$TEST_DIR/stop-test" \ BRAINSTORM_HOST="127.0.0.1" \ BRAINSTORM_URL_HOST="localhost" \ BRAINSTORM_OWNER_PID="" \ BRAINSTORM_PORT=$((49152 + RANDOM % 16383)) \ - node "$SERVER_SCRIPT" > "$TEST_DIR/stop-test/.server.log" 2>&1 & + node "$SERVER_SCRIPT" "--brainstorm-server-id=$STOP_TEST_ID" > "$TEST_DIR/stop-test/.server.log" 2>&1 & STOP_TEST_PID=$! +disown "$STOP_TEST_PID" 2>/dev/null || true echo "$STOP_TEST_PID" > "$TEST_DIR/stop-test/state/server.pid" if ! wait_for_server_info "$TEST_DIR/stop-test"; then @@ -351,7 +354,13 @@ if ! wait_for_server_info "$TEST_DIR/stop-test"; then STOP_TEST_PID="" else bash "$STOP_SCRIPT" "$TEST_DIR/stop-test" >/dev/null 2>&1 || true - sleep 1 + for _ in $(seq 1 10); do + if ! kill -0 "$STOP_TEST_PID" 2>/dev/null; then + wait "$STOP_TEST_PID" 2>/dev/null || true + break + fi + sleep 0.1 + done if ! kill -0 "$STOP_TEST_PID" 2>/dev/null; then pass "stop-server.sh cleanly stops the server"