23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""Build package-local Rust acceptance against the latest release library."""
|
|
import os
|
|
from pathlib import Path
|
|
import subprocess
|
|
|
|
root = Path(__file__).resolve().parent
|
|
project = root.parents[2]
|
|
deps = project / "RustRaptor/target/release/deps"
|
|
libraries = sorted(deps.glob("libraptor_replica-*.rlib"), key=lambda p: p.stat().st_mtime, reverse=True)
|
|
if not libraries:
|
|
raise SystemExit("Build RustRaptor in release mode before this package-local check")
|
|
output = project / ".reference/iron-coast-boss-4-validation"
|
|
output.parent.mkdir(exist_ok=True)
|
|
env = os.environ.copy()
|
|
env["RAPTOR_PROJECT"] = str(project)
|
|
local_lib = Path.home() / ".local/lib"
|
|
env["LD_LIBRARY_PATH"] = f"{local_lib}:{env.get('LD_LIBRARY_PATH', '')}"
|
|
env["LIBRARY_PATH"] = f"{local_lib}:{env.get('LIBRARY_PATH', '')}"
|
|
subprocess.run(["rustc", "--edition=2024", "--test", str(root / "validate.rs"), "--extern", f"raptor_replica={libraries[0]}",
|
|
"-L", f"dependency={deps}", "-L", str(local_lib), "-o", str(output)], check=True, env=env)
|
|
subprocess.run([str(output), "--nocapture", "--test-threads=1"], check=True, env=env)
|