# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 """Pytest configuration for GPU Memory Service tests.""" import pytest # Skip collection entirely if gpu_memory_service is not installed try: import gpu_memory_service # noqa: F401 except ImportError: collect_ignore_glob = ["test_*.py"] from tests.utils.port_utils import allocate_port, deallocate_ports @pytest.fixture def gms_ports(): """Allocate ports for GMS tests. Returns a dict with ports for: - frontend: Frontend HTTP port - shadow_system: System port for shadow/primary engine - primary_system: System port for primary engine (failover test only) - shadow_kv_event: KV event port for shadow engine (vLLM) - primary_kv_event: KV event port for primary engine (vLLM) - shadow_nixl: NIXL side channel port for shadow engine (vLLM) - primary_nixl: NIXL side channel port for primary engine (vLLM) - shadow_sglang: SGLang HTTP port for shadow engine - primary_sglang: SGLang HTTP port for primary engine """ ports = [ allocate_port(p) for p in [8200, 8100, 8101, 20080, 20081, 20096, 20097, 30000, 30001] ] yield { "frontend": ports[0], "shadow_system": ports[1], "primary_system": ports[2], "shadow_kv_event": ports[3], "primary_kv_event": ports[4], "shadow_nixl": ports[5], "primary_nixl": ports[6], "shadow_sglang": ports[7], "primary_sglang": ports[8], } deallocate_ports(ports)