From d8640759d6290b2d5d92026fec4a1fa4506e8f36 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 24 Jul 2025 14:55:00 +0200 Subject: [PATCH] Extend error case tests --- .github/workflows/linux.yml | 2 ++ util/helper_mod/init.lua | 22 +++++++++++++++++++--- util/helper_mod/mapgen_error.lua | 3 +++ util/test_error_cases.sh | 2 +- 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 util/helper_mod/mapgen_error.lua diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 88026cca0..b84c0442f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -14,6 +14,7 @@ on: - 'cmake/Modules/**' - 'po/**.po' - 'util/ci/**' + - 'util/helper_mod/**' - '.github/workflows/linux.yml' pull_request: paths: @@ -27,6 +28,7 @@ on: - 'cmake/Modules/**' - 'po/**.po' - 'util/ci/**' + - 'util/helper_mod/**' - '.github/workflows/linux.yml' env: diff --git a/util/helper_mod/init.lua b/util/helper_mod/init.lua index b2ed3b29d..54ec48747 100644 --- a/util/helper_mod/init.lua +++ b/util/helper_mod/init.lua @@ -51,7 +51,7 @@ elseif mode == "mapgen" then elseif mode == "error" then local n = tonumber(core.settings:get("error_type")) - local error_lua = core.get_modpath(core.get_current_modname()) .. "/error.lua" + local modpath = core.get_modpath(core.get_current_modname()) if n == 1 then print("=> error during startup <=") error("intentional") @@ -60,10 +60,26 @@ elseif mode == "error" then core.after(0, error, "intentional") elseif n == 3 then print("=> error in async script <=") - core.register_async_dofile(error_lua) + core.register_async_dofile(modpath .. "/error.lua") elseif n == 4 then print("=> error in mapgen script <=") - core.register_mapgen_script(error_lua) + core.register_mapgen_script(modpath .. "/error.lua") + elseif n == 5 then + print("=> error in mapgen env callback <=") + core.register_mapgen_script(modpath .. "/mapgen_error.lua") + core.after(0, function() + -- emerge something to trigger it + core.emerge_area(vector.new(0,0,0), vector.new(1,1,1), function(pos, action) + print("action=" .. action) + end) + end) + elseif n == 6 then + print("=> error in emerge_area callback <=") + core.after(0, function() + core.emerge_area(vector.new(0,0,0), vector.new(1,1,1), function() + error("intentional") + end) + end) else assert(false) end diff --git a/util/helper_mod/mapgen_error.lua b/util/helper_mod/mapgen_error.lua new file mode 100644 index 000000000..85e651a5c --- /dev/null +++ b/util/helper_mod/mapgen_error.lua @@ -0,0 +1,3 @@ +core.register_on_generated(function() + error("intentional") +end) diff --git a/util/test_error_cases.sh b/util/test_error_cases.sh index 8c968ca57..52120440c 100755 --- a/util/test_error_cases.sh +++ b/util/test_error_cases.sh @@ -36,7 +36,7 @@ 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 +for n in $(seq 1 6); do write_config error_type=$n run "$executable" "${args[@]}" echo "---------------"