From d08b5f68dc6b72d2f9bff3334a68ea6184daf417 Mon Sep 17 00:00:00 2001 From: Joe Rivera Date: Sun, 18 Oct 2026 00:07:11 -0500 Subject: [PATCH] ariadne_runtime_test: a predicate cut by the time cap passes however it is reported PredicateMaterializerIsCutByTheEvalBudget (from #665) runs a one-node-a-step collections.range 120000 in a predicate and expects it cut. On the Linux Debug lane the time cap fired inside the job's own deadline poll, which reports "collections.range: evaluation exceeded time budget" through the job's error rather than the evaluator's "exceeded the eval budget" (seen on #678, job 117587719214). Both are the predicate being cut; the test now accepts either. --- src/cvc/tests/ariadne_runtime_test.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cvc/tests/ariadne_runtime_test.cpp b/src/cvc/tests/ariadne_runtime_test.cpp index ea7a03dc5..3c0615371 100644 --- a/src/cvc/tests/ariadne_runtime_test.cpp +++ b/src/cvc/tests/ariadne_runtime_test.cpp @@ -1679,7 +1679,12 @@ TEST(AriadneStdlib, PredicateMaterializerIsCutByTheEvalBudget) { EXPECT_FALSE(mb.saw("text_line:big")); auto warns = rt.take_reactive_warnings(); ASSERT_FALSE(warns.empty()); - EXPECT_NE(warns[0].find("exceeded the eval budget"), std::string::npos) << warns[0]; + // Cut by the step cap or the time cap, whichever comes first. The time cap is reported as the + // eval budget when it expires between steps, and through the job's own error ("evaluation + // exceeded time budget") when the job's deadline poll sees it first, as on a slow Debug build. + EXPECT_TRUE(warns[0].find("exceeded the eval budget") != std::string::npos || + warns[0].find("evaluation exceeded time budget") != std::string::npos) + << warns[0]; // A 0 here still slices, at the host's 1024 nodes a step, and an ordinary call finishes. It is // kept small so it fits the 5 ms time cap in a Debug build on a loaded CI runner.