[CI] Only isolate the registry tests that need a fresh process (#58764)

Signed-off-by: aarushjain29 <Aarushi.Jain2@amd.com> Co-authored-by: Andreas Karatzas <akaratza@amd.com>

Aarushi Jain committed Sep 26, 2026 at 01:03 UTC 3b4566c5cf014605de6aeab6eb831b4f20511c17
1 file changed +37 -39
tests/models/test_registry.py
+37 -39
@@ -88,70 +88,68 @@ def test_registry_imports(model_arch):
88 assert supports_multimodal(model_cls)
89
90
91 -@create_new_process_for_each_test()
91 @pytest.mark.parametrize(
93 - "model_arch,is_mm,init_cuda,score_type",
92 + "model_arch,is_mm,score_type",
93 [
95 - ("LlamaForCausalLM", False, False, "bi-encoder"),
96 - ("LlavaForConditionalGeneration", True, True, "bi-encoder"),
97 - ("DeepseekV41ForCausalLM", True, False, "bi-encoder"),
98 - ("BertForSequenceClassification", False, False, "cross-encoder"),
99 - ("RobertaForSequenceClassification", False, False, "cross-encoder"),
100 - ("XLMRobertaForSequenceClassification", False, False, "cross-encoder"),
101 - ("GteNewModel", False, False, "bi-encoder"),
102 - ("GteNewForSequenceClassification", False, False, "cross-encoder"),
103 - ("HF_ColBERT", False, False, "late-interaction"),
94 + ("LlamaForCausalLM", False, "bi-encoder"),
95 + ("LlavaForConditionalGeneration", True, "bi-encoder"),
96 + ("DeepseekV41ForCausalLM", True, "bi-encoder"),
97 + ("BertForSequenceClassification", False, "cross-encoder"),
98 + ("RobertaForSequenceClassification", False, "cross-encoder"),
99 + ("XLMRobertaForSequenceClassification", False, "cross-encoder"),
100 + ("GteNewModel", False, "bi-encoder"),
101 + ("GteNewForSequenceClassification", False, "cross-encoder"),
102 + ("HF_ColBERT", False, "late-interaction"),
103 ],
104 )
106 -def test_registry_model_property(model_arch, is_mm, init_cuda, score_type):
105 +def test_registry_model_property(model_arch, is_mm, score_type):
106 model_info = ModelRegistry._try_inspect_model_cls(model_arch)
107 assert model_info is not None
108
109 assert model_info.supports_multimodal is is_mm
110 assert model_info.score_type == score_type
111
113 - if init_cuda and current_platform.is_cuda_alike():
114 - assert not torch.cuda.is_initialized()
115 -
116 - ModelRegistry._try_load_model_cls(model_arch)
117 - if not torch.cuda.is_initialized():
118 - warnings.warn(
119 - "This model no longer initializes CUDA on import. "
120 - "Please test using a different one.",
121 - stacklevel=2,
122 - )
123 -
112
125 -@create_new_process_for_each_test()
113 @pytest.mark.parametrize(
127 - "model_arch,is_pp,init_cuda",
114 + "model_arch,is_pp",
115 [
116 # TODO(woosuk): Re-enable this once the MLP Speculator is supported
117 # in V1.
131 - # ("MLPSpeculatorPreTrainedModel", False, False),
132 - ("DeepseekV2ForCausalLM", True, False),
133 - ("Qwen2VLForConditionalGeneration", True, True),
118 + # ("MLPSpeculatorPreTrainedModel", False),
119 + ("DeepseekV2ForCausalLM", True),
120 + ("Qwen2VLForConditionalGeneration", True),
121 ],
122 )
136 -def test_registry_is_pp(model_arch, is_pp, init_cuda):
123 +def test_registry_is_pp(model_arch, is_pp):
124 model_info = ModelRegistry._try_inspect_model_cls(model_arch)
125 assert model_info is not None
126
127 assert model_info.supports_pp is is_pp
128
142 - if init_cuda and current_platform.is_cuda_alike():
143 - assert not torch.cuda.is_initialized()
129
145 - ModelRegistry._try_load_model_cls(model_arch)
146 - if not torch.cuda.is_initialized():
147 - warnings.warn(
148 - "This model no longer initializes CUDA on import. "
149 - "Please test using a different one.",
150 - stacklevel=2,
151 - )
130 +@create_new_process_for_each_test()
131 +@pytest.mark.parametrize(
132 + "model_arch",
133 + ["LlavaForConditionalGeneration", "Qwen2VLForConditionalGeneration"],
134 +)
135 +def test_registry_inspect_does_not_init_cuda(model_arch):
136 + """Inspecting a model must not import it: these architectures initialize
137 + CUDA at import time, so the inspection path has to stay out-of-process."""
138 + if not current_platform.is_cuda_alike():
139 + pytest.skip("Requires a CUDA-like platform")
140 +
141 + assert ModelRegistry._try_inspect_model_cls(model_arch) is not None
142 + assert not torch.cuda.is_initialized()
143 +
144 + ModelRegistry._try_load_model_cls(model_arch)
145 + if not torch.cuda.is_initialized():
146 + warnings.warn(
147 + "This model no longer initializes CUDA on import. "
148 + "Please test using a different one.",
149 + stacklevel=2,
150 + )
151
152
154 -@create_new_process_for_each_test()
153 @pytest.mark.parametrize(
154 "model_arch,supported",
155 [