mirror of
https://github.com/obra/superpowers.git
synced 2026-06-15 23:29:04 +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_dir() { DIRS+=("$1"); }
|
||||||
track_pid() { PIDS+=("$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() {
|
new_server_id() {
|
||||||
printf 'testid%026d\n' "$RANDOM"
|
printf 'testid%026d\n' "$RANDOM"
|
||||||
}
|
}
|
||||||
@@ -67,6 +76,8 @@ sleep 0.3
|
|||||||
if kill -0 "$SRV" 2>/dev/null; then
|
if kill -0 "$SRV" 2>/dev/null; then
|
||||||
bad "real brainstorm server still running after stop" "$OUT"
|
bad "real brainstorm server still running after stop" "$OUT"
|
||||||
else
|
else
|
||||||
|
wait "$SRV" 2>/dev/null || true
|
||||||
|
untrack_pid "$SRV"
|
||||||
case "$OUT" in
|
case "$OUT" in
|
||||||
*stopped*) ok "real brainstorm server with matching instance id is stopped" ;;
|
*stopped*) ok "real brainstorm server with matching instance id is stopped" ;;
|
||||||
*) bad "server stopped but status was not 'stopped'" "$OUT" ;;
|
*) bad "server stopped but status was not 'stopped'" "$OUT" ;;
|
||||||
|
|||||||
@@ -335,14 +335,17 @@ echo ""
|
|||||||
echo "--- Clean Shutdown ---"
|
echo "--- Clean Shutdown ---"
|
||||||
|
|
||||||
mkdir -p "$TEST_DIR/stop-test/state"
|
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_DIR="$TEST_DIR/stop-test" \
|
||||||
BRAINSTORM_HOST="127.0.0.1" \
|
BRAINSTORM_HOST="127.0.0.1" \
|
||||||
BRAINSTORM_URL_HOST="localhost" \
|
BRAINSTORM_URL_HOST="localhost" \
|
||||||
BRAINSTORM_OWNER_PID="" \
|
BRAINSTORM_OWNER_PID="" \
|
||||||
BRAINSTORM_PORT=$((49152 + RANDOM % 16383)) \
|
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=$!
|
STOP_TEST_PID=$!
|
||||||
|
disown "$STOP_TEST_PID" 2>/dev/null || true
|
||||||
echo "$STOP_TEST_PID" > "$TEST_DIR/stop-test/state/server.pid"
|
echo "$STOP_TEST_PID" > "$TEST_DIR/stop-test/state/server.pid"
|
||||||
|
|
||||||
if ! wait_for_server_info "$TEST_DIR/stop-test"; then
|
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=""
|
STOP_TEST_PID=""
|
||||||
else
|
else
|
||||||
bash "$STOP_SCRIPT" "$TEST_DIR/stop-test" >/dev/null 2>&1 || true
|
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
|
if ! kill -0 "$STOP_TEST_PID" 2>/dev/null; then
|
||||||
pass "stop-server.sh cleanly stops the server"
|
pass "stop-server.sh cleanly stops the server"
|
||||||
|
|||||||
Reference in New Issue
Block a user