From 587a15a52ef8ebc2183475ef3215bdfa64e484bc Mon Sep 17 00:00:00 2001 From: daddy Date: Sat, 5 Sep 2026 21:53:05 +0000 Subject: [PATCH] PC3: checkpoint runner starts a dedicated server for the network-client smoke smoke_test_network_client.gd needs a separate `godot scenes/server.tscn` process on ENet 7777; the runner never started one, so that test has been failing in every checkpoint run (the only failure in an otherwise-green suite). Start it just for that test, tear it down after. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ --- scripts/run_checkpoint_tests.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/scripts/run_checkpoint_tests.py b/scripts/run_checkpoint_tests.py index e951de2..2ab9ae5 100755 --- a/scripts/run_checkpoint_tests.py +++ b/scripts/run_checkpoint_tests.py @@ -133,9 +133,28 @@ def main(): for test in smoke_tests: rel = os.path.relpath(test, ROOT) print(f"\n--- {rel} ---") - r = run([godot_bin, "--headless", "--path", str(ROOT), "--script", f"res://{rel}"], env=godot_env) - if r.returncode != 0: - godot_ok = False + # smoke_test_network_client.gd needs a separate dedicated + # server process listening on ENet 7777 -- stand one up + # just for that test and tear it down after. + game_server = None + if os.path.basename(rel) == "smoke_test_network_client.gd": + print("(starting scenes/server.tscn for the network client test)") + game_server = subprocess.Popen( + [godot_bin, "--headless", "--path", str(ROOT), "res://scenes/server.tscn"], + env=godot_env, + ) + time.sleep(3) + try: + r = run([godot_bin, "--headless", "--path", str(ROOT), "--script", f"res://{rel}"], env=godot_env) + if r.returncode != 0: + godot_ok = False + finally: + if game_server is not None: + game_server.terminate() + try: + game_server.wait(timeout=10) + except subprocess.TimeoutExpired: + game_server.kill() results["godot smoke tests"] = godot_ok finally: server_proc.terminate()