mirror of
https://github.com/obra/superpowers.git
synced 2026-06-13 14:19:05 +08:00
Fix companion lifecycle test ownership metadata
This commit is contained in:
@@ -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" ;;
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user