Skip to content

[Test] Add e2e tests for Qwen3-TTS speech endpoint#1206

Merged
Gaohan123 merged 20 commits intovllm-project:mainfrom
linyueqian:test/qwen3-tts-e2e
Feb 10, 2026
Merged

[Test] Add e2e tests for Qwen3-TTS speech endpoint#1206
Gaohan123 merged 20 commits intovllm-project:mainfrom
linyueqian:test/qwen3-tts-e2e

Conversation

@linyueqian
Copy link
Contributor

@linyueqian linyueqian commented Feb 4, 2026

PLEASE FILL IN THE PR DESCRIPTION HERE ENSURING ALL CHECKLIST ITEMS (AT THE BOTTOM) HAVE BEEN CONSIDERED.

Purpose

Add e2e tests for Qwen3-TTS /v1/audio/speech endpoint. The existing unit tests used mocks that didn't match real behavior, allowing bugs like #1159 to slip through undetected.

Also add doc for tts.

Test Plan

pytest tests/e2e/online_serving/test_qwen3_tts.py -v -s

Test Result

Verified the test correctly catches the multimodal_output bug:

  • Without fix (main branch):
    FAILED tests/e2e/online_serving/test_qwen3_tts.py::TestQwen3TTSCustomVoice::test_speech_english_basic
    Server returns {"error":{"message":"TTS model did not produce audio output."}} instead of WAV audio.

  • With fix:
    PASSED - Valid WAV audio returned (87KB, 24000Hz mono)


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft.

BEFORE SUBMITTING, PLEASE READ https://github.com/vllm-project/vllm-omni/blob/main/CONTRIBUTING.md (anything written below this line will be removed by GitHub Actions)

Signed-off-by: linyueqian <linyueqian@outlook.com>
@hsliuustc0106
Copy link
Collaborator

could you please also add the api server endpoint in doc?

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive e2e tests for the Qwen3-TTS model's /v1/audio/speech endpoint. The tests were created in response to bug #1159, where unit tests with mocks didn't catch real behavior issues. The new tests verify actual model inference without mocks.

Changes:

  • Adds e2e tests for Qwen3-TTS CustomVoice and VoiceDesign models
  • Tests /v1/audio/speech, /v1/audio/voices, and /v1/models endpoints
  • Includes regression test for multimodal_output bug that caused "TTS model did not produce audio output" error

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: linyueqian <linyueqian@outlook.com>
@linyueqian
Copy link
Contributor Author

could you please also add the api server endpoint in doc?

OK. I have added that doc.

linyueqian and others added 3 commits February 5, 2026 08:14
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
@hsliuustc0106 hsliuustc0106 added the ready label to trigger buildkite CI label Feb 5, 2026
Signed-off-by: linyueqian <linyueqian@outlook.com>
Copy link
Contributor

@congw729 congw729 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add markers as suggested; more usage could be checked at #577

Signed-off-by: linyueqian <linyueqian@outlook.com>
@linyueqian
Copy link
Contributor Author

Please add markers as suggested; more usage could be checked at #577

Thank you! I have added them.

@hsliuustc0106
Copy link
Collaborator

fix ci please

@linyueqian
Copy link
Contributor Author

fix ci please

Need to merge #1203 first. The test catches that bug so it's expected to fail without it.

@hsliuustc0106
Copy link
Collaborator

fix ci please

Need to merge #1203 first. The test catches that bug so it's expected to fail without it.

merged, fix ci please

linyueqian and others added 3 commits February 8, 2026 17:43
@linyueqian
Copy link
Contributor Author

@hsliuustc0106 Should be fixed now.

@zhumingjue138
Copy link
Contributor

We plan to set the running time (timeout_in_minutes) of daily CI to 10 minutes, Could we preserve only the core code changes in this PR to reduce CI runtime, and move the remaining changes to the nightly CI (.buildkite/test-nightly.yaml)?

Signed-off-by: linyueqian <linyueqian@outlook.com>
@linyueqian
Copy link
Contributor Author

linyueqian commented Feb 9, 2026

We plan to set the running time (timeout_in_minutes) of daily CI to 10 minutes, Could we preserve only the core code changes in this PR to reduce CI runtime, and move the remaining changes to the nightly CI (.buildkite/test-nightly.yaml)?

The full test suite only takes ~6 min so it should fit within the 10 min limit. I've reduced the timeout accordingly. Happy to split if you still think it's needed though.

@congw729
Copy link
Contributor

congw729 commented Feb 9, 2026

Hi, I noticed that you removed the markers to pass the CI test. The error already fixed after #577 is merged. You can add those markers back and try again : )

Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: linyueqian <linyueqian@outlook.com>
@linyueqian
Copy link
Contributor Author

@congw729 Added back @hardware_test, @pytest.mark.core_model and @pytest.mark.omni on all tests.

@hsliuustc0106 CI is passing now. One thing I ran into: record_audio_generated_frames added in the recently merged #891 crashes when the audio output tensor is 0-dim (scalar), since shape[0] raises IndexError. I wrapped it in try/except so metrics errors don't break speech generation.

@linyueqian
Copy link
Contributor Author

Also cc #1289 which fixes the same metrics bug. Would be good to merge this test PR so future updates like this get caught in CI.

Copy link
Collaborator

@Gaohan123 Gaohan123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@Gaohan123 Gaohan123 added this to the v0.16.0 milestone Feb 10, 2026
@Gaohan123 Gaohan123 merged commit f55ce9c into vllm-project:main Feb 10, 2026
7 checks passed
@linyueqian linyueqian mentioned this pull request Feb 11, 2026
5 tasks
YanickSchraner pushed a commit to YanickSchraner/vllm-omni that referenced this pull request Feb 20, 2026
Signed-off-by: linyueqian <linyueqian@outlook.com>
Signed-off-by: Yueqian Lin <70319226+linyueqian@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready label to trigger buildkite CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants