Skip to content

Disable barrier and cuts tests#968

Merged
rapids-bot[bot] merged 4 commits intoNVIDIA:mainfrom
rgsl888prabhu:fix_nightly_build_failures
Mar 18, 2026
Merged

Disable barrier and cuts tests#968
rapids-bot[bot] merged 4 commits intoNVIDIA:mainfrom
rgsl888prabhu:fix_nightly_build_failures

Conversation

@rgsl888prabhu
Copy link
Collaborator

Description

These tests are flaky and are disabled, and these will be moved to C layer later.

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 March 17, 2026 21:16
@rgsl888prabhu rgsl888prabhu requested a review from tmckayus March 17, 2026 21:16
@rgsl888prabhu rgsl888prabhu self-assigned this Mar 17, 2026
@rgsl888prabhu rgsl888prabhu added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Mar 17, 2026
@anandhkb anandhkb added this to the 26.04 milestone Mar 17, 2026
@coderabbitai
Copy link

coderabbitai bot commented Mar 17, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c345722b-7aaa-419a-a3e8-e811f4b099ff

📥 Commits

Reviewing files that changed from the base of the PR and between 692a99d and 70988a4.

📒 Files selected for processing (1)
  • cpp/tests/mip/cuts_test.cu

📝 Walkthrough

Walkthrough

Several test cases were disabled: specific parameter combinations in Python linear-programming tests were marked skipped via pytest.param, and two C++ GoogleTest cases were renamed with the DISABLED_ prefix to prevent execution. No other functional code changes were made.

Changes

Cohort / File(s) Summary
Python test skips
python/cuopt/cuopt/tests/linear_programming/test_python_API.py
Replaced selected parameterized tuples with pytest.param(..., marks=pytest.mark.skip(reason=...)), skipping configurations in test_barrier_solver_settings and test_problem_update due to a barrier initial-point issue.
C++ test disables
cpp/tests/mip/cuts_test.cu
Renamed two GoogleTest cases to add DISABLED_ prefix (clique_neos8_phase2_no_cut_off_optimal_solution_validation, clique_neos8_phase4_fault_isolation_binary_search) to prevent execution on ARM/time-limit environments.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.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 'Disable barrier tests' directly describes the main action taken in the changeset: disabling flaky barrier tests in Python and C++ test files.
Description check ✅ Passed The description explains the purpose of disabling the tests (they are flaky) and notes future plans (moving to C layer), which is directly related to the changeset.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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

Copy link

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@python/cuopt/cuopt/tests/linear_programming/test_python_API.py`:
- Around line 515-525: The unconditional skips on the pytest.param entries for
the barrier-augmented configurations (the pytest.param with keys CUOPT_FOLDING,
CUOPT_DUALIZE, CUOPT_ORDERING, CUOPT_AUGMENTED and the other similar
pytest.param blocks) must be made trackable and time-bounded: replace the bare
pytest.mark.skip(...) with a skip reason that includes a tracker/issue ID (e.g.
"CUOPT-XXXXX") and a clear re-enable condition ("re-enable when barrier
initial-point fix is in the build"), add a TODO comment referencing the issue ID
next to the pytest.param, and (where appropriate) consider using
pytest.mark.xfail or pytest.skipif with a short expiry date or env-flag to avoid
permanent loss of numerical-correctness coverage; also ensure the tests validate
numerical correctness of the optimization results rather than only running
without error.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 47726764-8795-42ce-bb01-2286bed18e31

📥 Commits

Reviewing files that changed from the base of the PR and between 591ac5f and 692a99d.

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

Comment on lines +515 to +525
pytest.param(
"mixed",
{
CUOPT_FOLDING: 1,
CUOPT_DUALIZE: 0,
CUOPT_ORDERING: -1,
CUOPT_AUGMENTED: 1,
},
marks=pytest.mark.skip(
reason="Barrier augmented-system numerical issue; re-enable when barrier initial-point fix is in the build"
),
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Avoid indefinite untracked skips for barrier coverage.

At Line 515, Line 563, and Line 624, these cases are now unconditionally skipped, which drops numerical-correctness coverage for key barrier configurations. Please make the disablement explicitly time-bounded/trackable (issue ID + re-enable condition) so this does not become permanent technical debt.

Suggested change
+_BARRIER_TEMP_DISABLE_MARK = pytest.mark.xfail(
+    reason=(
+        "TODO(#<issue-id>): Barrier augmented-system numerical issue. "
+        "Re-enable after barrier initial-point fix lands in build."
+    ),
+    run=False,
+)
+
         pytest.param(
             "mixed",
             {
                 CUOPT_FOLDING: 1,
                 CUOPT_DUALIZE: 0,
                 CUOPT_ORDERING: -1,
                 CUOPT_AUGMENTED: 1,
             },
-            marks=pytest.mark.skip(
-                reason="Barrier augmented-system numerical issue; re-enable when barrier initial-point fix is in the build"
-            ),
+            marks=_BARRIER_TEMP_DISABLE_MARK,
         ),
@@
         pytest.param(
             "augmented_system",
             {
                 CUOPT_AUGMENTED: 1,
             },
-            marks=pytest.mark.skip(
-                reason="Barrier augmented-system numerical issue; re-enable when barrier initial-point fix is in the build"
-            ),
+            marks=_BARRIER_TEMP_DISABLE_MARK,
         ),
@@
         pytest.param(
             "combo3_with_dual_init",
             {
                 CUOPT_AUGMENTED: 1,
                 CUOPT_BARRIER_DUAL_INITIAL_POINT: 1,
                 CUOPT_ELIMINATE_DENSE_COLUMNS: True,
             },
-            marks=pytest.mark.skip(
-                reason="Barrier augmented-system numerical issue; re-enable when barrier initial-point fix is in the build"
-            ),
+            marks=_BARRIER_TEMP_DISABLE_MARK,
         ),
As per coding guidelines **"Write tests validating numerical correctness of optimization results (not just 'runs without error')"**.

Also applies to: 563-570, 624-633

🤖 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_python_API.py` around lines
515 - 525, The unconditional skips on the pytest.param entries for the
barrier-augmented configurations (the pytest.param with keys CUOPT_FOLDING,
CUOPT_DUALIZE, CUOPT_ORDERING, CUOPT_AUGMENTED and the other similar
pytest.param blocks) must be made trackable and time-bounded: replace the bare
pytest.mark.skip(...) with a skip reason that includes a tracker/issue ID (e.g.
"CUOPT-XXXXX") and a clear re-enable condition ("re-enable when barrier
initial-point fix is in the build"), add a TODO comment referencing the issue ID
next to the pytest.param, and (where appropriate) consider using
pytest.mark.xfail or pytest.skipif with a short expiry date or env-flag to avoid
permanent loss of numerical-correctness coverage; also ensure the tests validate
numerical correctness of the optimization results rather than only running
without error.

@rgsl888prabhu rgsl888prabhu requested a review from a team as a code owner March 18, 2026 15:15
@rgsl888prabhu rgsl888prabhu changed the title Disable barrier tests Disable barrier and cuts tests Mar 18, 2026
@Iroy30
Copy link
Member

Iroy30 commented Mar 18, 2026

/merge

@rapids-bot rapids-bot bot merged commit f0ba447 into NVIDIA:main Mar 18, 2026
406 of 415 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.

4 participants