From ef35d8fe4e161770b2b91df12d82581c923a2290 Mon Sep 17 00:00:00 2001 From: Alison Shao <54658187+alisonshao@users.noreply.github.com> Date: Fri, 9 Jan 2026 15:24:26 -0800 Subject: [PATCH] Migrate VLM tests and remove unit-test-backend-1-gpu job (#16679) --- .github/workflows/pr-test.yml | 72 +++---------------- scripts/ci/slash_command_handler.py | 1 - test/{srt => registered/vlm}/test_evs.py | 3 + .../vlm}/test_video_utils.py | 3 + test/srt/run_suite.py | 5 -- 5 files changed, 14 insertions(+), 70 deletions(-) rename test/{srt => registered/vlm}/test_evs.py (93%) rename test/{srt => registered/vlm}/test_video_utils.py (93%) diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 7b870277d..46d1ef1c4 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -946,60 +946,6 @@ jobs: fi python3 run_suite.py --suite quantization_test $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG - unit-test-backend-1-gpu: - needs: [check-changes, call-gate, stage-a-test-1] - if: | - always() && - ( - (inputs.target_stage == 'unit-test-backend-1-gpu') || - ( - !inputs.target_stage && - (github.event_name == 'schedule' || (!failure() && !cancelled())) && - ((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true')) - ) - ) - runs-on: 1-gpu-runner - env: - RUNNER_LABELS: 1-gpu-runner - strategy: - fail-fast: false - max-parallel: ${{ fromJson(needs.check-changes.outputs.max_parallel) }} - matrix: - part: [0, 1] - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.pr_head_sha || inputs.ref || github.sha }} - - - name: Download artifacts - if: needs.check-changes.outputs.sgl_kernel == 'true' - uses: actions/download-artifact@v4 - with: - path: sgl-kernel/dist/ - merge-multiple: true - pattern: wheel-python3.10-cuda12.9 - - - name: Install dependencies - timeout-minutes: 10 - run: | - CUSTOM_BUILD_SGL_KERNEL=${{needs.check-changes.outputs.sgl_kernel}} bash scripts/ci/ci_install_dependency.sh - - - name: Run test - timeout-minutes: 30 - run: | - cd test/srt - RETRY_FLAG="" - if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then - RETRY_FLAG="--enable-retry" - fi - CONTINUE_ON_ERROR_FLAG="" - if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then - CONTINUE_ON_ERROR_FLAG="--continue-on-error" - fi - python3 run_suite.py --suite per-commit-1-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG - - stage-b-test-4-gpu-b200: needs: [check-changes, call-gate, stage-a-test-1, sgl-kernel-build-wheels] if: | @@ -1047,9 +993,8 @@ jobs: fi IS_BLACKWELL=1 python3 run_suite.py --hw cuda --suite stage-b-test-4-gpu-b200 $CONTINUE_ON_ERROR_FLAG - unit-test-backend-4-gpu: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1101,7 +1046,7 @@ jobs: python3 run_suite.py --suite per-commit-4-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG unit-test-backend-8-gpu-h200: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1159,7 +1104,7 @@ jobs: python3 run_suite.py --suite per-commit-8-gpu-h200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 4 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG unit-test-backend-8-gpu-h20: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1406,7 +1351,7 @@ jobs: python3 -m unittest test_bench_serving.TestBenchServing.test_embeddings_api_batch_scaling performance-test-2-gpu: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1562,7 +1507,7 @@ jobs: python3 -m sglang.test.ci.run_with_retry test_moe_eval_accuracy_large.py unit-test-deepep-4-gpu: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1610,7 +1555,7 @@ jobs: python3 run_suite.py --suite per-commit-4-gpu-deepep $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG unit-test-deepep-8-gpu: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1658,7 +1603,7 @@ jobs: python3 run_suite.py --suite per-commit-8-gpu-h200-deepep $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG unit-test-backend-4-gpu-b200: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200] if: | always() && ( @@ -1711,7 +1656,7 @@ jobs: IS_BLACKWELL=1 python3 run_suite.py --suite per-commit-4-gpu-b200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 --timeout-per-file 1800 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG unit-test-backend-4-gpu-gb200: - needs: [check-changes, call-gate, unit-test-backend-1-gpu, stage-b-test-4-gpu-b200, sgl-kernel-build-wheels-arm] + needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200, sgl-kernel-build-wheels-arm] if: | always() && ( @@ -1784,7 +1729,6 @@ jobs: stage-b-test-large-2-gpu, stage-c-test-large-4-gpu, quantization-test, - unit-test-backend-1-gpu, stage-b-test-4-gpu-b200, unit-test-backend-4-gpu, unit-test-backend-8-gpu-h20, diff --git a/scripts/ci/slash_command_handler.py b/scripts/ci/slash_command_handler.py index 9743e8843..5fa239e16 100644 --- a/scripts/ci/slash_command_handler.py +++ b/scripts/ci/slash_command_handler.py @@ -154,7 +154,6 @@ def handle_rerun_stage( "multimodal-gen-test-1-gpu", "multimodal-gen-test-2-gpu", "quantization-test", - "unit-test-backend-1-gpu", "stage-b-test-4-gpu-b200", "unit-test-backend-4-gpu", "unit-test-backend-8-gpu-h200", diff --git a/test/srt/test_evs.py b/test/registered/vlm/test_evs.py similarity index 93% rename from test/srt/test_evs.py rename to test/registered/vlm/test_evs.py index 7d353d0fd..0b6742a71 100644 --- a/test/srt/test_evs.py +++ b/test/registered/vlm/test_evs.py @@ -3,8 +3,11 @@ from types import SimpleNamespace import pytest +from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.test_utils import run_doctests +register_cuda_ci(est_time=20, suite="stage-b-test-small-1-gpu") + def test_resolve_evs_config(): from sglang.srt.multimodal.evs import EVS, EVSConfig, EVSProcessor diff --git a/test/srt/test_video_utils.py b/test/registered/vlm/test_video_utils.py similarity index 93% rename from test/srt/test_video_utils.py rename to test/registered/vlm/test_video_utils.py index ad7a845d2..a124988e4 100644 --- a/test/srt/test_video_utils.py +++ b/test/registered/vlm/test_video_utils.py @@ -3,6 +3,9 @@ from dataclasses import dataclass import pytest from sglang.srt.utils import sample_video_frames +from sglang.test.ci.ci_register import register_cpu_ci + +register_cpu_ci(est_time=5, suite="stage-a-cpu-only") class DummyVideo: diff --git a/test/srt/run_suite.py b/test/srt/run_suite.py index add18b8ff..4676be856 100644 --- a/test/srt/run_suite.py +++ b/test/srt/run_suite.py @@ -8,10 +8,6 @@ from sglang.test.ci.ci_utils import TestFile, run_unittest_files # NOTE: please sort the test cases alphabetically by the test file name suites = { - "per-commit-1-gpu": [ - TestFile("test_evs.py", 20), - TestFile("test_video_utils.py", 5), - ], "per-commit-4-gpu": [ TestFile("models/test_qwen3_next_models.py", 650), TestFile("test_gpt_oss_4gpu.py", 300), @@ -91,7 +87,6 @@ suite_amd = { TestFile("test_rope_rocm.py", 3), # TestFile("test_torch_compile_moe.py", 210), # Disabled temporarily, see https://github.com/sgl-project/sglang/issues/13107 TestFile("test_type_based_dispatcher.py", 10), - TestFile("test_video_utils.py", 8), # Disabled temporarily # TestFile("test_vlm_input_format.py", 300), # TestFile("openai_server/features/test_openai_server_hidden_states.py", 240),