Skip to content

Commit

Permalink
Fix multiplayer test missing crashes at shutdown
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Mar 17, 2024
1 parent 4f84b01 commit 4d24537
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Expand Up @@ -108,7 +108,7 @@ jobs:
- name: Install deps
run: |
source ./util/ci/common.sh
install_linux_deps clang-14 gdb
install_linux_deps clang-14 lldb
- name: Build
run: |
Expand Down
14 changes: 12 additions & 2 deletions util/test_multiplayer.sh
@@ -1,4 +1,6 @@
#!/bin/bash
# Runs a multiplayer server and connects a headless client, devtest unittests are executed.

dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
gameid=${gameid:-devtest}
minetest=$dir/../bin/minetest
Expand All @@ -21,6 +23,7 @@ waitfor () {

[ -e "$minetest" ] || { echo "executable $minetest missing"; exit 1; }

rm -f "$testspath/log.txt"
rm -rf "$worldpath"
mkdir -p "$worldpath/worldmods"

Expand All @@ -35,11 +38,13 @@ printf '%s\n' >"$testspath/server.conf" \
ln -s "$dir/helper_mod" "$worldpath/worldmods/"

echo "Starting server"
"$minetest" --debugger --server --config "$conf_server" --world "$worldpath" --gameid $gameid 2>&1 | sed -u 's/^/(server) /' &
"$minetest" --debugger --server --config "$conf_server" --world "$worldpath" --gameid $gameid 2>&1 \
| sed -u 's/^/(server) /' | tee -a "$testspath/log.txt" &
waitfor "$worldpath/startup"

echo "Starting client"
"$minetest" --debugger --config "$conf_client1" --go --address 127.0.0.1 2>&1 | sed -u 's/^/(client) /' &
"$minetest" --debugger --config "$conf_client1" --go --address 127.0.0.1 2>&1 \
| sed -u 's/^/(client) /' | tee -a "$testspath/log.txt" &
waitfor "$worldpath/done"

echo "Waiting for client and server to exit"
Expand All @@ -49,5 +54,10 @@ if [ -f "$worldpath/test_failure" ]; then
echo "There were test failures."
exit 1
fi
# gdb|lldb
if grep -Eq "(Thread .* received signal|thread .* stop reason =)" "$testspath/log.txt"; then
echo "Debugger reported error."
exit 1
fi
echo "Success"
exit 0

0 comments on commit 4d24537

Please sign in to comment.