autocad-bench / tests /test_controller_metrics.py
Dev Mandal
Initial open-source release
0be8f22
Raw
History Blame Contribute Delete
1.23 kB
from __future__ import annotations
import os
from pathlib import Path
from autocad_bench.orchestration.controller_metrics import controller_metrics
def test_controller_metrics_reads_memory_threads_and_worker_counts(
tmp_path: Path,
) -> None:
proc = tmp_path / "proc"
own = proc / str(os.getpid())
own.mkdir(parents=True)
(own / "status").write_text("VmRSS:\t1234 kB\nThreads:\t17\n")
(proc / "meminfo").write_text(
"MemTotal: 32768 kB\n"
"MemAvailable: 16384 kB\n"
"SwapTotal: 8192 kB\n"
"SwapFree: 2048 kB\n"
)
tunnel = proc / "101"
wrapper = proc / "102"
tunnel.mkdir()
wrapper.mkdir()
(tunnel / "cmdline").write_bytes(b"aws\0AWS-StartPortForwardingSession\0")
(wrapper / "cmdline").write_bytes(
b"python\0-m\0autocad_bench.sandbox.runner\0"
)
metrics = controller_metrics(proc_root=proc)
assert metrics["rss_bytes"] == 1234 * 1024
assert metrics["threads"] == 17
assert metrics["host_available_memory_bytes"] == 16384 * 1024
assert metrics["host_swap_used_bytes"] == (8192 - 2048) * 1024
assert metrics["ssm_tunnels"] == 1
assert metrics["legacy_rollout_wrappers"] == 1