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:
6
.github/workflows/linux.yml
vendored
6
.github/workflows/linux.yml
vendored
@@ -119,7 +119,7 @@ jobs:
|
|||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: |
|
run: |
|
||||||
source ./util/ci/common.sh
|
source ./util/ci/common.sh
|
||||||
install_linux_deps clang-18 lldb
|
install_linux_deps clang-18 lldb xvfb
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
@@ -136,6 +136,10 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
./util/test_multiplayer.sh
|
./util/test_multiplayer.sh
|
||||||
|
|
||||||
|
- name: Singleplayer test
|
||||||
|
run: |
|
||||||
|
xvfb-run ./util/test_singleplayer.sh
|
||||||
|
|
||||||
# Build with prometheus-cpp (server-only), also runs on ARM64
|
# Build with prometheus-cpp (server-only), also runs on ARM64
|
||||||
clang_prometheus_arm:
|
clang_prometheus_arm:
|
||||||
name: "clang (with Prometheus, ARM64)"
|
name: "clang (with Prometheus, ARM64)"
|
||||||
|
|||||||
6
.github/workflows/lua.yml
vendored
6
.github/workflows/lua.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
|||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: |
|
run: |
|
||||||
source ./util/ci/common.sh
|
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
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
@@ -37,6 +37,10 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
serverconf="profiler.load=true" ./util/test_multiplayer.sh
|
serverconf="profiler.load=true" ./util/test_multiplayer.sh
|
||||||
|
|
||||||
|
- name: Singleplayer test (GL3)
|
||||||
|
run: |
|
||||||
|
clientconf="video_driver=opengl3" xvfb-run ./util/test_singleplayer.sh
|
||||||
|
|
||||||
luacheck:
|
luacheck:
|
||||||
name: "Builtin Luacheck and Unit Tests"
|
name: "Builtin Luacheck and Unit Tests"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
37
util/test_singleplayer.sh
Executable file
37
util/test_singleplayer.sh
Executable 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
|
||||||
Reference in New Issue
Block a user