From 73e9f46c4625a5dfe57b1fd25f7a908dc76ea42a Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:06:36 +0800 Subject: [PATCH] chore: resolve PR comments --- prt/tests/compute/blockchain/utils.lua | 5 +++- prt/tests/compute/prt_compute.lua | 31 ++++++++++++---------- prt/tests/compute/utils/scoped_require.lua | 2 +- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/prt/tests/compute/blockchain/utils.lua b/prt/tests/compute/blockchain/utils.lua index 94b7cc4..dc0cc0b 100644 --- a/prt/tests/compute/blockchain/utils.lua +++ b/prt/tests/compute/blockchain/utils.lua @@ -22,7 +22,10 @@ end local deploy_cmd = [[sh -c "cd ../../contracts && ./deploy_anvil.sh"]] local function deploy_contracts() local reader = io.popen(deploy_cmd) - return assert(reader):read() + assert(reader, "Failed to open process for deploy command: " .. deploy_cmd) + local output = reader:read("*a") + local success = reader:close() + assert(success, string.format("Deploy command failed:\n%s", output)) end return { advance_time = advance_time, deploy_contracts = deploy_contracts } diff --git a/prt/tests/compute/prt_compute.lua b/prt/tests/compute/prt_compute.lua index 1fd2987..b3e0992 100755 --- a/prt/tests/compute/prt_compute.lua +++ b/prt/tests/compute/prt_compute.lua @@ -74,27 +74,30 @@ local player_coroutines = setup_players(use_lua_node, extra_data, contract_addre local blockchain_node = Blockchain:new() time.sleep(NODE_DELAY) -local pid = blockchain_utils.deploy_contracts() +blockchain_utils.deploy_contracts() time.sleep(NODE_DELAY) while true do local idle = true - for i = #player_coroutines, 1, -1 do - local c = player_coroutines[i] - local success, ret = coroutine.resume(c) - local status = coroutine.status(c) - - if status == "dead" then - table.remove(player_coroutines, i) - end - if not success then - print(string.format("coroutine %d fail to resume with error: %s", i, ret)) - elseif ret then - idle = idle and ret.idle + local has_live_coroutine = false + for i, c in ipairs(player_coroutines) do + if c then + local success, ret = coroutine.resume(c) + local status = coroutine.status(c) + + if status == "dead" then + player_coroutines[i] = nil + end + if not success then + print(string.format("coroutine %d fail to resume with error: %s", i, ret)) + elseif ret then + has_live_coroutine = true + idle = idle and ret.idle + end end end - if #player_coroutines == 0 then + if not has_live_coroutine then print("No active players, ending program...") break end diff --git a/prt/tests/compute/utils/scoped_require.lua b/prt/tests/compute/utils/scoped_require.lua index d2a5661..893ce3c 100644 --- a/prt/tests/compute/utils/scoped_require.lua +++ b/prt/tests/compute/utils/scoped_require.lua @@ -42,7 +42,7 @@ local function new_scoped_require(env) local chunk, err, result if module_type == "lua" then - chunk, err = loadfile(path, "t", new_env) + chunk, err = loadfile(path, "bt", new_env) elseif module_type == "clib" then chunk, err = custom_require_c(path, name) end