"""Top-level pytest fixtures. Heavy fixtures (Postgres bring-up, ArduPilot SITL, Derkachi corpus mount) are added incrementally by the components that need them. AZ-263 ships only the smoke-level scaffolding. Tier-2-only tests are guarded by `pytest.mark.tier2` and auto-skipped on Tier-1. """ from __future__ import annotations # AZ-306: faiss-cpu and torch each ship their own copy of libomp on macOS; # loading both into the same process triggers `OMP: Error #15` and an abort # inside FAISS native code. Setting `KMP_DUPLICATE_LIB_OK` here — BEFORE # any test module imports either library — opts into the documented # Intel OpenMP "duplicate-load tolerated" mode, which is the standard # remediation for mixed-runtime scientific stacks on macOS dev hosts. # CI Linux images don't need this; the setdefault keeps it a no-op there. import os as _os _os.environ.setdefault("KMP_DUPLICATE_LIB_OK", "TRUE") import os from collections.abc import Iterator import pytest from gps_denied_onboard.fdr_client.fakes import FakeFdrSink def pytest_collection_modifyitems(config: pytest.Config, items: list[pytest.Item]) -> None: """Auto-skip `tier2` tests when GPS_DENIED_TIER != 2.""" if os.environ.get("GPS_DENIED_TIER") == "2": return skip_tier2 = pytest.mark.skip(reason="Tier-2-only test; set GPS_DENIED_TIER=2 to run") skip_gpu = pytest.mark.skip(reason="GPU-only test") skip_docker = pytest.mark.skip(reason="Requires Docker compose services") for item in items: if "tier2" in item.keywords: item.add_marker(skip_tier2) if "gpu" in item.keywords: item.add_marker(skip_gpu) if "docker" in item.keywords: item.add_marker(skip_docker) @pytest.fixture def fake_fdr_sink() -> Iterator[FakeFdrSink]: """Default-configuration FakeFdrSink with overrun policy disabled (AZ-275 AC-5).""" sink = FakeFdrSink(producer_id="test.producer") yield sink sink.flush()