The procedural server cascade (Phase 4) and the frozen names-only pool supersede the Python atlas geometry generator and the LLM namer. Retire: - generate_atlas.py (geometry production — cities/roads/rivers placement) - gemma_naming.py, naming_core.py + tests (test_batch_naming, test_register_selection, qa_naming) and run-atlas-naming.sh (the LLM place-namer; its output is now the frozen pool) - apply_name_fixes.py (name-field patches), fix_fewshot_bleed.py / prune_atlas_features.py (geometry tools) - import_city_names.py (redundant with import_economics name-pool path) Pipeline updates: drop the generate_atlas step + atlas-generate / test-atlas-determinism targets from the Makefile; remove generate_atlas from the stamp registry (import_economics is the sole regen-db generator); drop run-atlas-determinism from tests/run-all; refresh stale references in schema_version, backfill_cultural_corridor, earth_blocklist (kept as reference data), populate_terrain_reference, and heightmap.rs. The Gemma prompting methodology is preserved in docs/gemma-naming-methodology.md (separate commit). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
80 lines
2.2 KiB
Bash
Executable File
80 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# tests/run-all: Run all test suites in order (D-030)
|
|
# Invokes run-rust, run-godot, run-ipc-fixtures, run-ipc-protocol,
|
|
# run-ipc-integration, run-visual.
|
|
# Exit: 0 = all suites pass, non-zero = any suite failed
|
|
# Stdout: {"suite":"all","total":N,"passed":N,"failed":N,"duration_ms":N,"suites":[...]}
|
|
set -euo pipefail
|
|
|
|
FILTER=""
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--filter) FILTER="${2:-}"; shift 2 ;;
|
|
--filter=*) FILTER="${1#--filter=}"; shift ;;
|
|
*) echo "Unknown argument: $1" >&2; exit 2 ;;
|
|
esac
|
|
done
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
PASS_ARGS=()
|
|
[[ -n "$FILTER" ]] && PASS_ARGS+=(--filter "$FILTER")
|
|
|
|
SUITES=(
|
|
run-rust
|
|
run-godot
|
|
run-ipc-fixtures
|
|
run-ipc-protocol
|
|
run-ipc-integration
|
|
run-visual
|
|
)
|
|
|
|
START_MS=$(date +%s%3N)
|
|
|
|
OVERALL_TOTAL=0
|
|
OVERALL_PASSED=0
|
|
OVERALL_FAILED=0
|
|
OVERALL_EXIT=0
|
|
SUITE_RESULTS=""
|
|
|
|
for suite in "${SUITES[@]}"; do
|
|
script="$SCRIPT_DIR/$suite"
|
|
if [[ ! -x "$script" ]]; then
|
|
echo "Warning: $script not found or not executable — skipping" >&2
|
|
continue
|
|
fi
|
|
|
|
SUITE_OUT=$(mktemp)
|
|
set +e
|
|
"$script" "${PASS_ARGS[@]}" >"$SUITE_OUT"
|
|
SUITE_EXIT=$?
|
|
set -e
|
|
|
|
SUITE_JSON=$(cat "$SUITE_OUT")
|
|
rm -f "$SUITE_OUT"
|
|
|
|
# Accumulate totals from the suite's JSON output
|
|
S_TOTAL=$(echo "$SUITE_JSON" | grep -oE '"total":[0-9]+' | grep -oE '[0-9]+' || echo 0)
|
|
S_PASSED=$(echo "$SUITE_JSON" | grep -oE '"passed":[0-9]+' | grep -oE '[0-9]+' || echo 0)
|
|
S_FAILED=$(echo "$SUITE_JSON" | grep -oE '"failed":[0-9]+' | grep -oE '[0-9]+' || echo 0)
|
|
|
|
OVERALL_TOTAL=$(( OVERALL_TOTAL + ${S_TOTAL:-0} ))
|
|
OVERALL_PASSED=$(( OVERALL_PASSED + ${S_PASSED:-0} ))
|
|
OVERALL_FAILED=$(( OVERALL_FAILED + ${S_FAILED:-0} ))
|
|
[[ $SUITE_EXIT -ne 0 ]] && OVERALL_EXIT=1
|
|
|
|
# Build suites array for JSON
|
|
if [[ -n "$SUITE_RESULTS" ]]; then
|
|
SUITE_RESULTS="$SUITE_RESULTS,$SUITE_JSON"
|
|
else
|
|
SUITE_RESULTS="$SUITE_JSON"
|
|
fi
|
|
done
|
|
|
|
END_MS=$(date +%s%3N)
|
|
DURATION_MS=$((END_MS - START_MS))
|
|
|
|
printf '{"suite":"all","total":%d,"passed":%d,"failed":%d,"duration_ms":%d,"suites":[%s]}\n' \
|
|
"$OVERALL_TOTAL" "$OVERALL_PASSED" "$OVERALL_FAILED" "$DURATION_MS" "$SUITE_RESULTS"
|
|
exit $OVERALL_EXIT
|