Implement short-lived stellar event handling and optimize batch processing; add tests for new functionality

This commit is contained in:
Kirill
2026-09-22 22:50:54 +03:00
parent a3d24114a1
commit d6fd40969f
11 changed files with 238 additions and 41 deletions
+16
View File
@@ -92,6 +92,22 @@ func run() -> void:
check(reader.load_data("shutdown", "test-password").state.energy == 6.0, "Teardown drains final pending snapshot")
reader.free()
world.free()
# Exercise the stage entry point too: manager tests alone do not catch a
# regression back to the synchronous API in stage.gd.
var shared_manager: Node = root.get_node("SaveManager")
var original_directory: String = shared_manager.save_directory
shared_manager.save_directory = directory
var stage = load("res://stage/stage.gd").new()
stage.pending_page = 2
stage.owniverse.state.energy = 42.0
stage.save_data()
check(shared_manager.is_saving(), "Stage queues a background save instead of waiting for disk")
stage.owniverse.state.energy = 43.0
shared_manager.flush_saves()
check(shared_manager.load_data("owniverse", "qwerty").state.energy == 42.0, "Stage save writes an independent snapshot")
stage.owniverse.free()
stage.free()
shared_manager.save_directory = original_directory
global.save_plaintext_copy = old_plaintext
for filename in DirAccess.get_files_at(directory):
DirAccess.remove_absolute(directory.path_join(filename))