mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2026-03-31 17:41:27 +00:00
24 lines
780 B
Python
24 lines
780 B
Python
import logging
|
|
from pathlib import Path
|
|
|
|
from pythonbpf.codegen import compile_to_ir, _run_llc
|
|
|
|
|
|
def run_ir_generation(test_path: Path, output_ll: Path):
|
|
"""Run compile_to_ir on a BPF test file.
|
|
|
|
Returns the (output, structs_sym_tab, maps_sym_tab) tuple from compile_to_ir.
|
|
Raises on exception. Any logging.ERROR records captured by pytest caplog
|
|
indicate a compile failure even when no exception is raised.
|
|
"""
|
|
return compile_to_ir(str(test_path), str(output_ll), loglevel=logging.WARNING)
|
|
|
|
|
|
def run_llc(ll_path: Path, obj_path: Path) -> bool:
|
|
"""Compile a .ll file to a BPF .o using llc.
|
|
|
|
Raises subprocess.CalledProcessError on failure (llc uses check=True).
|
|
Returns True on success.
|
|
"""
|
|
return _run_llc(str(ll_path), str(obj_path))
|