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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ
This commit is contained in:
2026-09-05 21:53:05 +00:00
parent e59cf158e5
commit 587a15a52e
+19
View File
@@ -133,9 +133,28 @@ def main():
for test in smoke_tests: for test in smoke_tests:
rel = os.path.relpath(test, ROOT) rel = os.path.relpath(test, ROOT)
print(f"\n--- {rel} ---") print(f"\n--- {rel} ---")
# 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) r = run([godot_bin, "--headless", "--path", str(ROOT), "--script", f"res://{rel}"], env=godot_env)
if r.returncode != 0: if r.returncode != 0:
godot_ok = False 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 results["godot smoke tests"] = godot_ok
finally: finally:
server_proc.terminate() server_proc.terminate()