refactor(base.lua): improve run_tests function logic

Refactor the run_tests function in base.lua to enhance its logic and readability. The changes ensure proper handling of the tests_state enumeration.
This commit is contained in:
Yves-Marie Haussonne 2024-10-02 11:12:18 +02:00
parent 14860ab625
commit 199abfba88

View File

@ -554,10 +554,14 @@ local run_tests = function()
end
print("Server tests done, " .. failed .. " tests failed.")
if minetest.settings:get_bool("test_harness_stop_server", true) and next(players_tests) == nil then
if minetest.settings:get_bool("test_harness_stop_server", true) and ( next(players_tests) == nil or tests_state == TESTS_STATE_ENUM.DONE) then
request_shutdown()
end
if tests_state == TESTS_STATE_ENUM.DONE then
return
end
-- list of needed players
local players_table = {}
for _, t in ipairs(players_tests) do
@ -591,12 +595,11 @@ local run_tests = function()
end)
minetest.register_on_leaveplayer(function(player, timeout)
if tests_state ~= TESTS_STATE_ENUM.STARTED_PLAYERS then
-- check that needed playernames is still in the list of connected players
local connected_player_names = get_connected_player_names()
if not all_in_table(needed_playernames, connected_player_names) then
tests_state = TESTS_STATE_ENUM.STARTED
end
if tests_state ~= TESTS_STATE_ENUM.STARTED_PLAYERS then return end
-- check that needed playernames is still in the list of connected players
local connected_player_names = get_connected_player_names()
if not all_in_table(needed_playernames, connected_player_names) then
tests_state = TESTS_STATE_ENUM.STARTED
end
end)
end)