@@ -588,6 +588,29 @@ def test_resolutions_force_warmup_on(self):
588588 self .assertFalse (sa .server_warmup )
589589 self .assertEqual (sa .warmup_mode , "request" )
590590
591+ def test_legacy_warmup_on_uses_defaulted_server_mode (self ):
592+ # `serve --warmup` (legacy ON, mode defaulted to "server" but not
593+ # explicit) must resolve to server-based warmup, not silently downgrade
594+ # to request mode.
595+ sa = self ._resolve (warmup_mode = "server" , warmup = True , explicit = ("warmup" ,))
596+ self .assertEqual (sa .warmup_mode , "server" )
597+ self .assertTrue (sa .warmup )
598+ self .assertTrue (sa .server_warmup )
599+
600+ def test_legacy_warmup_with_resolutions_runs_server_warmup (self ):
601+ # Dead-zone regression: `serve --warmup --warmup-resolutions X` must run
602+ # server-based (synthetic) warmup, not end up with no warmup at all
603+ # (request-based warmup bails out when warmup_resolutions is set).
604+ sa = self ._resolve (
605+ warmup_mode = "server" ,
606+ warmup = True ,
607+ warmup_resolutions = ["1024x1024" ],
608+ explicit = ("warmup" ,),
609+ )
610+ self .assertTrue (sa .warmup )
611+ self .assertTrue (sa .server_warmup )
612+ self .assertEqual (sa .warmup_mode , "server" )
613+
591614 def test_disagg_role_disables_server_warmup (self ):
592615 from sglang .multimodal_gen .runtime .disaggregation .roles import RoleType
593616
0 commit comments