Skip to content

[v1]: Add v1 mirrors for unit tests#380

Open
Ratish1 wants to merge 5 commits intosgl-project:mainfrom
Ratish1:feature/unit-test-v1-migration
Open

[v1]: Add v1 mirrors for unit tests#380
Ratish1 wants to merge 5 commits intosgl-project:mainfrom
Ratish1:feature/unit-test-v1-migration

Conversation

@Ratish1
Copy link
Copy Markdown
Collaborator

@Ratish1 Ratish1 commented May 3, 2026

Motivation

I mirrored the non-Ming bucket-1 unit tests from #335 into the v1 test surface so Stage A v1 CI can protect the equivalent contracts while the v0 tests continue to protect the legacy stack during migration.

Modifications

  • Added v1 mirrors for Qwen3 config, model path resolution, model worker port selection, OpenAI API behavior, registry config discovery, relay backends, stream queue behavior, and video preprocessing.
  • Reworked scheduler coverage for the v1 architecture by testing Coordinator, SimpleScheduler, and OmniScheduler inbox/outbox contracts instead of porting v0 scheduler internals directly.
  • Expanded v1 model-path coverage around preprocessor cache-key context, default context-length rejection, video-audio extraction cache keys, encoder cache reuse, encoder batch deduplication, image encoder cost accounting, and weight-loader refresh behavior.
  • Did not mirror Ming tests in this PR. Ming coverage is left for the codeowners to transfer separately.
  • Left test_mem_fraction_static.py as v0-only because v1 does not currently have the encoder_mem_reserve helper; v1 only has generic mem_fraction_static ServerArgs construction.

Bucket Checklist

Source test Issue bucket V1 status PR action
test_cache_key.py 2 Stage B rewrite around v1 preprocessor cache-key functions Pending Stage B
test_cli_version_dispatch.py 3 v0 shim only; existing v1 guard remains separate v0-only
test_code2wav_executor.py 3 v1 code2wav is scheduler/inbox/outbox v0-only
test_code_predictor_executor.py 3 v1 folds into model code predictor path v0-only
test_direct_model_executor.py 3 no v1 DirectModelExecutor v0-only
test_factory.py config slice 1 Qwen3OmniSpeechPipelineConfig and CLI override helpers; legacy TP rejection becomes v1 explicit GPU-list acceptance plus GPU-count mismatch rejection tests/test_v1_qwen3_config.py
test_factory.py assembly slice 3 no v1 engines.omni.factory counterpart v0-only
test_ipc_runtime_dir.py 2 v1 endpoint allocation changed Pending Stage B
test_mem_fraction_static.py 3 no current v1 encoder_mem_reserve helper; v1 only has generic mem_fraction_static ServerArgs construction v0-only
test_ming_architecture_resolution.py Ming codeowner transfer Not mirrored
test_ming_config.py Ming codeowner transfer Not mirrored
test_ming_tokenizer_loading.py Ming codeowner transfer Not mirrored
test_ming_asr.py 4 / Ming external server script Not mirrored
test_ming_omni_talker.py 4 / Ming real-weight smoke Not mirrored
test_ming_omni_vision_e2e.py 4 / Ming E2E Not mirrored
test_ming_talker_concurrent.py 4 / Ming benchmark script Not mirrored
test_model_path_resolution.py preprocessor/weight/cache/cost groups 1 v1 preprocessor, request builders, encoder stage cache/cost helpers, weight loader tests/test_v1_model_path_resolution.py
test_model_path_resolution.py encoder executor wiring 3 v0 executor layer only v0-only
test_model_worker_ports.py 1 v1 model worker _resolve_nccl_port tests/test_v1_model_worker_ports.py
test_omni_engine.py 3 no v1 engine factory counterpart v0-only
test_openai_api.py 1 v1 OpenAI HTTP surface tests/test_v1_openai_api.py
test_real_code2wav_parity.py 3 no v1 _forward_batch v0-only
test_registry_import_pipeline_configs.py 1 v1 pipeline config discovery tests/test_v1_registry_import_pipeline_configs.py
test_relay_unified.py 1 v1 relay backends tests/test_v1_relay_unified.py
test_relay_unified_multiprocess.py 1 v1 relay multiprocess backends tests/test_v1_relay_unified_multiprocess.py
test_s2pro_streaming.py 3 no v1 streaming vocoder helper layer v0-only
test_scheduler.py 1 v1 Coordinator terminal completion and SimpleScheduler batch-cost contract tests/test_v1_scheduler.py
test_scheduler_streaming.py 1 v1 stream chunk/done/abort handling tests/test_v1_scheduler_streaming.py
test_stream_queue.py 1 v1 StreamQueue import retarget tests/test_v1_stream_queue.py
test_talker_error_propagation.py Ming part Ming bcodeowner transfer Not mirrored
test_talker_error_propagation.py Qwen3 part 3 v1 Qwen3 talker executor module gone v0-only
test_tp_batch_serialization.py 3 v1 TP handled by native SGLang/stage processes v0-only
test_tp_follower.py 3 v1 TP handled by native SGLang/stage processes v0-only
test_tts_playground_client.py 2 Stage B client/audio retarget Pending Stage B
test_tts_playground_streaming.py 2 Stage B client/audio retarget Pending Stage B
test_tts_playground_ui.py 2 Stage B client/audio retarget Pending Stage B
test_video_frontend.py 1 v1 preprocessing/video import retarget tests/test_v1_video_frontend.py

Testing

v1 Tests PASSED

image

@Ratish1 Ratish1 changed the title Add v1 mirrors for Stage A unit tests [v1]: Add v1 mirrors for unit tests May 3, 2026
@Ratish1 Ratish1 added the run-ci Triggers GPU CI workflows label May 3, 2026
@Ratish1 Ratish1 force-pushed the feature/unit-test-v1-migration branch from 658b608 to 282e442 Compare May 3, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-ci Triggers GPU CI workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant