from __future__ import annotations
import ctypes
import pytest
from zerodds import loader
def _try_load_library() -> ctypes.CDLL | None:
try:
return loader.load_library()
except OSError:
return None
_LIB = _try_load_library()
pytestmark = pytest.mark.skipif(
_LIB is None,
reason="libzerodds not found — run `cargo build -p zerodds-c-api` or set ZERODDS_LIB",
)
def test_loader_resolves_library():
lib = loader.load_library()
assert isinstance(lib, ctypes.CDLL)
def test_loader_runtime_create_participant_offline():
rt = loader.Runtime(domain_id=190)
assert rt is not None
close = getattr(rt, "close", None)
if callable(close):
close()
def test_loader_factory_singleton():
factory = loader.DomainParticipantFactory.instance()
assert factory is not None
def test_loader_zerodds_error_is_runtime_error_subclass():
assert issubclass(loader.ZeroDdsError, RuntimeError)