test: isolate metal profiler tests from ambient SGLANG_USE_MLX (#34300)

This commit is contained in:
Jae B.
2026-08-10 18:44:16 -07:00
committed by GitHub
parent aeab1de1de
commit 5af5183351
@@ -185,7 +185,21 @@ class TestMetalCaptureProfilerMPS(unittest.TestCase):
@unittest.skipUnless(_IS_APPLE_SILICON and _HAS_MLX, _SKIP_REASON) @unittest.skipUnless(_IS_APPLE_SILICON and _HAS_MLX, _SKIP_REASON)
class TestSchedulerProfilerManagerMPS(unittest.TestCase): class TestSchedulerProfilerManagerMPS(unittest.TestCase):
"""SchedulerProfilerManager._start_profile handles Metal capture failures.""" """SchedulerProfilerManager._start_profile handles Metal capture failures.
apply_metal_profiler_patches() dispatches on use_mlx(), which reads
SGLANG_USE_MLX and is cached for the process (tensor_bridge.use_mlx).
This class exists to exercise the MPS strategy, so it pins use_mlx at
its point of use in profiler.py rather than the ambient environment;
an env-only pin would not reliably override an already-cached value.
"""
def setUp(self):
patcher = patch(
"sglang.srt.hardware_backend.mlx.profiler.use_mlx", return_value=False
)
patcher.start()
self.addCleanup(patcher.stop)
def _make_manager(self, output_dir): def _make_manager(self, output_dir):
from sglang.srt.managers.scheduler_components.profiler_manager import ( from sglang.srt.managers.scheduler_components.profiler_manager import (