mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2026-03-30 17:11:29 +00:00
30 lines
958 B
Python
30 lines
958 B
Python
"""
|
|
Level 1 — IR Generation tests.
|
|
|
|
For every BPF test file, calls compile_to_ir() and asserts:
|
|
1. No exception is raised by the pythonbpf compiler.
|
|
2. No logging.ERROR records are emitted during compilation.
|
|
3. A .ll file is produced.
|
|
|
|
Tests in failing_tests/ are marked xfail (strict=True) by conftest.py —
|
|
they must raise an exception or produce an ERROR log to pass the suite.
|
|
"""
|
|
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
|
|
from tests.framework.compiler import run_ir_generation
|
|
|
|
|
|
def test_ir_generation(bpf_test_file: Path, tmp_path, caplog):
|
|
ll_path = tmp_path / "output.ll"
|
|
|
|
run_ir_generation(bpf_test_file, ll_path)
|
|
|
|
error_records = [r for r in caplog.records if r.levelno >= logging.ERROR]
|
|
assert not error_records, "IR generation produced ERROR log(s):\n" + "\n".join(
|
|
f" [{r.name}] {r.getMessage()}" for r in error_records
|
|
)
|
|
assert ll_path.exists(), "compile_to_ir() returned without writing a .ll file"
|