From 6e720e49e725e0dfa8d2e2b63e1f74cde7ee0576 Mon Sep 17 00:00:00 2001 From: Sy03 <1370724210@qq.com> Date: Tue, 25 Aug 2026 00:05:36 +0800 Subject: [PATCH] [Test][Core] Cover aborted queue sweep through schedule Signed-off-by: Sy03 <1370724210@qq.com> --- ...t_omni_ar_scheduler_aborted_queue_sweep.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/core/sched/test_omni_ar_scheduler_aborted_queue_sweep.py b/tests/core/sched/test_omni_ar_scheduler_aborted_queue_sweep.py index ee622a2f2..0f315475a 100644 --- a/tests/core/sched/test_omni_ar_scheduler_aborted_queue_sweep.py +++ b/tests/core/sched/test_omni_ar_scheduler_aborted_queue_sweep.py @@ -18,6 +18,7 @@ import pytest from vllm.v1.core.sched.request_queue import SchedulingPolicy, create_request_queue from vllm.v1.request import RequestStatus +import vllm_omni.core.sched.omni_ar_scheduler as ar_sched_mod from vllm_omni.core.sched.omni_ar_scheduler import OmniARScheduler pytestmark = [pytest.mark.core_model, pytest.mark.cpu] @@ -113,3 +114,33 @@ def test_sweep_leaves_live_requests_intact(policy: SchedulingPolicy) -> None: assert list(scheduler.skipped_waiting) == [blocked] assert list(scheduler.waiting) == [live_waiting] assert scheduler.running == [live_running] + + +@pytest.mark.parametrize("policy", _POLICIES) +def test_schedule_sweeps_skipped_waiting_before_upstream_selection( + monkeypatch: pytest.MonkeyPatch, + policy: SchedulingPolicy, +) -> None: + """The public schedule path must remove aborted skipped requests first.""" + aborted = _StubRequest("req-aborted", RequestStatus.FINISHED_ABORTED) + scheduler = _make_scheduler(policy, skipped_waiting=[aborted]) + scheduler.chunk_transfer_adapter = None + scheduler.input_coordinator = None + scheduler.num_waiting_for_streaming_input = 0 + scheduler._process_pending_omni_inputs = lambda model_mode: None + scheduler._resync_streaming_input_counter = lambda: None + scheduler._should_defer_waiting_admission = lambda: False + scheduler._restore_omni_wait_queues = lambda: None + scheduler._postprocess_omni_schedule_output = lambda *args, **kwargs: None + scheduler.get_finished_requests_needing_kv_transfer = lambda: {} + scheduler._wrap_omni_scheduler_output = lambda output, **kwargs: output + + sentinel = object() + + def upstream_schedule(_self, _throttle_prefills: bool = False): + assert list(scheduler.skipped_waiting) == [] + return sentinel + + monkeypatch.setattr(ar_sched_mod.VLLMScheduler, "schedule", upstream_schedule) + + assert OmniARScheduler.schedule(scheduler) is sentinel