Files
mtgodot-poc/script/rendering_batch_test.sh
T

35 lines
2.2 KiB
Bash

#!/usr/bin/env bash
# Repeatable, non-network regression sweep; logs retain failures and warnings.
set -uo pipefail
cd "$(dirname "$0")/.."
run_dir="$(pwd)/build/rendering/batch-$(date +%Y%m%d-%H%M%S)-$$"
mkdir -p "$run_dir"
failed=0
run_test() {
local mode="$1" test_script="$2" log="$run_dir/$1-${2%.gd}.log"
local options=(--path project)
if [ "$mode" = headless ]; then options+=(--headless); fi
"${GODOT:-godot}" "${options[@]}" --script "$test_script" --quit-after 1800 >"$log" 2>&1
local status=$?
if [ "$status" -ne 0 ] || rg -q 'SCRIPT ERROR|Parse Error|^FAIL:|check\(s\) failed' "$log" || ! rg -q 'PASS|failures=0' "$log"; then
echo "FAIL $mode $test_script (exit=$status): $log"
failed=$((failed + 1))
else
echo "PASS $mode $test_script"
fi
if rg -q 'leaked at exit' "$log"; then echo "WARN resource leak: $log"; fi
}
for test_script in animation_cache_test.gd target_effect_test.gd effect_space_test.gd effect_faces_test.gd motion_effect_anchor_test.gd mob_winding_test.gd water_reference_test.gd effect_texture_animation_test.gd dds_lifecycle_test.gd effect_color_operation_test.gd effect_color_test.gd effect_scale_test.gd effect_rotation_test.gd effect_surface_test.gd effect_emission_test.gd effect_render_regression_test.gd effect_playback_test.gd fx_test.gd skill_fx_test.gd player_skill_test.gd skill_test.gd damage_effect_test.gd combat_fx_test.gd app_flow_lifecycle_test.gd playable_harness_test.gd playable_adapter_test.gd gamescene_test.gd equip_model_test.gd equip_rules_test.gd race_motion_assembly_test.gd character_winding_test.gd; do
run_test headless "$test_script"
done
for test_script in effect_faces_test.gd effect_lie_test.gd effect_texture_animation_test.gd effect_color_operation_test.gd effect_surface_test.gd effect_emission_test.gd effect_rotation_test.gd model_render_test.gd gpu_lod_attachment_test.gd gpu_pose_bounds_test.gd forest_mob_render_test.gd; do
run_test metal "$test_script"
done
for mode in headless metal; do
MT_TREE_OUTPUT="$run_dir/native-trees-$mode" run_test "$mode" native_tree_test.gd
run_test "$mode" effect_random_rotation_test.gd
run_test "$mode" fly_target_bounds_test.gd
done
echo "BATCH failures=$failed logs=$run_dir"
test "$failed" -eq 0