test(ops): support legacy Python HTTP server

This commit is contained in:
lingniu
2026-07-16 01:55:21 +08:00
parent f38b630592
commit 986375d903

View File

@@ -24,12 +24,26 @@ printf 'old.js\n' > "$fixture/previous-assets"
cp -R "$fixture/web" "$fixture/served" cp -R "$fixture/web" "$fixture/served"
port=$(python3 -c 'import socket; s=socket.socket(); s.bind(("127.0.0.1", 0)); print(s.getsockname()[1]); s.close()') port=$(python3 -c 'import socket; s=socket.socket(); s.bind(("127.0.0.1", 0)); print(s.getsockname()[1]); s.close()')
python3 -m http.server "$port" --bind 127.0.0.1 --directory "$fixture/served" > "$fixture/server.log" 2>&1 & (cd "$fixture/served" && exec python3 -m http.server "$port" --bind 127.0.0.1) > "$fixture/server.log" 2>&1 &
server_pid=$! server_pid=$!
server_ready=false
for _ in $(seq 1 30); do for _ in $(seq 1 30); do
if curl --silent --fail "http://127.0.0.1:$port/" >/dev/null; then break; fi if curl --silent --fail "http://127.0.0.1:$port/" >/dev/null 2>&1; then
server_ready=true
break
fi
if ! kill -0 "$server_pid" 2>/dev/null; then
cat "$fixture/server.log" >&2
printf 'fixture HTTP server exited before becoming ready\n' >&2
exit 1
fi
sleep 0.1 sleep 0.1
done done
if test "$server_ready" != true; then
cat "$fixture/server.log" >&2
printf 'fixture HTTP server did not become ready\n' >&2
exit 1
fi
success_output=$("$SCRIPT_DIR/verify-web-release.sh" "$fixture/web" "http://127.0.0.1:$port" "$fixture/previous-assets") success_output=$("$SCRIPT_DIR/verify-web-release.sh" "$fixture/web" "http://127.0.0.1:$port" "$fixture/previous-assets")
test "$success_output" = 'web_release_smoke=ok current_assets=1 compatibility_assets=1' test "$success_output" = 'web_release_smoke=ok current_assets=1 compatibility_assets=1'