Files
CosmicClash/scripts/verify_multiplayer_local.sh
T

36 lines
1.4 KiB
Bash
Executable File

#!/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_kubernetes_policies.py"
python3 "$root_dir/server/security/test_supply_chain.py"
python3 "$root_dir/scripts/verify_observability_manifests.py"
echo "LOCAL MULTIPLAYER GATE PASS"