Panik-Test ohne globalen Hook, begrenzte Gast-Schleifen

Der Test einer Panik im Kern tauscht den globalen Panik-Hook nicht mehr
aus. Das war unnötig, weil der Testläufer die Meldung einer erwarteten
Panik ohnehin zurückhält, und es konnte Meldungen anderer, gleichzeitig
scheiternder Tests verschlucken. Die Gast-Schleifen in den GDScript-Tests
der Brücke laufen höchstens so oft, wie Takte warten, damit ein
abgewichener Gast den Testlauf nicht anhält.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Steven Wroblewski
2026-10-01 19:41:38 +02:00
parent 2faa3ccce3
commit 6c7c5bffc2
2 changed files with 5 additions and 8 deletions
+3 -3
View File
@@ -172,7 +172,7 @@ func _host_and_guest() -> Array[GwSession]:
_carry(host, guest)
host.step()
_carry(host, guest)
while guest.pending_ticks() > 0:
for i in guest.pending_ticks():
guest.step()
return [host, guest]
@@ -191,7 +191,7 @@ func test_a_guest_follows_its_host_through_the_bridge() -> void:
host.step()
_carry(host, guest)
check_eq(guest.pending_ticks(), 25, "the ticks wait until the guest runs them")
while guest.pending_ticks() > 0:
for i in guest.pending_ticks():
guest.step()
check_eq(guest.state_hash_hex(), host.state_hash_hex(), "both worlds are the same")
check_eq(guest.local_player(), 1, "the guest is player 1")
@@ -213,7 +213,7 @@ func test_the_hit_of_a_guest_becomes_a_message_to_the_host() -> void:
host.step()
_carry(host, guest)
var events: Array[Dictionary] = []
while guest.pending_ticks() > 0:
for i in guest.pending_ticks():
events.append_array(guest.step())
check_eq(events.map(func(event: Dictionary) -> String: return event["type"]), ["tile_hit"], "the guest sees its hit")
check_eq(host.damage_codes()[rock.y * host.map_width() + rock.x], 1, "and so does the host")