49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
import os
|
|
|
|
|
|
# Ensure local vendored toolchain modules are importable in tests.
|
|
repo_root = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(repo_root))
|
|
vendor_path = repo_root / "vendor"
|
|
if vendor_path.is_dir():
|
|
sys.path.insert(0, str(vendor_path))
|
|
|
|
# Ensure local libs (e.g., kneronnxopt) are importable in tests.
|
|
libs_path = repo_root / "libs"
|
|
if libs_path.is_dir():
|
|
sys.path.insert(0, str(libs_path))
|
|
|
|
# Ensure kneronnxopt package resolves to its inner module directory.
|
|
kneronnxopt_path = repo_root / "libs" / "kneronnxopt"
|
|
if kneronnxopt_path.is_dir():
|
|
sys.path.insert(0, str(kneronnxopt_path))
|
|
|
|
# Ensure E2E python_flow (kneron_inference) is importable in tests.
|
|
e2e_flow_path = repo_root / "E2E_Simulator" / "python_flow"
|
|
if e2e_flow_path.is_dir():
|
|
sys.path.insert(0, str(e2e_flow_path))
|
|
|
|
# Prefer local prebuild binaries to avoid docker-only toolchain checks in sys_flow.
|
|
prebuild_path = repo_root / "toolchain" / "prebuild"
|
|
if prebuild_path.is_dir():
|
|
os.environ.setdefault("USE_PREBUILD", str(prebuild_path))
|
|
prebuild_lib = prebuild_path / "lib"
|
|
if prebuild_lib.is_dir():
|
|
existing_ld = os.environ.get("LD_LIBRARY_PATH", "")
|
|
ld_parts = [str(prebuild_lib)]
|
|
if existing_ld:
|
|
ld_parts.append(existing_ld)
|
|
os.environ["LD_LIBRARY_PATH"] = ":".join(ld_parts)
|
|
|
|
# Force pytest/tempfile to use repo-local temp dir instead of system /tmp.
|
|
repo_tmp = repo_root / ".tmp"
|
|
repo_tmp.mkdir(parents=True, exist_ok=True)
|
|
os.environ.setdefault("TMPDIR", str(repo_tmp))
|
|
|
|
# Avoid multiprocessing Manager sockets in restricted test environments.
|
|
os.environ.setdefault("KTC_DISABLE_MP", "1")
|