Skip to content

Conversation

@yenuo26
Copy link
Contributor

@yenuo26 yenuo26 commented Feb 9, 2026

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

Purpose

L2 & L3 Test Case Stratification Design for Omni Model: refer to #1218
Related documentation can be found:#1167

The main changes are as follows:
1.Added test-merge.yaml to manage merge-level test suites in the future.
2.Standardized the existing Omni3 online use cases and integrated both L2 and L3 level execution logic into a single script, differentiated during execution via the --run-level parameter.
3.Removed the default configuration test scenarios from the original online use cases, retaining only the async_chunk scenario. Default configurations will be covered by offline use cases.
4.Removed the test_build_and_log_summary test case (a new UT case covering this logic will be submitted in #891) and migrated test_async_omni.py to the tests/engine directory.

Test Plan

1.run offline case
/workspace/.venv/bin/python -m pytest -sv tests/e2e/offline_inference/test_qwen3_omni.py --html=report.html --self-contained-html
2.run online case
L2
/workspace/.venv/bin/python -m pytest -sv tests/e2e/online_serving/test_qwen3_omni.py -m core_model --run-level="core_model" --html=report.html --self-contained-html
/workspace/.venv/bin/python -m pytest -sv tests/e2e/online_serving/test_qwen3_omni.py --html=report.html --self-contained-html
L3
/workspace/.venv/bin/python -m pytest -sv tests/e2e/online_serving/test_qwen3_omni.py -m advanced_model --run-level="advanced_model" --html=report.html --self-contained-html
3.run abort case
/workspace/vllm-omni# /workspace/.venv/bin/python -m pytest -sv tests/engine/test_abort.py --html=report.html --self-contained-html

Test Result

1.offline case
image
2.online case
L2
image
image

L3
image

3.abort case
image

CI Result

image
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)

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 66a1f1ef67

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

path: /mnt/hf-cache
type: DirectoryOrCreate

# - label: "Bagel Text2Img Model Test with H100"
Copy link
Collaborator

Choose a reason for hiding this comment

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

will this be included in PR-merge?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I will contact the use case author to see how this use case can be split.

from vllm.envs import VLLM_USE_MODELSCOPE
from vllm.multimodal.image import convert_image_mode

from tests.conftest import OmniRunner
Copy link
Collaborator

Choose a reason for hiding this comment

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

why move it here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Because the original conftest only had the vllmrunner class, it seemed unnecessary to keep it as a separate file. Moreover, after merging it into the unified conftest, the functions for validating online use cases have been reused.

@@ -8,13 +8,13 @@
from vllm import SamplingParams
Copy link
Collaborator

Choose a reason for hiding this comment

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

change file name to test_async_omni_engine_abort

Copy link
Contributor Author

Choose a reason for hiding this comment

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

already rename

Signed-off-by: yenuo26 <[email protected]>
- export VLLM_TEST_CLEAN_GPU_MEMORY="1"
- pytest -s -v tests/e2e/offline_inference/test_qwen3_omni.py
- pytest -s -v tests/e2e/online_serving/test_qwen3_omni.py -m "core_model" --run-level "core_model"
- pytest -s -v tests/engine/test_abort.py
Copy link
Contributor

Choose a reason for hiding this comment

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

This line needs to change as well?

test_abort.py to test_async_omni_engine_abort.py

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, you're right, It has been modified.

…ons to use the new async engine abort test.

Signed-off-by: yenuo26 <[email protected]>
@yenuo26
Copy link
Contributor Author

yenuo26 commented Feb 9, 2026

@hsliuustc0106 @david6666666 please help add ready label

@hsliuustc0106
Copy link
Collaborator

fix precommit & resolve conflicts

@yenuo26
Copy link
Contributor Author

yenuo26 commented Feb 9, 2026

fix precommit & resolve conflicts

fixed

@hsliuustc0106 hsliuustc0106 added the ready label to trigger buildkite CI label Feb 9, 2026
…fline inference tests. Updated pytest command to focus on specific tests and removed unnecessary import statements.

Signed-off-by: yenuo26 <[email protected]>
yenuo26 and others added 16 commits February 10, 2026 16:59
…orker_type', and reduce max model length and batched tokens to 25000 for improved performance.

Signed-off-by: yenuo26 <[email protected]>
…rt test, adjust synthetic video/image dimensions, and reduce max model length and batched tokens for Qwen2_5 Omni CI settings.

Signed-off-by: yenuo26 <[email protected]>
Signed-off-by: yenuo26 <[email protected]>
This commit introduces a `kill_process_tree` function in `tests/conftest.py` to handle the termination of a process and its children, ensuring all processes are properly killed and verified. The existing `_kill_process_tree` method in the `OmniServer` class has been replaced with this new function for improved clarity and reusability. Additionally, the function is now utilized in the context manager exit methods of both `OmniServer` and `OmniRunner` classes to ensure proper cleanup of resources.

Signed-off-by: yenuo26 <[email protected]>
This commit moves the `kill_process_tree` function into the `OmniServer` class as a private method `_kill_process_tree`, enhancing encapsulation. The method is now used in the context manager exit to ensure proper cleanup of resources. The previous standalone function has been removed to streamline the code.

Signed-off-by: yenuo26 <[email protected]>
Signed-off-by: yenuo26 <[email protected]>
Signed-off-by: yenuo26 <[email protected]>
Signed-off-by: yenuo26 <[email protected]>
This commit adds a new private method `_cleanup_process` to the `OmniRunner` class, which iterates through running processes to terminate any related to "vllm" or "core". This method is called during the context manager exit to ensure proper resource cleanup.

Signed-off-by: yenuo26 <[email protected]>
This commit modifies the `_cleanup_process` method in the `OmniRunner` class to remove the "vllm" keyword from the process termination logic, focusing solely on processes related to "core". This change streamlines the cleanup process during context manager exit.

Signed-off-by: yenuo26 <[email protected]>
This commit modifies the `_cleanup_process` method in the `OmniRunner` class to change the process keyword from "core" to "enginecore". This adjustment refines the process filtering during cleanup operations.

Signed-off-by: yenuo26 <[email protected]>
Signed-off-by: yenuo26 <[email protected]>
@hsliuustc0106
Copy link
Collaborator

@gcanlin @zhenwei-intel PTAL

@@ -13,8 +13,8 @@ stage_args:
model_arch: Qwen2_5OmniForConditionalGeneration
worker_type: ar
scheduler_cls: vllm_omni.core.sched.omni_ar_scheduler.OmniARScheduler
max_model_len: 896
max_num_batched_tokens: 896
max_model_len: 2400
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not also move rocm directory into tests/e2e/stage_configs/? we'd like to create the npu directory here as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i will move it

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

agents:
queue: "cpu_queue_premerge"

# - label: "Test on NPU"
Copy link
Collaborator

Choose a reason for hiding this comment

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

rm these comments please

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Deleted

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Signed-off-by: wangyu31577 <[email protected]>
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.

5 participants