mirror of
https://github.com/luanti-org/luanti.git
synced 2025-09-15 18:57:08 +00:00
Add test script for server error cases
This commit is contained in:
parent
9e14f5f053
commit
bca44574d5
4 changed files with 73 additions and 1 deletions
46
util/test_error_cases.sh
Executable file
46
util/test_error_cases.sh
Executable file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
gameid=${gameid:-devtest}
|
||||
minetest=$dir/../bin/minetest
|
||||
testspath=$dir/../tests
|
||||
conf_server=$testspath/server.conf
|
||||
worldpath=$testspath/world
|
||||
|
||||
[ -e "$minetest" ] || { echo "executable $minetest missing"; exit 1; }
|
||||
|
||||
write_config () {
|
||||
printf '%s\n' >"$conf_server" \
|
||||
helper_mode=error mg_name=singlenode "$@"
|
||||
}
|
||||
|
||||
run () {
|
||||
timeout 10 "$@"
|
||||
r=$?
|
||||
echo "Exit status: $r"
|
||||
[ $r -eq 124 ] && echo "(timed out)"
|
||||
if [ $r -ne 1 ]; then
|
||||
echo "-> Test failed"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
rm -rf "$worldpath"
|
||||
mkdir -p "$worldpath/worldmods"
|
||||
|
||||
ln -s "$dir/helper_mod" "$worldpath/worldmods/"
|
||||
|
||||
args=(--server --config "$conf_server" --world "$worldpath" --gameid $gameid)
|
||||
|
||||
# make sure we can tell apart sanitizer and minetest errors
|
||||
export ASAN_OPTIONS="exitcode=42"
|
||||
export MSAN_OPTIONS="exitcode=42"
|
||||
|
||||
# see helper_mod/init.lua for the different types
|
||||
for n in $(seq 1 4); do
|
||||
write_config error_type=$n
|
||||
run "$minetest" "${args[@]}"
|
||||
echo "---------------"
|
||||
done
|
||||
|
||||
echo "All done."
|
||||
exit 0
|
Loading…
Add table
Add a link
Reference in a new issue