"""Tests for CCL diagnostics: trace + pointer dump (ADR-0023 D14).""" from __future__ import annotations import os from kernbench.ccl import diagnostics # ── trace toggle ───────────────────────────────────────────────────── def test_trace_disabled_by_default(monkeypatch): monkeypatch.delenv("KERNBENCH_CCL_TRACE", raising=False) diagnostics.reload_trace_setting() assert diagnostics.trace_enabled() is False def test_trace_enabled_via_env(monkeypatch): monkeypatch.setenv("KERNBENCH_CCL_TRACE", "1") diagnostics.reload_trace_setting() assert diagnostics.trace_enabled() is True def test_trace_record_send(monkeypatch, capsys): monkeypatch.setenv("KERNBENCH_CCL_TRACE", "1") diagnostics.reload_trace_setting() diagnostics.log_send(t_ns=100.0, sender="sip0.cube0.pe0", direction="E", nbytes=64, sender_seq=0) out = capsys.readouterr().out assert "send" in out assert "sip0.cube0.pe0" in out assert "dir=E" in out monkeypatch.delenv("KERNBENCH_CCL_TRACE") diagnostics.reload_trace_setting() def test_trace_record_recv(monkeypatch, capsys): monkeypatch.setenv("KERNBENCH_CCL_TRACE", "1") diagnostics.reload_trace_setting() diagnostics.log_recv(t_ns=200.0, receiver="sip0.cube0.pe1", direction="W", nbytes=64) out = capsys.readouterr().out assert "recv" in out assert "sip0.cube0.pe1" in out monkeypatch.delenv("KERNBENCH_CCL_TRACE") diagnostics.reload_trace_setting() # ── pointer dump ──────────────────────────────────────────────────── def test_pointer_dump_format(): from kernbench.sim_engine.engine import GraphEngine from kernbench.topology.builder import resolve_topology from kernbench.ccl.install import ( install_ipcq, load_ccl_config, resolve_algorithm_config, ) topo = resolve_topology("topology.yaml").topology_obj engine = GraphEngine(topo, enable_data=True) cfg = resolve_algorithm_config(load_ccl_config(), name="ring_allreduce_tcm") install_ipcq(engine, topo.spec, cfg) dump = diagnostics.pointer_dump(engine) # 8 ranks × 2 directions = 16 lines (plus 8 PE headers) assert "sip0.cube0.pe0" in dump assert "E:" in dump assert "W:" in dump assert "my_head=" in dump assert "peer_tail_cache=" in dump