From 48fa8aec3f54e2bdda960ef718c538adf5dddce4 Mon Sep 17 00:00:00 2001 From: Pragyansh Chaturvedi Date: Sat, 25 Apr 2026 18:54:25 +0530 Subject: [PATCH] Tests: USe namedtuple to pass verifier output for asserts --- tests/framework/verifier.py | 4 +++- tests/test_verifier.py | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/framework/verifier.py b/tests/framework/verifier.py index f3739e7..c5624c6 100644 --- a/tests/framework/verifier.py +++ b/tests/framework/verifier.py @@ -1,5 +1,6 @@ import subprocess import uuid +from collections import namedtuple from pathlib import Path @@ -17,7 +18,8 @@ def verify_object(obj_path: Path) -> tuple[bool, str]: text=True, timeout=30, ) - output = result.stdout + result.stderr + Output = namedtuple("Output", ["stdout", "stderr"]) + output = Output(stdout=result.stdout, stderr=result.stderr) return result.returncode == 0, output except subprocess.TimeoutExpired: return False, "bpftool timed out after 30s" diff --git a/tests/test_verifier.py b/tests/test_verifier.py index 9246e60..03b6408 100644 --- a/tests/test_verifier.py +++ b/tests/test_verifier.py @@ -40,6 +40,17 @@ def _passing_test_ids(): ] +def _get_rejection_reason(verifier_test_file: Path, output) -> str: + # Extract the reason for rejection from the verifier output + errstr = f"Verifier rejected {verifier_test_file.name}:\n" + errstr += "=" * 80 + "\n" + errstr += f"stdout:\n{output.stdout}\n" + errstr += "=" * 80 + "\n" + errstr += f"stderr:\n{output.stderr}\n" + errstr += "=" * 80 + "\n" + return errstr + + @pytest.mark.verifier @pytest.mark.parametrize( "verifier_test_file", @@ -62,4 +73,4 @@ def test_kernel_verifier(verifier_test_file: Path, tmp_path, caplog): assert obj_path.exists() and obj_path.stat().st_size > 0 ok, output = verify_object(obj_path) - assert ok, f"Kernel verifier rejected {verifier_test_file.name}:\n{output}" + assert ok, _get_rejection_reason(verifier_test_file, output)