mirror of
https://github.com/LowganDev/PlayfinPS4.git
synced 2026-10-18 01:01:48 +02:00
44 lines
1.7 KiB
Bash
Executable File
44 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Regenerates the UI reference screenshots of every tests/ui/*.script. Review the images before committing.
|
|
# shell.script and media.script run against the fake Jellyfin server (HTTPS, self-signed) on 127.0.0.1:48920;
|
|
# media.script with the test server's views and the guide's clock fixed (as ctest's ui_media).
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
cmake --build --preset linux-debug
|
|
server=
|
|
trap '[ -n "$server" ] && { kill $server 2>/dev/null || true; wait $server 2>/dev/null || true; }' EXIT
|
|
for script in tests/ui/*.script; do
|
|
name=$(basename "$script" .script)
|
|
out=build/linux-debug/ui-refs/$name
|
|
rm -rf "$out"
|
|
mkdir -p "$out" "tests/ui/references/$name"
|
|
screen=$name
|
|
fakeOptions=
|
|
appOptions=
|
|
if [ "$name" = media ]; then
|
|
screen=shell
|
|
fakeOptions=--media
|
|
appOptions="--fixed-time 2026-10-16T19:45:00Z --utc-offset 120"
|
|
fi
|
|
if [ "$screen" = shell ]; then
|
|
# shellcheck disable=SC2086
|
|
build/linux-debug/tests/fake_jellyfin --https --port 48920 --url-file "$out/url" $fakeOptions > /dev/null &
|
|
server=$!
|
|
for _ in $(seq 1 50); do
|
|
[ -s "$out/url" ] && break
|
|
sleep 0.1
|
|
done
|
|
fi
|
|
LC_ALL=fr_FR.UTF-8 SDL_VIDEODRIVER=offscreen MESA_LOADER_DRIVER_OVERRIDE=llvmpipe timeout 120 \
|
|
build/linux-debug/playfin --hidden --no-discovery --screen "$screen" --data-dir "$out/data" \
|
|
--test-script "$script" --test-output "$out" $appOptions
|
|
if [ -n "$server" ]; then
|
|
kill $server 2>/dev/null || true
|
|
wait $server 2>/dev/null || true
|
|
server=
|
|
fi
|
|
rm -f "tests/ui/references/$name"/*.png
|
|
cp "$out"/*.png "tests/ui/references/$name/"
|
|
done
|
|
ls -la tests/ui/references/*
|