"""Tests for kernelbench_runner.run + parse.""" import json from pathlib import Path import pytest from tests.benchmarks.kernelbench_runner import parse_kernelbench_output, RunResult FIXTURE = Path(__file__).parent / "fixtures" / "kernelbench_sample.csv" def test_parse_returns_run_results(): raw = FIXTURE.read_text() if FIXTURE.exists() else _sample_raw() results = parse_kernelbench_output(raw) assert all(isinstance(r, RunResult) for r in results) assert len(results) >= 2 def test_parse_extracts_kernel_id_baseline_optimized_ns(): raw = _sample_raw() results = parse_kernelbench_output(raw) r = results[0] assert r.kernel_id assert r.baseline_ns > 0 assert isinstance(r.analysis_succeeded, bool) assert isinstance(r.recommendation_count, int) def _sample_raw() -> str: return json.dumps({ "suite": "kernelbench-rocm:level1", "mode": "analysis_only", "results": [ {"kernel": "gemm_rocblas", "baseline_ns": 1_000_000, "analysis_succeeded": True, "recommendation_count": 1, "report_path": "/tmp/gemm.json"}, {"kernel": "softmax_fused", "baseline_ns": 500_000, "analysis_succeeded": False, "recommendation_count": 0, "report_path": None}, ], })