#!/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: Go race and vet" (cd "$root_dir/server" && go test -race ./...) (cd "$root_dir/server" && go vet ./...) echo "local multiplayer gate: bounded fuzz targets" (cd "$root_dir/server" && go test ./domain -fuzz FuzzQueueCreateDoesNotPanic -fuzztime=2s) (cd "$root_dir/server" && go test ./domain -fuzz FuzzResultDigestIsDeterministic -fuzztime=2s) (cd "$root_dir/server" && go test ./domain -fuzz FuzzSyncEventApplicationDoesNotPanic -fuzztime=2s) 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_compose_manifests.py" python3 "$root_dir/server/security/test_kubernetes_policies.py" python3 "$root_dir/server/security/test_supply_chain.py" python3 "$root_dir/scripts/verify_observability_manifests.py" python3 -m unittest "$root_dir/scripts/test_verify_agones_allocation_response.py" echo "LOCAL MULTIPLAYER GATE PASS"