This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 133e522f952e CAMEL-24029: Fix flaky camel-core tests using timed
assertions (#24630)
133e522f952e is described below
commit 133e522f952e403e7cc9368b7662740fe9bd51c5
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Jul 12 22:59:38 2026 +0200
CAMEL-24029: Fix flaky camel-core tests using timed assertions (#24630)
CAMEL-24029: Fix flaky camel-core tests using timed assertions
Use explicit timed assertions (MockEndpoint.assertIsSatisfied with
timeout) instead of untimed assertions that can fail on slow CI:
- StopRouteAbortAfterTimeoutTest: use 30s timed assertion
- LoopNoBreakOnShutdownTest: increase Awaitility timeout from 1s to 10s
- DefaultCamelContextSuspendResumeRouteTest: use 30s timed assertion
after resume to allow SEDA consumer to restart polling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
.../apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java | 4 +++-
.../java/org/apache/camel/impl/StopRouteAbortAfterTimeoutTest.java | 3 ++-
.../java/org/apache/camel/processor/LoopNoBreakOnShutdownTest.java | 5 ++++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git
a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
index 4fd8ed6f3fef..9824e071707e 100644
---
a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextSuspendResumeRouteTest.java
@@ -70,7 +70,9 @@ public class DefaultCamelContextSuspendResumeRouteTest
extends ContextTestSuppor
resetMocks();
mock.expectedBodiesReceived("B");
context.resume();
- assertMockEndpointsSatisfied();
+ // after resume, the seda consumer may need a moment to restart polling
+ // and deliver the queued message "B" — use a timed assertion
+ MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
assertFalse(context.isSuspended());
diff --git
a/core/camel-core/src/test/java/org/apache/camel/impl/StopRouteAbortAfterTimeoutTest.java
b/core/camel-core/src/test/java/org/apache/camel/impl/StopRouteAbortAfterTimeoutTest.java
index c6f257746f85..5664f115593c 100644
---
a/core/camel-core/src/test/java/org/apache/camel/impl/StopRouteAbortAfterTimeoutTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/impl/StopRouteAbortAfterTimeoutTest.java
@@ -53,7 +53,8 @@ public class StopRouteAbortAfterTimeoutTest extends
ContextTestSupport {
template.sendBody("seda:start", "message-" + i);
}
- mockEP.assertIsSatisfied();
+ // use timed assertion to avoid flaky failures on slow CI
+ MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
}
@Test
diff --git
a/core/camel-core/src/test/java/org/apache/camel/processor/LoopNoBreakOnShutdownTest.java
b/core/camel-core/src/test/java/org/apache/camel/processor/LoopNoBreakOnShutdownTest.java
index ac4659a29125..5d735cc1f6c4 100644
---
a/core/camel-core/src/test/java/org/apache/camel/processor/LoopNoBreakOnShutdownTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/processor/LoopNoBreakOnShutdownTest.java
@@ -37,10 +37,13 @@ class LoopNoBreakOnShutdownTest extends ContextTestSupport {
mock.expectedMinimumMessageCount(LOOP_COUNT);
CompletableFuture<Object> future = template.asyncSendBody("seda:foo",
"foo");
- await().atMost(1, SECONDS).until(future::isDone);
+ // asyncSendBody to seda completes almost instantly (just enqueues),
but on
+ // slow CI the handoff can take longer — use a generous timeout
+ await().atMost(10, SECONDS).until(future::isDone);
context.stop();
+ // after context.stop(), all shutdown-deferred processing has completed
mock.assertIsSatisfied();
}