Preserve live gateway log during compaction

This commit is contained in:
HumbleTurtle
2026-08-01 04:18:00 -03:00
parent 39adc19510
commit fccdfd58df
2 changed files with 39 additions and 8 deletions
+27
View File
@@ -0,0 +1,27 @@
import importlib.util
import pathlib
def load_module():
script_path = pathlib.Path(__file__).resolve().parents[1] / "resources" / "scripts" / "napseer_mcp_server.py"
spec = importlib.util.spec_from_file_location("napseer_gateway_log_compaction_test", script_path)
module = importlib.util.module_from_spec(spec)
assert spec and spec.loader
spec.loader.exec_module(module)
return module
def test_log_compaction_preserves_live_writer_inode(tmp_path):
mod = load_module()
log_path = tmp_path / "gateway.log"
log_path.write_bytes((b"old-line\n" * 200) + b"recent-line\n")
inode_before = log_path.stat().st_ino
with log_path.open("ab", buffering=0) as live_writer:
mod.compact_log_file(log_path, 128)
live_writer.write(b"after-compaction\n")
assert log_path.stat().st_ino == inode_before
content = log_path.read_bytes()
assert content.endswith(b"after-compaction\n")
assert b"recent-line\n" in content