Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions cpp/tests/mip/cuts_test.cu
Original file line number Diff line number Diff line change
Expand Up @@ -1253,7 +1253,9 @@ TEST(cuts, clique_neos8_phase1_symmetry_and_degree_cache_consistency)
}
}

TEST(cuts, clique_neos8_phase2_no_cut_off_optimal_solution_validation)
// Disabled: hits time limit on ARM (L4) instead of Optimal.
// https://github.com/NVIDIA/cuopt/issues/972
TEST(cuts, DISABLED_clique_neos8_phase2_no_cut_off_optimal_solution_validation)
{
auto& no_cut_mip = get_neos8_optimal_solution_no_cuts_cached();
ASSERT_EQ(no_cut_mip.status, mip_termination_status_t::Optimal);
Expand Down Expand Up @@ -1296,7 +1298,9 @@ TEST(cuts, clique_neos8_phase3_fractional_separation_must_cut_off)
}
}

TEST(cuts, clique_neos8_phase4_fault_isolation_binary_search)
// Disabled: depends on phase2 cached result which fails on ARM (L4).
// https://github.com/NVIDIA/cuopt/issues/972
TEST(cuts, DISABLED_clique_neos8_phase4_fault_isolation_binary_search)
{
auto& no_cut_mip = get_neos8_optimal_solution_no_cuts_cached();
ASSERT_EQ(no_cut_mip.status, mip_termination_status_t::Optimal);
Expand Down
15 changes: 12 additions & 3 deletions python/cuopt/cuopt/tests/linear_programming/test_python_API.py
Original file line number Diff line number Diff line change
Expand Up @@ -512,14 +512,17 @@ def test_problem_update():
CUOPT_CUDSS_DETERMINISTIC: 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"
),
Comment on lines +515 to +525
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.

),
(
"folding_on",
Expand Down Expand Up @@ -557,11 +560,14 @@ def test_problem_update():
CUOPT_ORDERING: 0,
},
),
(
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"
),
),
(
"adat_system",
Expand Down Expand Up @@ -615,13 +621,16 @@ def test_problem_update():
CUOPT_BARRIER_DUAL_INITIAL_POINT: 1,
},
),
(
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"
),
),
],
)
Expand Down
Loading