1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-11-18 15:45:26 +01:00

Add non-headless singleplayer tests to CI

This commit is contained in:
sfan5
2025-11-05 13:41:40 +01:00
parent b6bfc494e6
commit 8593d38030
3 changed files with 47 additions and 2 deletions

View File

@@ -119,7 +119,7 @@ jobs:
- name: Install deps
run: |
source ./util/ci/common.sh
install_linux_deps clang-18 lldb
install_linux_deps clang-18 lldb xvfb
- name: Build
run: |
@@ -136,6 +136,10 @@ jobs:
run: |
./util/test_multiplayer.sh
- name: Singleplayer test
run: |
xvfb-run ./util/test_singleplayer.sh
# Build with prometheus-cpp (server-only), also runs on ARM64
clang_prometheus_arm:
name: "clang (with Prometheus, ARM64)"

View File

@@ -23,7 +23,7 @@ jobs:
- name: Install deps
run: |
source ./util/ci/common.sh
install_linux_deps clang gdb libluajit-5.1-dev
install_linux_deps clang gdb libluajit-5.1-dev xvfb
- name: Build
run: |
@@ -37,6 +37,10 @@ jobs:
run: |
serverconf="profiler.load=true" ./util/test_multiplayer.sh
- name: Singleplayer test (GL3)
run: |
clientconf="video_driver=opengl3" xvfb-run ./util/test_singleplayer.sh
luacheck:
name: "Builtin Luacheck and Unit Tests"
runs-on: ubuntu-latest

37
util/test_singleplayer.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
# Runs a singleplayer session with software-rendering.
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
gameid=${gameid:-devtest}
executable=$dir/../bin/luanti
testspath=$dir/../tests
conf_client=$testspath/client.conf
worldpath=$testspath/world
[ -e "$executable" ] || { echo "executable $executable missing"; exit 1; }
rm -rf "$worldpath"
mkdir -p "$worldpath/worldmods"
# enable a lot of visual effects so we can catch shader errors and other obvious bugs
printf '%s\n' >"$conf_client" \
screen_w=384 screen_h=256 fps_max=5 \
active_block_range=1 viewing_range=40 helper_mode=devtest \
opengl_debug=true mip_map=true enable_waving_{leaves,plants,water}=true \
enable_{auto_exposure,bloom,dynamic_shadows,translucent_foliage,volumetric_lighting}=true \
shadow_map_color=true antialiasing=ssaa \
"${clientconf:-}"
ln -s "$dir/helper_mod" "$worldpath/worldmods/"
export ALSOFT_DRIVERS=null
export LIBGL_ALWAYS_SOFTWARE=true
export MESA_DEBUG=1
timeout 25 "$executable" --config "$conf_client" --go --world "$worldpath" --gameid "$gameid" --info
r=$?
echo "Exit status: $r"
[ $r -eq 124 ] && echo "(timed out)"
[ $r -ne 0 ] && exit 1
echo "Success"
exit 0