Skip to content

Disable incumbent test for neos test case#1023

Merged
rapids-bot[bot] merged 1 commit intoNVIDIA:release/26.04from
rgsl888prabhu:disable_incumbent_neos_test_case
Apr 1, 2026
Merged

Disable incumbent test for neos test case#1023
rapids-bot[bot] merged 1 commit intoNVIDIA:release/26.04from
rgsl888prabhu:disable_incumbent_neos_test_case

Conversation

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator

Description

Disabling these test cases as there are flaky and causing segfaults, and issue has been created to follow-up #967

Checklist

  • I am familiar with the Contributing Guidelines.
  • Testing
    • New or existing tests cover these changes
    • Added tests
    • Created an issue to follow-up
    • NA
  • Documentation
    • The documentation is up to date with these changes
    • Added new documentation
    • NA

@rgsl888prabhu rgsl888prabhu requested a review from a team as a code owner April 1, 2026 18:58
@rgsl888prabhu rgsl888prabhu requested a review from Iroy30 April 1, 2026 18:58
@rgsl888prabhu rgsl888prabhu self-assigned this Apr 1, 2026
@rgsl888prabhu rgsl888prabhu added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Apr 1, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

MPS dataset test cases in incumbent callback tests were commented out due to PDLP concurrent/incumbent callback behavior issues. Two parametrized test entries across two test functions were disabled.

Changes

Cohort / File(s) Summary
Test Parametrization Disablement
python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py
Commented out MPS dataset entries (/mip/swath1.mps and /mip/neos5-free-bound.mps) in test_incumbent_get_callback and test_incumbent_get_set_callback parametrizations. Updated disable comments to reference PDLP concurrent/incumbent callback behavior.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title is partially related to the changeset. It mentions disabling incumbent test for neos, but the actual change disables tests for both swath1.mps and neos5-free-bound.mps datasets, making the title incomplete.
Description check ✅ Passed The description is related to the changeset, explaining that test cases are being disabled due to flaky behavior and segfaults, with a reference to issue #967.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Copy link
Copy Markdown

@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.

🧹 Nitpick comments (2)
python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py (2)

104-112: Consider using @pytest.mark.skip instead of empty parameter list.

An empty @pytest.mark.parametrize list causes pytest to collect the test with 0 items, which can be confusing in test reports. Using explicit skip markers provides clearer visibility into why tests are disabled and ensures they appear in skip reports.

♻️ Suggested approach using skip markers
 `@pytest.mark.parametrize`(
     "file_name",
     [
-        # ("/mip/swath1.mps"),  # Disabled: https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent callbacks).
-        # ("/mip/neos5-free-bound.mps"),  # Disabled: https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent callbacks).
+        pytest.param("/mip/swath1.mps", marks=pytest.mark.skip(reason="https://github.com/NVIDIA/cuopt/issues/967 - PDLP concurrent / incumbent callbacks")),
+        pytest.param("/mip/neos5-free-bound.mps", marks=pytest.mark.skip(reason="https://github.com/NVIDIA/cuopt/issues/967 - PDLP concurrent / incumbent callbacks")),
     ],
 )
 def test_incumbent_get_callback(file_name):

This approach:

  • Makes skipped tests visible in pytest reports with clear reasons
  • Keeps test parameters intact for easy re-enablement when issue #967 is resolved
  • Follows pytest best practices for temporarily disabling tests
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py`
around lines 104 - 112, The parametrize decorator on test_incumbent_get_callback
currently provides an empty parameter list which yields 0 collected items;
replace the empty `@pytest.mark.parametrize`("file_name", [...]) with a
pytest.mark.skip(reason="Disabled due to
https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent
callbacks)") applied to the test function (e.g., `@pytest.mark.skip`(...)\ndef
test_incumbent_get_callback(file_name):) so the test is explicitly reported as
skipped while preserving the commented file entries for easy re-enablement; keep
the call to _run_incumbent_solver_callback(file_name,
include_set_callback=False) unchanged.

115-123: Same recommendation applies here.

Use pytest.param(..., marks=pytest.mark.skip(...)) for consistent skip reporting across both test functions.

♻️ Suggested approach
 `@pytest.mark.parametrize`(
     "file_name",
     [
-        # ("/mip/swath1.mps"),  # Disabled: https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent callbacks).
-        # ("/mip/neos5-free-bound.mps"),  # Disabled: https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent callbacks).
+        pytest.param("/mip/swath1.mps", marks=pytest.mark.skip(reason="https://github.com/NVIDIA/cuopt/issues/967 - PDLP concurrent / incumbent callbacks")),
+        pytest.param("/mip/neos5-free-bound.mps", marks=pytest.mark.skip(reason="https://github.com/NVIDIA/cuopt/issues/967 - PDLP concurrent / incumbent callbacks")),
     ],
 )
 def test_incumbent_get_set_callback(file_name):
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py`
around lines 115 - 123, The parameterized skip should use pytest.param with
marks to report skipped cases consistently: update the pytest.mark.parametrize
list in test_incumbent_get_set_callback to replace the commented-out file
entries with pytest.param("/mip/swath1.mps", marks=pytest.mark.skip(reason="PDLP
concurrent / incumbent callbacks: https://github.com/NVIDIA/cuopt/issues/967"))
and similarly for "/mip/neos5-free-bound.mps"; ensure you keep the same
parameter name ("file_name") and that the test function
test_incumbent_get_set_callback still calls
_run_incumbent_solver_callback(file_name, include_set_callback=True).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py`:
- Around line 104-112: The parametrize decorator on test_incumbent_get_callback
currently provides an empty parameter list which yields 0 collected items;
replace the empty `@pytest.mark.parametrize`("file_name", [...]) with a
pytest.mark.skip(reason="Disabled due to
https://github.com/NVIDIA/cuopt/issues/967 (PDLP concurrent / incumbent
callbacks)") applied to the test function (e.g., `@pytest.mark.skip`(...)\ndef
test_incumbent_get_callback(file_name):) so the test is explicitly reported as
skipped while preserving the commented file entries for easy re-enablement; keep
the call to _run_incumbent_solver_callback(file_name,
include_set_callback=False) unchanged.
- Around line 115-123: The parameterized skip should use pytest.param with marks
to report skipped cases consistently: update the pytest.mark.parametrize list in
test_incumbent_get_set_callback to replace the commented-out file entries with
pytest.param("/mip/swath1.mps", marks=pytest.mark.skip(reason="PDLP concurrent /
incumbent callbacks: https://github.com/NVIDIA/cuopt/issues/967")) and similarly
for "/mip/neos5-free-bound.mps"; ensure you keep the same parameter name
("file_name") and that the test function test_incumbent_get_set_callback still
calls _run_incumbent_solver_callback(file_name, include_set_callback=True).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b5c85e6a-2230-4481-a63e-2d486acb61b7

📥 Commits

Reviewing files that changed from the base of the PR and between e3ead78 and 473875b.

📒 Files selected for processing (1)
  • python/cuopt/cuopt/tests/linear_programming/test_incumbent_callbacks.py

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot rapids-bot bot merged commit 2dc69c3 into NVIDIA:release/26.04 Apr 1, 2026
100 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants