mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +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
1
util/helper_mod/error.lua
Normal file
1
util/helper_mod/error.lua
Normal file
|
@ -0,0 +1 @@
|
|||
error("intentional")
|
|
@ -48,4 +48,24 @@ elseif mode == "mapgen" then
|
|||
end
|
||||
core.after(0, next_, 1)
|
||||
|
||||
elseif mode == "error" then
|
||||
|
||||
local n = tonumber(core.settings:get("error_type"))
|
||||
local error_lua = core.get_modpath(core.get_current_modname()) .. "/error.lua"
|
||||
if n == 1 then
|
||||
print("=> error during startup <=")
|
||||
error("intentional")
|
||||
elseif n == 2 then
|
||||
print("=> error on first step <=")
|
||||
core.after(0, error, "intentional")
|
||||
elseif n == 3 then
|
||||
print("=> error in async script <=")
|
||||
core.register_async_dofile(error_lua)
|
||||
elseif n == 4 then
|
||||
print("=> error in mapgen script <=")
|
||||
core.register_mapgen_script(error_lua)
|
||||
else
|
||||
assert(false)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
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