Skip to content

Conversation

@xinhe-nv
Copy link
Collaborator

@xinhe-nv xinhe-nv commented Sep 18, 2025

waive failed cases.

Summary by CodeRabbit

  • Tests

    • Replaced a brittle corner-case test with a version-aware skip to prevent false failures on unsupported configurations.
    • Expanded the test skip list to cover known issues in specific scenarios, reducing noise in CI.
    • Adjusted a benchmark test to automatically skip on older GPU architectures, keeping results relevant to supported platforms.
  • Chores

    • Improved test gating to better reflect current platform support and known limitations, without impacting runtime features or APIs.

@xinhe-nv xinhe-nv force-pushed the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch from 1552032 to d7005c0 Compare September 19, 2025 02:27
@xinhe-nv xinhe-nv marked this pull request as ready for review September 19, 2025 02:28
@xinhe-nv
Copy link
Collaborator Author

/bot run --skip-test

@xinhe-nv xinhe-nv enabled auto-merge (squash) September 19, 2025 02:28
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 19, 2025

📝 Walkthrough

Walkthrough

Removes an NVFP4 corner-case test and replaces it with a pre-Blackwell skip. Adds SKIP entries to the integration test waivers for specific DeepSeekR1 and multimodal tests. Adjusts a unit test’s model parameterization to skip gpt-oss-20b on pre-Hopper environments.

Changes

Cohort / File(s) Summary
Accuracy test adjustments (NVFP4 corner-case)
tests/integration/defs/accuracy/test_llm_api_pytorch.py
Removed test_nvfp4_multi_gpus_corner_case; introduced a replacement that skips on pre-Blackwell releases.
Integration test waivers updates
tests/integration/test_lists/waives.txt
Added four SKIP entries: one multimodal quickstart test and three DeepSeekR1 FP8 blockscale tests, with nvbugs references.
Serve benchmark param skip (pre-Hopper)
tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
Updated model parameterization: wrapped gpt_oss/gpt-oss-20b with pytest.param carrying a skip marker for pre-Hopper; llama-3.1 unchanged.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • crazydemo
  • LarryXFly
  • yuxianq

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The PR description “waive failed cases.” does not follow the repository’s required template, as it lacks detailed sections such as Description, Test Coverage, and PR Checklist, and does not explain the motivation or validate testing. Please expand the description to follow the template by adding a clear “Description” section explaining what is being changed and why, a “Test Coverage” section listing relevant tests or validations, and confirming completion of the PR Checklist items.
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title Check ✅ Passed The title “[None][chore] Add failed cases into waives.txt” succinctly summarizes the main change of adding failed test cases to the waives.txt file and follows the repository’s title conventions.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/integration/defs/accuracy/test_llm_api_pytorch.py (1)

2013-2049: Gate TP8/EP8 corner‑case test by world size

File: tests/integration/defs/accuracy/test_llm_api_pytorch.py — hardcodes tensor_parallel_size=8 and moe_expert_parallel_size=8; will fail on Blackwell nodes with <8 GPUs. Add the standard skip marker:

 @skip_pre_blackwell
+@pytest.mark.skip_less_mpi_world_size(8)
 def test_nvfp4_multi_gpus_corner_case(self):

Optional: add a device‑memory skip similar to other heavy tests in this file if CI flakes appear.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6370fd and d7005c0.

📒 Files selected for processing (3)
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py (1 hunks)
  • tests/integration/test_lists/waives.txt (1 hunks)
  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{h,hpp,hh,hxx,cpp,cxx,cc,cu,cuh,py}

📄 CodeRabbit inference engine (CODING_GUIDELINES.md)

Use only spaces, no tabs; indent with 4 spaces.

Files:

  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py
