Fix companion lifecycle test ownership metadata

This commit is contained in:
Drew Ritter
2026-06-10 19:12:17 -07:00
committed by Drew Ritter
parent a6a4cd85b9
commit 5eea0d09d7
2 changed files with 22 additions and 2 deletions

View File

@@ -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" ;;

View File

@@ -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"