mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
test(multiplayer): add consolidated local gate
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
.PHONY: verify-phase6 verify-enet-integration verify-steam-templates verify-supply-chain
|
||||
.PHONY: verify-phase6 verify-enet-integration verify-steam-templates verify-supply-chain verify-multiplayer-local
|
||||
|
||||
verify-multiplayer-local:
|
||||
bash scripts/verify_multiplayer_local.sh
|
||||
|
||||
verify-phase6:
|
||||
bash scripts/verify_phase6.sh
|
||||
|
||||
@@ -1444,3 +1444,5 @@ The Godot control-plane client now retains the exact last idempotent mutation an
|
||||
The matchmaking UI now exposes that retained replay through its existing action button as `Retry Request` while a heartbeat, cancellation, or proposal action has a retryable failure. Terminal, authentication, and revision-conflict paths remain ineligible, so the button cannot issue a stale blind command.
|
||||
|
||||
The control plane now exports bounded Prometheus-compatible API request counters and latency summaries at `GET /metrics`, with fixed operation/status labels and no event-stream wrapping. Production and testkit services wire the collector; adversarial tests verify unknown paths cannot inject label cardinality or leak URL secrets, and full Go/race/vet checks pass. Durable SLO dashboards and alert routing remain operational work.
|
||||
|
||||
`make verify-multiplayer-local` now provides one cloud-free regression gate for the current implementation: the complete Go suite, the Godot harness, OpenAPI parsing, and the migration/Fleet/Kubernetes/supply-chain checks. It fails clearly when the configured Godot executable is unavailable and does not weaken or replace the existing Phase 6/ENet gates; PostgreSQL, Redis, Steam, Agones, and multi-process Internet gates remain separate.
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
godot_bin="${GODOT_BIN:-/Applications/Godot.app/Contents/MacOS/Godot}"
|
||||
|
||||
if [[ ! -x "$godot_bin" ]]; then
|
||||
echo "local multiplayer gate: Godot executable not found: $godot_bin" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "local multiplayer gate: Go tests"
|
||||
(cd "$root_dir/server" && go test ./...)
|
||||
|
||||
echo "local multiplayer gate: Godot harness"
|
||||
"$godot_bin" --headless --path "$root_dir/Game" res://tests/test_runner.tscn
|
||||
|
||||
echo "local multiplayer gate: contracts and manifests"
|
||||
python3 -m json.tool "$root_dir/server/contracts/v1/openapi.json" >/dev/null
|
||||
python3 "$root_dir/server/migrations/test_migration.py"
|
||||
python3 "$root_dir/server/security/test_fleet_manifests.py"
|
||||
python3 "$root_dir/server/security/test_kubernetes_policies.py"
|
||||
python3 "$root_dir/server/security/test_supply_chain.py"
|
||||
|
||||
echo "LOCAL MULTIPLAYER GATE PASS"
|
||||
Reference in New Issue
Block a user