diff --git a/.github/workflows/pr-test-xeon.yml b/.github/workflows/pr-test-xeon.yml index 3c7ae2bf4..b2c8d0fa3 100644 --- a/.github/workflows/pr-test-xeon.yml +++ b/.github/workflows/pr-test-xeon.yml @@ -29,10 +29,18 @@ jobs: runs-on: ubuntu-latest outputs: main_package: ${{ steps.filter.outputs.main_package || steps.run-mode.outputs.run_all_tests}} + env: + PYTHONDONTWRITEBYTECODE: 1 steps: + - name: clean up + run: | + sudo rm -rf ${{ github.workspace }} || true + sudo mkdir -p ${{ github.workspace }} + sudo chown -R $(id -u):$(id -g) ${{ github.workspace }} - name: Checkout code uses: actions/checkout@v4 with: + clean: false ref: ${{ inputs.ref || github.ref }} - name: Determine run mode @@ -72,16 +80,27 @@ jobs: build-test: needs: [check-changes, pr-gate] if: needs.check-changes.outputs.main_package == 'true' - runs-on: xeon-gnr - env: - HF_HOME: /home/sdp/.cache/huggingface + runs-on: ${{ matrix.runner }} + strategy: matrix: - build_type: ['all'] + include: + - runner: xeon-gnr + suite: base-b-test-cpu + partition_args: "--auto-partition-id 0 --auto-partition-size 2" + - runner: xeon-gnr + suite: base-b-test-cpu + partition_args: "--auto-partition-id 1 --auto-partition-size 2" steps: + - name: Cleanup workspace + run: | + sudo rm -rf ${{ github.workspace }} || true + sudo mkdir -p ${{ github.workspace }} + sudo chown $(id -u):$(id -g) ${{ github.workspace }} - name: Checkout repository uses: actions/checkout@v4 with: + clean: false ref: ${{ inputs.ref || github.ref }} - name: Build and Push @@ -100,27 +119,28 @@ jobs: run: | docker run -dt \ -v ${{ github.workspace }}:/sglang-checkout/ --ipc=host \ - -v ${HF_HOME}:/root/.cache/huggingface \ - --name ci_sglang_xeon \ + -v $HOME/.cache/huggingface:/root/.cache/huggingface \ + -e HF_TOKEN="$(cat ~/huggingface_token.txt)" \ + --name ci_sglang_${{ matrix.runner }} \ sglang_xeon - name: Check AMX support id: check_amx timeout-minutes: 5 run: | - docker exec -w /sglang-checkout/ ci_sglang_xeon \ + docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.runner }} \ bash -c "source /opt/.venv/bin/activate && python3 -c 'import torch; import sgl_kernel; assert torch._C._cpu._is_amx_tile_supported(); assert hasattr(torch.ops.sgl_kernel, \"convert_weight_packed\"); '" - name: Run unit tests timeout-minutes: 36 run: | - docker exec -w /sglang-checkout/ ci_sglang_xeon \ - bash -c "source /opt/.venv/bin/activate && cd ./test && python3 run_suite.py --hw cpu --suite base-b-test-cpu" + docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.runner }} \ + bash -c "source /opt/.venv/bin/activate && cd ./test && python3 run_suite.py --hw cpu --suite ${{ matrix.suite }} ${{ matrix.partition_args }}" - name: Change permission timeout-minutes: 2 run: | - docker exec -u root ci_sglang_xeon bash -c " + docker exec -u root ci_sglang_${{ matrix.runner }} bash -c " rm -rf /tmp/ci-home && chown -R $(id -u):$(id -g) /sglang-checkout/ 2>/dev/null || true " @@ -128,4 +148,4 @@ jobs: - name: Cleanup container if: always() run: | - docker rm -f ci_sglang_xeon || true + docker rm -f ci_sglang_${{ matrix.runner }} || true diff --git a/test/registered/bench_fn/test_benchmark_datasets_api.py b/test/registered/bench_fn/test_benchmark_datasets_api.py index 395f9d399..852a290f6 100644 --- a/test/registered/bench_fn/test_benchmark_datasets_api.py +++ b/test/registered/bench_fn/test_benchmark_datasets_api.py @@ -27,6 +27,7 @@ from sglang.benchmark.datasets.sharegpt import sample_sharegpt_requests from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class _DummyTokenTensor: diff --git a/test/registered/debug_utils/comparator/aligner/entrypoint/test_executor.py b/test/registered/debug_utils/comparator/aligner/entrypoint/test_executor.py index e6b178742..56ecb07d6 100644 --- a/test/registered/debug_utils/comparator/aligner/entrypoint/test_executor.py +++ b/test/registered/debug_utils/comparator/aligner/entrypoint/test_executor.py @@ -34,6 +34,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestExecuteSubPlans: diff --git a/test/registered/debug_utils/comparator/aligner/entrypoint/test_planner.py b/test/registered/debug_utils/comparator/aligner/entrypoint/test_planner.py index 5cf4917d6..5777a16e4 100644 --- a/test/registered/debug_utils/comparator/aligner/entrypoint/test_planner.py +++ b/test/registered/debug_utils/comparator/aligner/entrypoint/test_planner.py @@ -26,6 +26,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _make_meta( diff --git a/test/registered/debug_utils/comparator/aligner/reorderer/test_executor.py b/test/registered/debug_utils/comparator/aligner/reorderer/test_executor.py index 961202fc7..fa0f1ff97 100644 --- a/test/registered/debug_utils/comparator/aligner/reorderer/test_executor.py +++ b/test/registered/debug_utils/comparator/aligner/reorderer/test_executor.py @@ -27,6 +27,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _zigzag_order(cp_size: int) -> list[int]: diff --git a/test/registered/debug_utils/comparator/aligner/reorderer/test_planner.py b/test/registered/debug_utils/comparator/aligner/reorderer/test_planner.py index 5337373b9..2f8a121e4 100644 --- a/test/registered/debug_utils/comparator/aligner/reorderer/test_planner.py +++ b/test/registered/debug_utils/comparator/aligner/reorderer/test_planner.py @@ -27,6 +27,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestComputeReordererPlans: diff --git a/test/registered/debug_utils/comparator/aligner/test_axis_aligner.py b/test/registered/debug_utils/comparator/aligner/test_axis_aligner.py index 279f57dc3..9babfe87d 100644 --- a/test/registered/debug_utils/comparator/aligner/test_axis_aligner.py +++ b/test/registered/debug_utils/comparator/aligner/test_axis_aligner.py @@ -18,6 +18,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestComputeAxisAlignerPlan: diff --git a/test/registered/debug_utils/comparator/aligner/token_aligner/test_aux_plugins.py b/test/registered/debug_utils/comparator/aligner/token_aligner/test_aux_plugins.py index 1d5df4503..71cd53c51 100644 --- a/test/registered/debug_utils/comparator/aligner/token_aligner/test_aux_plugins.py +++ b/test/registered/debug_utils/comparator/aligner/token_aligner/test_aux_plugins.py @@ -17,6 +17,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") _sglang_plugin = _SGLangPlugin() _megatron_plugin = _MegatronPlugin() diff --git a/test/registered/debug_utils/comparator/aligner/token_aligner/test_concat_steps.py b/test/registered/debug_utils/comparator/aligner/token_aligner/test_concat_steps.py index 4e14738d2..ff194cb2c 100644 --- a/test/registered/debug_utils/comparator/aligner/token_aligner/test_concat_steps.py +++ b/test/registered/debug_utils/comparator/aligner/token_aligner/test_concat_steps.py @@ -11,6 +11,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestExecuteConcat: diff --git a/test/registered/debug_utils/comparator/aligner/token_aligner/test_executor.py b/test/registered/debug_utils/comparator/aligner/token_aligner/test_executor.py index e0a06c6f3..8dc3b083a 100644 --- a/test/registered/debug_utils/comparator/aligner/token_aligner/test_executor.py +++ b/test/registered/debug_utils/comparator/aligner/token_aligner/test_executor.py @@ -30,6 +30,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _named(tensor: torch.Tensor, names: list[str]) -> torch.Tensor: diff --git a/test/registered/debug_utils/comparator/aligner/token_aligner/test_planner.py b/test/registered/debug_utils/comparator/aligner/token_aligner/test_planner.py index 7eb13615c..eecbc9ceb 100644 --- a/test/registered/debug_utils/comparator/aligner/token_aligner/test_planner.py +++ b/test/registered/debug_utils/comparator/aligner/token_aligner/test_planner.py @@ -24,6 +24,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=30, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestBuildTokenIndexSGLangThd: diff --git a/test/registered/debug_utils/comparator/aligner/unsharder/test_executor.py b/test/registered/debug_utils/comparator/aligner/unsharder/test_executor.py index aea5950d0..f15fb7caa 100644 --- a/test/registered/debug_utils/comparator/aligner/unsharder/test_executor.py +++ b/test/registered/debug_utils/comparator/aligner/unsharder/test_executor.py @@ -31,6 +31,7 @@ from sglang.srt.debug_utils.comparator.output_types import ReplicatedCheckResult from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _name_tensors( diff --git a/test/registered/debug_utils/comparator/aligner/unsharder/test_parallel_info.py b/test/registered/debug_utils/comparator/aligner/unsharder/test_parallel_info.py index 0b359af8a..81bc6062a 100644 --- a/test/registered/debug_utils/comparator/aligner/unsharder/test_parallel_info.py +++ b/test/registered/debug_utils/comparator/aligner/unsharder/test_parallel_info.py @@ -10,6 +10,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestNormalizeParallelInfo: diff --git a/test/registered/debug_utils/comparator/aligner/unsharder/test_planner.py b/test/registered/debug_utils/comparator/aligner/unsharder/test_planner.py index 9bd14465f..d8fbc8fd6 100644 --- a/test/registered/debug_utils/comparator/aligner/unsharder/test_planner.py +++ b/test/registered/debug_utils/comparator/aligner/unsharder/test_planner.py @@ -20,6 +20,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis, parse_dims from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestComputeUnsharderPlan: diff --git a/test/registered/debug_utils/comparator/dims_spec/test_dim_parser.py b/test/registered/debug_utils/comparator/dims_spec/test_dim_parser.py index caddbd698..10a24a0ea 100644 --- a/test/registered/debug_utils/comparator/dims_spec/test_dim_parser.py +++ b/test/registered/debug_utils/comparator/dims_spec/test_dim_parser.py @@ -13,6 +13,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestParseDim: diff --git a/test/registered/debug_utils/comparator/dims_spec/test_dims_parser.py b/test/registered/debug_utils/comparator/dims_spec/test_dims_parser.py index 4aa05f99d..965b1dd1c 100644 --- a/test/registered/debug_utils/comparator/dims_spec/test_dims_parser.py +++ b/test/registered/debug_utils/comparator/dims_spec/test_dims_parser.py @@ -16,6 +16,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestSingletonDimUtilFilterOut: diff --git a/test/registered/debug_utils/comparator/dims_spec/test_tensor_naming.py b/test/registered/debug_utils/comparator/dims_spec/test_tensor_naming.py index e5415d368..fb2f5bf5a 100644 --- a/test/registered/debug_utils/comparator/dims_spec/test_tensor_naming.py +++ b/test/registered/debug_utils/comparator/dims_spec/test_tensor_naming.py @@ -15,6 +15,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestFindDimIndex: diff --git a/test/registered/debug_utils/comparator/dims_spec/test_types.py b/test/registered/debug_utils/comparator/dims_spec/test_types.py index 30289eed4..6752fc940 100644 --- a/test/registered/debug_utils/comparator/dims_spec/test_types.py +++ b/test/registered/debug_utils/comparator/dims_spec/test_types.py @@ -10,6 +10,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestDimConstants: diff --git a/test/registered/debug_utils/comparator/tensor_comparator/test_comparator.py b/test/registered/debug_utils/comparator/tensor_comparator/test_comparator.py index 754f42bba..7e6c26212 100644 --- a/test/registered/debug_utils/comparator/tensor_comparator/test_comparator.py +++ b/test/registered/debug_utils/comparator/tensor_comparator/test_comparator.py @@ -15,6 +15,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import DiffInfo from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=20, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestComputeTensorInfo: diff --git a/test/registered/debug_utils/comparator/tensor_comparator/test_types.py b/test/registered/debug_utils/comparator/tensor_comparator/test_types.py index a7c9df2b2..6d5b33046 100644 --- a/test/registered/debug_utils/comparator/tensor_comparator/test_types.py +++ b/test/registered/debug_utils/comparator/tensor_comparator/test_types.py @@ -22,6 +22,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _make_stats(**overrides) -> TensorStats: diff --git a/test/registered/debug_utils/comparator/test_log_sink.py b/test/registered/debug_utils/comparator/test_log_sink.py index d825528f8..624f755bf 100644 --- a/test/registered/debug_utils/comparator/test_log_sink.py +++ b/test/registered/debug_utils/comparator/test_log_sink.py @@ -12,6 +12,7 @@ from sglang.srt.debug_utils.comparator.report_sink import report_sink from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") def _make_error_log(**overrides) -> ErrorLog: diff --git a/test/registered/debug_utils/comparator/test_meta_overrider.py b/test/registered/debug_utils/comparator/test_meta_overrider.py index 517f8d5ce..73e1cdf1d 100644 --- a/test/registered/debug_utils/comparator/test_meta_overrider.py +++ b/test/registered/debug_utils/comparator/test_meta_overrider.py @@ -17,6 +17,7 @@ from sglang.srt.debug_utils.comparator.meta_overrider import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") # ───────────────────── Unit: MetaOverrideRule ───────────────────── diff --git a/test/registered/debug_utils/comparator/test_model_validation.py b/test/registered/debug_utils/comparator/test_model_validation.py index cbbe9d289..e8ea309fe 100644 --- a/test/registered/debug_utils/comparator/test_model_validation.py +++ b/test/registered/debug_utils/comparator/test_model_validation.py @@ -45,6 +45,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair, _check_equal_lengths from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestCheckEqualLengths: diff --git a/test/registered/debug_utils/comparator/test_preset.py b/test/registered/debug_utils/comparator/test_preset.py index b7308b840..cce2c91e4 100644 --- a/test/registered/debug_utils/comparator/test_preset.py +++ b/test/registered/debug_utils/comparator/test_preset.py @@ -4,6 +4,7 @@ from sglang.srt.debug_utils.comparator.preset import PRESETS, expand_preset from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestExpandPreset: diff --git a/test/registered/debug_utils/comparator/test_utils.py b/test/registered/debug_utils/comparator/test_utils.py index 9e43c70ae..c6710d650 100644 --- a/test/registered/debug_utils/comparator/test_utils.py +++ b/test/registered/debug_utils/comparator/test_utils.py @@ -18,6 +18,7 @@ from sglang.srt.debug_utils.comparator.utils import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=1, suite="base-b-test-cpu") class TestCalcRelDiff: diff --git a/test/registered/debug_utils/source_patcher/test_code_patcher.py b/test/registered/debug_utils/source_patcher/test_code_patcher.py index 2e33ee7fb..ef076f1d2 100644 --- a/test/registered/debug_utils/source_patcher/test_code_patcher.py +++ b/test/registered/debug_utils/source_patcher/test_code_patcher.py @@ -11,6 +11,7 @@ from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchSpec from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=7, suite="base-b-test-cpu") SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module" diff --git a/test/registered/debug_utils/source_patcher/test_dumper_integration.py b/test/registered/debug_utils/source_patcher/test_dumper_integration.py index ef5872979..9197cebe6 100644 --- a/test/registered/debug_utils/source_patcher/test_dumper_integration.py +++ b/test/registered/debug_utils/source_patcher/test_dumper_integration.py @@ -9,6 +9,7 @@ from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=8, suite="base-b-test-cpu") SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module" diff --git a/test/registered/debug_utils/source_patcher/test_source_editor.py b/test/registered/debug_utils/source_patcher/test_source_editor.py index 69d8d4951..41ba3904f 100644 --- a/test/registered/debug_utils/source_patcher/test_source_editor.py +++ b/test/registered/debug_utils/source_patcher/test_source_editor.py @@ -6,6 +6,7 @@ from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchApplicati from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestApplyEdits: diff --git a/test/registered/debug_utils/test_crash_dump.py b/test/registered/debug_utils/test_crash_dump.py index 0461a4861..1137899f6 100644 --- a/test/registered/debug_utils/test_crash_dump.py +++ b/test/registered/debug_utils/test_crash_dump.py @@ -9,7 +9,11 @@ import requests from sglang.srt.environ import envs from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import ( DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, DEFAULT_URL_FOR_TEST, @@ -19,6 +23,7 @@ from sglang.test.test_utils import ( register_cuda_ci(est_time=40, suite="nightly-1-gpu", nightly=True) register_amd_ci(est_time=40, suite="nightly-amd-1-gpu", nightly=True) +register_cpu_ci(est_time=225, suite="base-b-test-cpu") class TestCrashDump(CustomTestCase): diff --git a/test/registered/debug_utils/test_schedule_simulator.py b/test/registered/debug_utils/test_schedule_simulator.py index be82ed38c..ca05cb77b 100644 --- a/test/registered/debug_utils/test_schedule_simulator.py +++ b/test/registered/debug_utils/test_schedule_simulator.py @@ -26,7 +26,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=120, suite="base-a-test-cpu", nightly=True) - +register_cpu_ci(est_time=338, suite="base-b-test-cpu") # ==================== Non-E2E Tests ==================== diff --git a/test/registered/debug_utils/test_soft_watchdog.py b/test/registered/debug_utils/test_soft_watchdog.py index c18efda19..d6020b81f 100644 --- a/test/registered/debug_utils/test_soft_watchdog.py +++ b/test/registered/debug_utils/test_soft_watchdog.py @@ -5,7 +5,11 @@ import requests from sglang.srt.environ import envs from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import ( DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, DEFAULT_URL_FOR_TEST, @@ -15,6 +19,7 @@ from sglang.test.test_utils import ( register_cuda_ci(est_time=120, suite="nightly-1-gpu", nightly=True) register_amd_ci(est_time=120, suite="nightly-amd-1-gpu", nightly=True) +register_cpu_ci(est_time=622, suite="base-b-test-cpu") class BaseTestSoftWatchdog: diff --git a/test/registered/function_call/test_kimik2_detector.py b/test/registered/function_call/test_kimik2_detector.py index 7352472cb..ee1cccf16 100644 --- a/test/registered/function_call/test_kimik2_detector.py +++ b/test/registered/function_call/test_kimik2_detector.py @@ -12,6 +12,7 @@ from sglang.srt.parser.reasoning_parser import KimiK2Detector as KimiK2Reasoning from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(5, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") def _make_tool(name, parameters=None): diff --git a/test/registered/lora/test_lora_eviction_policy.py b/test/registered/lora/test_lora_eviction_policy.py index 4d0f5cd3e..3d70e2d45 100644 --- a/test/registered/lora/test_lora_eviction_policy.py +++ b/test/registered/lora/test_lora_eviction_policy.py @@ -20,10 +20,15 @@ Tests LRU and FIFO eviction behavior. import unittest from sglang.srt.lora.eviction_policy import get_eviction_policy -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) register_cuda_ci(est_time=200, suite="nightly-1-gpu", nightly=True) register_amd_ci(est_time=200, suite="nightly-amd-1-gpu", nightly=True) +register_cpu_ci(est_time=6, suite="base-b-test-cpu") class TestLoRAEvictionPolicy(unittest.TestCase): diff --git a/test/registered/lora/test_lora_openai_api.py b/test/registered/lora/test_lora_openai_api.py index 69b2e6e3c..1ccf23262 100644 --- a/test/registered/lora/test_lora_openai_api.py +++ b/test/registered/lora/test_lora_openai_api.py @@ -10,10 +10,15 @@ from unittest.mock import MagicMock from sglang.srt.entrypoints.openai.serving_base import OpenAIServingBase from sglang.srt.server_args import ServerArgs -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) register_cuda_ci(est_time=30, suite="nightly-1-gpu", nightly=True) register_amd_ci(est_time=30, suite="nightly-amd-1-gpu", nightly=True) +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class MockTokenizerManager: diff --git a/test/registered/model_loading/test_external_models.py b/test/registered/model_loading/test_external_models.py index 59bef0663..e6f5a7ec7 100644 --- a/test/registered/model_loading/test_external_models.py +++ b/test/registered/model_loading/test_external_models.py @@ -2,11 +2,16 @@ import unittest import sglang as sgl from sglang.srt.environ import envs -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import CustomTestCase register_cuda_ci(est_time=29, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=45, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=203, suite="base-b-test-cpu") class TestExternalModels(CustomTestCase): diff --git a/test/registered/models/test_transformers_backend_eval.py b/test/registered/models/test_transformers_backend_eval.py index 47a348848..827bb73f3 100644 --- a/test/registered/models/test_transformers_backend_eval.py +++ b/test/registered/models/test_transformers_backend_eval.py @@ -3,11 +3,12 @@ import unittest from types import SimpleNamespace -from sglang.test.ci.ci_register import register_cuda_ci +from sglang.test.ci.ci_register import register_cpu_ci, register_cuda_ci from sglang.test.few_shot_gsm8k import run_eval from sglang.test.server_fixtures.default_fixture import DefaultServerBase register_cuda_ci(est_time=48, stage="base-b", runner_config="1-gpu-small") +register_cpu_ci(est_time=320, suite="base-b-test-cpu") class TestTransformersBackendEval(DefaultServerBase): diff --git a/test/registered/observability/test_priority_metrics.py b/test/registered/observability/test_priority_metrics.py index 0178d3006..d6972698c 100644 --- a/test/registered/observability/test_priority_metrics.py +++ b/test/registered/observability/test_priority_metrics.py @@ -8,7 +8,11 @@ from prometheus_client.samples import Sample from sglang.srt.observability.metrics_collector import QueueCount from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import ( DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, DEFAULT_URL_FOR_TEST, @@ -22,6 +26,7 @@ register_cuda_ci( runner_config="1-gpu-small", ) register_amd_ci(est_time=60, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=179, suite="base-b-test-cpu") _MODEL_NAME = "Qwen/Qwen3-0.6B" diff --git a/test/registered/quant/test_quant_config_parsing.py b/test/registered/quant/test_quant_config_parsing.py index ee30eebd0..e1597b8da 100644 --- a/test/registered/quant/test_quant_config_parsing.py +++ b/test/registered/quant/test_quant_config_parsing.py @@ -6,6 +6,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=15, suite="base-a-test-cpu") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestQuantLogString(CustomTestCase): diff --git a/test/registered/rl/test_pause_generation_tensor_consistency.py b/test/registered/rl/test_pause_generation_tensor_consistency.py index 5c1f54032..45d4950cd 100644 --- a/test/registered/rl/test_pause_generation_tensor_consistency.py +++ b/test/registered/rl/test_pause_generation_tensor_consistency.py @@ -10,6 +10,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") # --------------------------------------------------------------------------- diff --git a/test/registered/scheduler/test_abort_with_metrics.py b/test/registered/scheduler/test_abort_with_metrics.py index 17d875b4c..4ff271be0 100644 --- a/test/registered/scheduler/test_abort_with_metrics.py +++ b/test/registered/scheduler/test_abort_with_metrics.py @@ -19,6 +19,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") _HTTP_SCOPE = { "type": "http", diff --git a/test/registered/scheduler/test_routing_key_scheduling.py b/test/registered/scheduler/test_routing_key_scheduling.py index f08a56c18..2e6c487be 100644 --- a/test/registered/scheduler/test_routing_key_scheduling.py +++ b/test/registered/scheduler/test_routing_key_scheduling.py @@ -6,7 +6,11 @@ import unittest import aiohttp from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import ( DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, DEFAULT_URL_FOR_TEST, @@ -18,6 +22,7 @@ from sglang.test.test_utils import ( register_cuda_ci(est_time=120, suite="nightly-1-gpu", nightly=True) register_amd_ci(est_time=120, suite="nightly-amd-1-gpu", nightly=True) +register_cpu_ci(est_time=184, suite="base-b-test-cpu") class TestRoutingKeyScheduling(CustomTestCase): diff --git a/test/registered/unit/constrained/test_grammar_manager.py b/test/registered/unit/constrained/test_grammar_manager.py index e7605ee44..1358dfd5d 100644 --- a/test/registered/unit/constrained/test_grammar_manager.py +++ b/test/registered/unit/constrained/test_grammar_manager.py @@ -28,6 +28,7 @@ from sglang.srt.constrained.reasoner_grammar_backend import ReasonerGrammarObjec from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(2.0, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") def _make_scheduler(grammar_backend_name="none", skip_tokenizer=False): diff --git a/test/registered/unit/constrained/test_reasoner_grammar_backend.py b/test/registered/unit/constrained/test_reasoner_grammar_backend.py index 48b8a79f8..13d122dee 100644 --- a/test/registered/unit/constrained/test_reasoner_grammar_backend.py +++ b/test/registered/unit/constrained/test_reasoner_grammar_backend.py @@ -16,6 +16,7 @@ from sglang.srt.constrained.torch_ops.token_filter_torch_ops import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(2.0, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class _DummyTokenizer: diff --git a/test/registered/unit/constrained/test_utils.py b/test/registered/unit/constrained/test_utils.py index 51ca4470f..eba586fdd 100644 --- a/test/registered/unit/constrained/test_utils.py +++ b/test/registered/unit/constrained/test_utils.py @@ -15,6 +15,7 @@ from sglang.srt.constrained.utils import is_legacy_structural_tag from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(1.0, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestIsLegacyStructuralTag(unittest.TestCase): diff --git a/test/registered/unit/entrypoints/openai/test_serving_embedding.py b/test/registered/unit/entrypoints/openai/test_serving_embedding.py index 02c4cbe17..ec939f82b 100644 --- a/test/registered/unit/entrypoints/openai/test_serving_embedding.py +++ b/test/registered/unit/entrypoints/openai/test_serving_embedding.py @@ -57,6 +57,7 @@ from sglang.srt.managers.io_struct import EmbeddingReqInput from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=10, suite="base-a-test-cpu") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") # Mock TokenizerManager for embedding tests diff --git a/test/registered/unit/function_call/test_function_call_parser.py b/test/registered/unit/function_call/test_function_call_parser.py index 9390ca4a8..188b928e9 100644 --- a/test/registered/unit/function_call/test_function_call_parser.py +++ b/test/registered/unit/function_call/test_function_call_parser.py @@ -32,6 +32,7 @@ from sglang.srt.function_call.qwen3_coder_detector import Qwen3CoderDetector from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=15, suite="base-a-test-cpu") +register_cpu_ci(est_time=61, suite="base-b-test-cpu") class TestPythonicDetector(unittest.TestCase): diff --git a/test/registered/unit/function_call/test_json_schema_constraint.py b/test/registered/unit/function_call/test_json_schema_constraint.py index 91867709c..0ae82feb2 100644 --- a/test/registered/unit/function_call/test_json_schema_constraint.py +++ b/test/registered/unit/function_call/test_json_schema_constraint.py @@ -19,6 +19,7 @@ from sglang.srt.function_call.utils import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(5, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestJsonSchemaConstraint(unittest.TestCase): diff --git a/test/registered/unit/function_call/test_parallel_tool_calls.py b/test/registered/unit/function_call/test_parallel_tool_calls.py index f090d1336..53e8b200f 100644 --- a/test/registered/unit/function_call/test_parallel_tool_calls.py +++ b/test/registered/unit/function_call/test_parallel_tool_calls.py @@ -24,6 +24,7 @@ from sglang.srt.function_call.json_array_parser import JsonArrayParser from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(5, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestParallelToolCalls(unittest.TestCase): diff --git a/test/registered/unit/function_call/test_unknown_tool_name.py b/test/registered/unit/function_call/test_unknown_tool_name.py index 4790c8bca..05c603581 100644 --- a/test/registered/unit/function_call/test_unknown_tool_name.py +++ b/test/registered/unit/function_call/test_unknown_tool_name.py @@ -10,6 +10,7 @@ from sglang.srt.function_call.core_types import StreamingParseResult from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(5, "base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class DummyDetector(BaseFormatDetector): diff --git a/test/registered/unit/managers/test_io_struct.py b/test/registered/unit/managers/test_io_struct.py index d9a3b86cd..83e76e4eb 100644 --- a/test/registered/unit/managers/test_io_struct.py +++ b/test/registered/unit/managers/test_io_struct.py @@ -2,7 +2,11 @@ import copy import unittest from sglang.srt.managers.io_struct import GenerateReqInput -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import ( DEFAULT_SMALL_MODEL_NAME_FOR_TEST, DEFAULT_URL_FOR_TEST, @@ -11,6 +15,7 @@ from sglang.test.test_utils import ( register_cuda_ci(est_time=8, stage="base-b", runner_config="1-gpu-large") register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestGenerateReqInputNormalization(CustomTestCase): diff --git a/test/registered/unit/managers/test_prefill_adder.py b/test/registered/unit/managers/test_prefill_adder.py index c5c51ee06..050f96f78 100644 --- a/test/registered/unit/managers/test_prefill_adder.py +++ b/test/registered/unit/managers/test_prefill_adder.py @@ -9,11 +9,16 @@ from sglang.srt.mem_cache.base_prefix_cache import ( IncLockRefResult, ) from sglang.srt.server_args import ServerArgs, set_global_server_args_for_scheduler -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import CustomTestCase register_cuda_ci(est_time=9, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=2, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestPrefillAdder(CustomTestCase): diff --git a/test/registered/unit/managers/test_profile_merger_http_api.py b/test/registered/unit/managers/test_profile_merger_http_api.py index e06fb7a79..92aebef3e 100644 --- a/test/registered/unit/managers/test_profile_merger_http_api.py +++ b/test/registered/unit/managers/test_profile_merger_http_api.py @@ -2,10 +2,15 @@ import json import unittest from sglang.srt.managers.io_struct import ProfileReqInput -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) register_cuda_ci(est_time=8, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=9, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestProfileMergerHTTPAPI(unittest.TestCase): diff --git a/test/registered/unit/managers/test_scheduler_flush_cache.py b/test/registered/unit/managers/test_scheduler_flush_cache.py index 9a99cb309..2e11f89c0 100644 --- a/test/registered/unit/managers/test_scheduler_flush_cache.py +++ b/test/registered/unit/managers/test_scheduler_flush_cache.py @@ -13,6 +13,7 @@ from sglang.srt.managers.scheduler_components.flush_wrapper import ( ) register_cpu_ci(est_time=14, suite="base-a-test-cpu") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestSchedulerFlushCache(unittest.TestCase): diff --git a/test/registered/unit/managers/test_scheduler_pause_generation.py b/test/registered/unit/managers/test_scheduler_pause_generation.py index 2769f8a7a..170e8bac0 100644 --- a/test/registered/unit/managers/test_scheduler_pause_generation.py +++ b/test/registered/unit/managers/test_scheduler_pause_generation.py @@ -12,6 +12,7 @@ from sglang.srt.managers.scheduler import Scheduler from sglang.srt.managers.scheduler_components.pool_stats_observer import PoolStats register_cpu_ci(est_time=15, suite="base-a-test-cpu") +register_cpu_ci(est_time=9, suite="base-b-test-cpu") class TestSchedulerPauseGeneration(unittest.TestCase): diff --git a/test/registered/unit/mem_cache/test_evict_policy.py b/test/registered/unit/mem_cache/test_evict_policy.py index 643dc0bd7..ddcb6b5e4 100644 --- a/test/registered/unit/mem_cache/test_evict_policy.py +++ b/test/registered/unit/mem_cache/test_evict_policy.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import unittest from unittest.mock import MagicMock diff --git a/test/registered/unit/mem_cache/test_radix_cache_slru_accuracy.py b/test/registered/unit/mem_cache/test_radix_cache_slru_accuracy.py index c6f2c7676..141360006 100644 --- a/test/registered/unit/mem_cache/test_radix_cache_slru_accuracy.py +++ b/test/registered/unit/mem_cache/test_radix_cache_slru_accuracy.py @@ -12,10 +12,15 @@ from sglang.srt.mem_cache.base_prefix_cache import ( from sglang.srt.mem_cache.cache_init_params import CacheInitParams from sglang.srt.mem_cache.memory_pool import MHATokenToKVPool, ReqToTokenPool from sglang.srt.mem_cache.radix_cache import RadixCache, RadixKey -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) register_cuda_ci(est_time=8, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestSLRUAccuracy(unittest.TestCase): diff --git a/test/registered/unit/models/test_llava.py b/test/registered/unit/models/test_llava.py index 58f4a5c59..22582f945 100644 --- a/test/registered/unit/models/test_llava.py +++ b/test/registered/unit/models/test_llava.py @@ -2,11 +2,16 @@ import unittest from unittest.mock import patch from sglang.srt.models.llava import AutoModel, LlavaForConditionalGeneration -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import CustomTestCase register_cuda_ci(est_time=9, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=9, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class PixtralVisionConfig: diff --git a/test/registered/unit/observability/test_cpu_monitor.py b/test/registered/unit/observability/test_cpu_monitor.py index 35eb29771..3c37109ba 100644 --- a/test/registered/unit/observability/test_cpu_monitor.py +++ b/test/registered/unit/observability/test_cpu_monitor.py @@ -7,6 +7,7 @@ from unittest.mock import MagicMock, patch from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=60, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestCpuMonitor(unittest.TestCase): diff --git a/test/registered/unit/observability/test_func_timer.py b/test/registered/unit/observability/test_func_timer.py index 8efd5a773..e87024954 100644 --- a/test/registered/unit/observability/test_func_timer.py +++ b/test/registered/unit/observability/test_func_timer.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import asyncio import unittest diff --git a/test/registered/unit/observability/test_label_transform.py b/test/registered/unit/observability/test_label_transform.py index 321ed6455..94def2381 100644 --- a/test/registered/unit/observability/test_label_transform.py +++ b/test/registered/unit/observability/test_label_transform.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import unittest diff --git a/test/registered/unit/observability/test_metrics_utils.py b/test/registered/unit/observability/test_metrics_utils.py index 0789b120e..5015ded9e 100644 --- a/test/registered/unit/observability/test_metrics_utils.py +++ b/test/registered/unit/observability/test_metrics_utils.py @@ -7,6 +7,7 @@ from sglang.srt.observability.utils import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestMetricsUtils(unittest.TestCase): diff --git a/test/registered/unit/observability/test_request_metrics_exporter.py b/test/registered/unit/observability/test_request_metrics_exporter.py index d481032ae..3794d4670 100644 --- a/test/registered/unit/observability/test_request_metrics_exporter.py +++ b/test/registered/unit/observability/test_request_metrics_exporter.py @@ -6,6 +6,7 @@ from typing import Any, Dict, List, Optional from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import asyncio import json diff --git a/test/registered/unit/observability/test_startup_func_log_and_timer.py b/test/registered/unit/observability/test_startup_func_log_and_timer.py index 2eae0172b..e01cca1c3 100644 --- a/test/registered/unit/observability/test_startup_func_log_and_timer.py +++ b/test/registered/unit/observability/test_startup_func_log_and_timer.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import unittest from unittest.mock import MagicMock, patch diff --git a/test/registered/unit/parser/test_code_completion_parser.py b/test/registered/unit/parser/test_code_completion_parser.py index 334e89476..46fedcebc 100644 --- a/test/registered/unit/parser/test_code_completion_parser.py +++ b/test/registered/unit/parser/test_code_completion_parser.py @@ -19,6 +19,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestFimPosition(CustomTestCase): diff --git a/test/registered/unit/parser/test_conversation.py b/test/registered/unit/parser/test_conversation.py index 3cb8a65d0..98c3a8bc5 100644 --- a/test/registered/unit/parser/test_conversation.py +++ b/test/registered/unit/parser/test_conversation.py @@ -33,6 +33,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestConversationGetPrompt(CustomTestCase): diff --git a/test/registered/unit/parser/test_harmony_parser.py b/test/registered/unit/parser/test_harmony_parser.py index da22fa4bb..d466ed1c5 100644 --- a/test/registered/unit/parser/test_harmony_parser.py +++ b/test/registered/unit/parser/test_harmony_parser.py @@ -15,6 +15,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestEvent(CustomTestCase): diff --git a/test/registered/unit/parser/test_jinja_template_utils.py b/test/registered/unit/parser/test_jinja_template_utils.py index 791c53446..34b2dfacc 100644 --- a/test/registered/unit/parser/test_jinja_template_utils.py +++ b/test/registered/unit/parser/test_jinja_template_utils.py @@ -10,6 +10,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestTemplateContentFormatDetection(CustomTestCase): diff --git a/test/registered/unit/parser/test_reasoning_content_without_parser.py b/test/registered/unit/parser/test_reasoning_content_without_parser.py index 20bb9c221..071d28ce7 100644 --- a/test/registered/unit/parser/test_reasoning_content_without_parser.py +++ b/test/registered/unit/parser/test_reasoning_content_without_parser.py @@ -5,6 +5,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") # Simulated model output that contains think tags (e.g. from DeepSeek-R1) THINK_OUTPUT = ( diff --git a/test/registered/unit/sampling/test_custom_logit_processor.py b/test/registered/unit/sampling/test_custom_logit_processor.py index d02e50f40..b6b44a825 100644 --- a/test/registered/unit/sampling/test_custom_logit_processor.py +++ b/test/registered/unit/sampling/test_custom_logit_processor.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import json import unittest diff --git a/test/registered/unit/sampling/test_penaltylib.py b/test/registered/unit/sampling/test_penaltylib.py index 77130044e..9a5c4d6a1 100644 --- a/test/registered/unit/sampling/test_penaltylib.py +++ b/test/registered/unit/sampling/test_penaltylib.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=9, suite="base-a-test-cpu") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") import unittest from unittest.mock import MagicMock diff --git a/test/registered/unit/sampling/test_sampling_batch_info.py b/test/registered/unit/sampling/test_sampling_batch_info.py index 7bbdfa8a9..adc3bf40f 100644 --- a/test/registered/unit/sampling/test_sampling_batch_info.py +++ b/test/registered/unit/sampling/test_sampling_batch_info.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=9, suite="base-a-test-cpu") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") import unittest from unittest.mock import MagicMock, patch diff --git a/test/registered/unit/sampling/test_sampling_params.py b/test/registered/unit/sampling/test_sampling_params.py index c245c8c72..8d9641894 100644 --- a/test/registered/unit/sampling/test_sampling_params.py +++ b/test/registered/unit/sampling/test_sampling_params.py @@ -3,6 +3,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import unittest from unittest.mock import MagicMock diff --git a/test/registered/unit/server_args/test_server_args.py b/test/registered/unit/server_args/test_server_args.py index fdcea5039..3ec7956ae 100644 --- a/test/registered/unit/server_args/test_server_args.py +++ b/test/registered/unit/server_args/test_server_args.py @@ -12,6 +12,7 @@ from sglang.test.test_utils import ( ) register_cpu_ci(est_time=10, suite="base-a-test-cpu") +register_cpu_ci(est_time=12, suite="base-b-test-cpu") # Mock get_device() so all tests run on CPU-only CI runners _mock_device = patch("sglang.srt.server_args.get_device", return_value="cuda") diff --git a/test/registered/unit/test_runai_utils.py b/test/registered/unit/test_runai_utils.py index 910559f5e..184d5922e 100644 --- a/test/registered/unit/test_runai_utils.py +++ b/test/registered/unit/test_runai_utils.py @@ -7,6 +7,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestRunaiUtils(CustomTestCase): diff --git a/test/registered/unit/utils/test_gauge_histogram.py b/test/registered/unit/utils/test_gauge_histogram.py index d4a355716..a59e3863a 100644 --- a/test/registered/unit/utils/test_gauge_histogram.py +++ b/test/registered/unit/utils/test_gauge_histogram.py @@ -1,6 +1,7 @@ from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") import unittest diff --git a/test/registered/unit/utils/test_http_server_auth.py b/test/registered/unit/utils/test_http_server_auth.py index f2a42101e..f561704bf 100644 --- a/test/registered/unit/utils/test_http_server_auth.py +++ b/test/registered/unit/utils/test_http_server_auth.py @@ -11,6 +11,7 @@ from sglang.srt.utils.auth import AuthLevel, decide_request_auth from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestHttpServerAdminAuth(unittest.TestCase): diff --git a/test/registered/unit/utils/test_json_response.py b/test/registered/unit/utils/test_json_response.py index 6f83290d0..285c9860b 100644 --- a/test/registered/unit/utils/test_json_response.py +++ b/test/registered/unit/utils/test_json_response.py @@ -11,6 +11,7 @@ from sglang.srt.utils.json_response import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestJSONResponseUtils(unittest.TestCase): diff --git a/test/registered/unit/utils/test_patch_tokenizer.py b/test/registered/unit/utils/test_patch_tokenizer.py index 7c11ed8e9..31b9548e6 100644 --- a/test/registered/unit/utils/test_patch_tokenizer.py +++ b/test/registered/unit/utils/test_patch_tokenizer.py @@ -12,6 +12,7 @@ from sglang.srt.utils.patch_tokenizer import ( from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=30, suite="base-a-test-cpu", nightly=True) +register_cpu_ci(est_time=53, suite="base-b-test-cpu") class TestPatchTokenizerEndToEndTest(unittest.TestCase): diff --git a/test/registered/unit/utils/test_profile_merger.py b/test/registered/unit/utils/test_profile_merger.py index 709a34114..eb4cb9bcb 100644 --- a/test/registered/unit/utils/test_profile_merger.py +++ b/test/registered/unit/utils/test_profile_merger.py @@ -15,10 +15,15 @@ import unittest from sglang.srt.managers.io_struct import ProfileReq, ProfileReqInput, ProfileReqType from sglang.srt.utils.profile_merger import ProfileMerger -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) register_cuda_ci(est_time=9, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestProfileMerger(unittest.TestCase): diff --git a/test/registered/unit/utils/test_subprocess_watchdog.py b/test/registered/unit/utils/test_subprocess_watchdog.py index eb3df663f..1a0e394d1 100644 --- a/test/registered/unit/utils/test_subprocess_watchdog.py +++ b/test/registered/unit/utils/test_subprocess_watchdog.py @@ -25,6 +25,7 @@ from sglang.test.ci.ci_register import register_cpu_ci from sglang.test.test_utils import CustomTestCase register_cpu_ci(est_time=9, suite="base-a-test-cpu") +register_cpu_ci(est_time=9, suite="base-b-test-cpu") def healthy_worker(): diff --git a/test/registered/utils/test_log_utils.py b/test/registered/utils/test_log_utils.py index 9ea137e3e..c2af41436 100644 --- a/test/registered/utils/test_log_utils.py +++ b/test/registered/utils/test_log_utils.py @@ -11,6 +11,7 @@ from sglang.srt.utils.log_utils import create_log_targets, log_json from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=6, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") _LOG_PREFIX_RE = re.compile(r"^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] ") diff --git a/test/registered/utils/test_model_file_verifier.py b/test/registered/utils/test_model_file_verifier.py index 11455ba4e..5217612c0 100644 --- a/test/registered/utils/test_model_file_verifier.py +++ b/test/registered/utils/test_model_file_verifier.py @@ -20,7 +20,7 @@ from sglang.srt.utils.model_file_verifier import ( generate_checksums, verify, ) -from sglang.test.ci.ci_register import register_cuda_ci +from sglang.test.ci.ci_register import register_cpu_ci, register_cuda_ci from sglang.test.test_utils import ( DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, DEFAULT_URL_FOR_TEST, @@ -29,6 +29,7 @@ from sglang.test.test_utils import ( # Note: AMD registration removed - test_model_file_verifier fails on AMD register_cuda_ci(est_time=120, suite="nightly-1-gpu", nightly=True) +register_cpu_ci(est_time=540, suite="base-b-test-cpu") MODEL_NAME = "Qwen/Qwen3-0.6B" diff --git a/test/registered/utils/test_network_address.py b/test/registered/utils/test_network_address.py index 2ef628433..6e961ab9f 100644 --- a/test/registered/utils/test_network_address.py +++ b/test/registered/utils/test_network_address.py @@ -7,6 +7,7 @@ from sglang.srt.utils.network import NetworkAddress from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") # Mock get_device() so ServerArgs tests run on CPU-only CI runners _mock_device = patch("sglang.srt.server_args.get_device", return_value="cuda") diff --git a/test/registered/utils/test_socket_utils.py b/test/registered/utils/test_socket_utils.py index 6e1d4b95c..56a4a557f 100644 --- a/test/registered/utils/test_socket_utils.py +++ b/test/registered/utils/test_socket_utils.py @@ -16,6 +16,7 @@ from sglang.test.test_utils import CustomTestCase from sglang.utils import normalize_base_url, release_port, reserve_port register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class TestTryBindSocket(CustomTestCase): diff --git a/test/registered/utils/test_type_based_dispatcher.py b/test/registered/utils/test_type_based_dispatcher.py index 9763f5188..d79e0c8f9 100644 --- a/test/registered/utils/test_type_based_dispatcher.py +++ b/test/registered/utils/test_type_based_dispatcher.py @@ -8,10 +8,11 @@ import timeit import unittest from sglang.srt.managers.io_struct import SamplingParams -from sglang.test.ci.ci_register import register_amd_ci +from sglang.test.ci.ci_register import register_amd_ci, register_cpu_ci from sglang.utils import TypeBasedDispatcher register_amd_ci(est_time=10, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") class TestTypeBasedDispatcher(unittest.TestCase): diff --git a/test/registered/vlm/test_evs.py b/test/registered/vlm/test_evs.py index e2ee1c9e5..f3f21d0b6 100644 --- a/test/registered/vlm/test_evs.py +++ b/test/registered/vlm/test_evs.py @@ -3,11 +3,16 @@ from types import SimpleNamespace import pytest -from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci +from sglang.test.ci.ci_register import ( + register_amd_ci, + register_cpu_ci, + register_cuda_ci, +) from sglang.test.test_utils import run_doctests register_cuda_ci(est_time=11, stage="base-b", runner_config="1-gpu-small") register_amd_ci(est_time=20, suite="stage-b-test-1-gpu-small-amd") +register_cpu_ci(est_time=8, suite="base-b-test-cpu") def test_resolve_evs_config(): diff --git a/test/registered/vlm/test_video_utils.py b/test/registered/vlm/test_video_utils.py index 287845135..33584e59b 100644 --- a/test/registered/vlm/test_video_utils.py +++ b/test/registered/vlm/test_video_utils.py @@ -6,6 +6,7 @@ from sglang.srt.utils import sample_video_frames from sglang.test.ci.ci_register import register_cpu_ci register_cpu_ci(est_time=7, suite="base-a-test-cpu") +register_cpu_ci(est_time=7, suite="base-b-test-cpu") class DummyVideo: diff --git a/test/srt/cpu/test_cpu_graph.py b/test/srt/cpu/test_cpu_graph.py index 7e47c8663..890a83e5e 100644 --- a/test/srt/cpu/test_cpu_graph.py +++ b/test/srt/cpu/test_cpu_graph.py @@ -28,7 +28,7 @@ class TestCPUGraph(CustomTestCase): "--batch-size", "1", "--mem-fraction-static", - "0.05", + "0.5", "--enable-torch-compile", "--torch-compile-max-bs", "2", @@ -55,7 +55,7 @@ class TestCPUGraph(CustomTestCase): "--attention-backend", "intel_amx", "--mem-fraction-static", - "0.05", + "0.5", "--disable-radix", "--trust-remote-code", "--disable-overlap-schedule",