**/*.py

📄 CodeRabbit inference engine (CODING_GUIDELINES.md)

**/*.py: Python code must target Python 3.8+.
Indent Python code with 4 spaces; do not use tabs.
Maintain module namespace when importing; prefer 'from package.subpackage import foo' then 'foo.SomeClass()' instead of importing the class directly.
Python filenames should be snake_case (e.g., some_file.py).
Python classes use PascalCase names.
Functions and methods use snake_case names.
Local variables use snake_case; prefix 'k' for variables that start with a number (e.g., k_99th_percentile).
Global variables use upper SNAKE_CASE prefixed with 'G' (e.g., G_MY_GLOBAL).
Constants use upper SNAKE_CASE (e.g., MY_CONSTANT).
Avoid shadowing variables from an outer scope.
Initialize all externally visible members of a class in the constructor.
Prefer docstrings for interfaces that may be used outside a file; comments for in-function or file-local interfaces.
Use Google-style docstrings for classes and functions (Sphinx-parsable).
Document attributes and variables inline so they render under the class/function docstring.
Avoid reflection when a simpler, explicit approach suffices (e.g., avoid dict(**locals()) patterns).
In try/except, catch the most specific exceptions possible.
For duck-typing try/except, keep the try body minimal and use else for the main logic.

Files:

  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py
**/*.{cpp,cxx,cc,h,hpp,hh,hxx,cu,cuh,py}

📄 CodeRabbit inference engine (CODING_GUIDELINES.md)

Prepend the NVIDIA Apache-2.0 copyright header with current year to the top of all source files (e.g., .cpp, .h, .cu, .py).

Files:

  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py
🧠 Learnings (7)
📓 Common learnings
Learnt from: tongyuantongyu
PR: NVIDIA/TensorRT-LLM#7781
File: tests/integration/test_lists/waives.txt:313-313
Timestamp: 2025-09-17T02:48:52.732Z
Learning: In TensorRT-LLM, `tests/integration/test_lists/waives.txt` is specifically for waiving/skipping tests, while other test list files like those in `test-db/` and `qa/` directories are for different test execution contexts (pre-merge, post-merge, QA tests). The same test appearing in both waives.txt and execution list files is intentional - the test is part of test suites but will be skipped due to the waiver.
📚 Learning: 2025-08-29T14:07:45.863Z
Learnt from: EmmaQiaoCh
PR: NVIDIA/TensorRT-LLM#7370
File: tests/unittest/trt/model_api/test_model_quantization.py:24-27
Timestamp: 2025-08-29T14:07:45.863Z
Learning: In TensorRT-LLM's CI infrastructure, pytest skip markers (pytest.mark.skip) are properly honored even when test files have __main__ blocks that call test functions directly. The testing system correctly skips tests without requiring modifications to the __main__ block execution pattern.

Applied to files:

  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
  • tests/integration/test_lists/waives.txt
📚 Learning: 2025-07-28T17:06:08.621Z
Learnt from: moraxu
PR: NVIDIA/TensorRT-LLM#6303
File: tests/integration/test_lists/qa/examples_test_list.txt:494-494
Timestamp: 2025-07-28T17:06:08.621Z
Learning: In TensorRT-LLM testing, it's common to have both CLI flow tests (test_cli_flow.py) and PyTorch API tests (test_llm_api_pytorch.py) for the same model. These serve different purposes: CLI flow tests validate the traditional command-line workflow, while PyTorch API tests validate the newer LLM API backend. Both are legitimate and should coexist.

Applied to files:

  • tests/unittest/llmapi/apps/_test_trtllm_serve_benchmark.py
  • tests/integration/test_lists/waives.txt
📚 Learning: 2025-09-17T02:48:52.732Z
Learnt from: tongyuantongyu
PR: NVIDIA/TensorRT-LLM#7781
File: tests/integration/test_lists/waives.txt:313-313
Timestamp: 2025-09-17T02:48:52.732Z
Learning: In TensorRT-LLM, `tests/integration/test_lists/waives.txt` is specifically for waiving/skipping tests, while other test list files like those in `test-db/` and `qa/` directories are for different test execution contexts (pre-merge, post-merge, QA tests). The same test appearing in both waives.txt and execution list files is intentional - the test is part of test suites but will be skipped due to the waiver.

Applied to files:

  • tests/integration/test_lists/waives.txt
📚 Learning: 2025-09-09T09:40:45.658Z
Learnt from: fredricz-20070104
PR: NVIDIA/TensorRT-LLM#7645
File: tests/integration/test_lists/qa/llm_function_core.txt:648-648
Timestamp: 2025-09-09T09:40:45.658Z
Learning: In TensorRT-LLM test lists, it's common and intentional for the same test to appear in multiple test list files when they serve different purposes (e.g., llm_function_core.txt for comprehensive core functionality testing and llm_function_core_sanity.txt for quick sanity checks). This duplication allows tests to be run in different testing contexts.

Applied to files:

  • tests/integration/test_lists/waives.txt
📚 Learning: 2025-08-26T09:49:04.956Z
Learnt from: pengbowang-nv
PR: NVIDIA/TensorRT-LLM#7192
File: tests/integration/test_lists/test-db/l0_dgx_b200.yml:56-72
Timestamp: 2025-08-26T09:49:04.956Z
Learning: In TensorRT-LLM test configuration files, the test scheduling system handles wildcard matching with special rules that prevent duplicate test execution even when the same tests appear in multiple yaml files with overlapping GPU wildcards (e.g., "*b200*" and "*gb200*").

Applied to files:

  • tests/integration/test_lists/waives.txt
📚 Learning: 2025-08-06T13:58:07.506Z
Learnt from: galagam
PR: NVIDIA/TensorRT-LLM#6487
File: tests/unittest/_torch/auto_deploy/unit/singlegpu/test_ad_trtllm_bench.py:1-12
Timestamp: 2025-08-06T13:58:07.506Z
Learning: In TensorRT-LLM, test files (files under tests/ directories) do not require NVIDIA copyright headers, unlike production source code files. Test files typically start directly with imports, docstrings, or code.

Applied to files:

  • tests/integration/test_lists/waives.txt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Pre-commit Check
🔇 Additional comments (1)
tests/integration/test_lists/waives.txt (1)

350-352: Waive entries verified — OK to land

Parameterized ids "throughput" and "latency" exist for test_fp8_blockscale and test_fp8_blockscale_chunked_prefill in tests/integration/defs/accuracy/test_llm_api_pytorch.py; waive lines are correct.

@tensorrt-cicd
Copy link
Collaborator

PR_Github #19249 [ run ] triggered by Bot

@xinhe-nv xinhe-nv force-pushed the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch from d7005c0 to c88cee5 Compare September 19, 2025 02:50
@tensorrt-cicd
Copy link
Collaborator

PR_Github #19249 [ run ] completed with state FAILURE
/LLM/main/L0_MergeRequest_PR pipeline #14456 (Partly Tested) completed with status: 'FAILURE'

@xinhe-nv xinhe-nv force-pushed the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch from c88cee5 to 06f84f3 Compare September 19, 2025 05:44
@xinhe-nv
Copy link
Collaborator Author

/bot run --skip-test

@tensorrt-cicd
Copy link
Collaborator

PR_Github #19290 [ run ] triggered by Bot

@xinhe-nv xinhe-nv force-pushed the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch from 06f84f3 to 3ef5018 Compare September 19, 2025 07:03
@tensorrt-cicd
Copy link
Collaborator

PR_Github #19290 [ run ] completed with state SUCCESS
/LLM/main/L0_MergeRequest_PR pipeline #14488 (Partly Tested) completed with status: 'SUCCESS'

Signed-off-by: xinhe-nv <[email protected]>
Signed-off-by: Xin He (SW-GPU) <[email protected]>
@xinhe-nv xinhe-nv force-pushed the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch from 3ef5018 to f5663ba Compare September 19, 2025 09:25
@xinhe-nv
Copy link
Collaborator Author

/bot reuse-pipeline

@tensorrt-cicd
Copy link
Collaborator

PR_Github #19342 [ reuse-pipeline ] triggered by Bot

@tensorrt-cicd
Copy link
Collaborator

PR_Github #19342 [ reuse-pipeline ] completed with state SUCCESS
Reusing PR_Github #19290 (Partly Tested) for commit f5663ba

@ruodil ruodil self-requested a review September 19, 2025 09:59
@xinhe-nv xinhe-nv merged commit efb7634 into NVIDIA:main Sep 19, 2025
5 checks passed
@xinhe-nv xinhe-nv deleted the user/qa/post_update_waive_20250918_LLM_FUNCTION_TEST_1358 branch September 19, 2025 10:00
Wong4j pushed a commit to Wong4j/TensorRT-LLM that referenced this pull request Sep 20, 2025
MrGeva pushed a commit to nv-auto-deploy/TensorRT-LLM that referenced this pull request Sep 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants