You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/07/14 08:23:27 UTC

[camel] 02/05: (chores) camel-core: SplitParallelTimeoutTest test fixes and cleanups

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit d3e1c0db2537875058b676f7fb9edddd4d887779
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Jul 14 08:35:10 2023 +0200

    (chores) camel-core: SplitParallelTimeoutTest test fixes and cleanups
    
    - adjust timeouts for less flakiness on slower hosts
    - send the test kick-off message earlier
    - skip running the test on very slow hosts than take too long to start the context
    - run in isolation for more stability in hosts with smaller core counts
---
 .../camel/processor/SplitParallelTimeoutTest.java       | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
index 436df15a7c6..d0adc902fec 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
@@ -24,13 +24,17 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Assumptions;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.RepeatedTest;
 import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-@Timeout(50)
+@Isolated
+@Timeout(60)
 public class SplitParallelTimeoutTest extends ContextTestSupport {
 
     private volatile Exchange receivedExchange;
@@ -39,14 +43,18 @@ public class SplitParallelTimeoutTest extends ContextTestSupport {
     private volatile long receivedTimeout;
     private final Phaser phaser = new Phaser(3);
 
+    @BeforeEach
+    void sendEarly() {
+        Assumptions.assumeTrue(context.isStarted(), "The test cannot be run because the context is not started");
+        template.sendBody("direct:start", "A,B,C");
+    }
+
     @RepeatedTest(20)
     public void testSplitParallelTimeout() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         // A will timeout so we only get B and/or C
         mock.message(0).body().not(body().contains("A"));
 
-        template.sendBody("direct:start", "A,B,C");
-
         phaser.awaitAdvanceInterruptibly(0, 5000, TimeUnit.SECONDS);
 
         assertMockEndpointsSatisfied();
@@ -62,7 +70,8 @@ public class SplitParallelTimeoutTest extends ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").split(body().tokenize(","), new MyAggregationStrategy()).parallelProcessing().timeout(100)
+                from("direct:start")
+                        .split(body().tokenize(","), new MyAggregationStrategy()).parallelProcessing().timeout(100)
                         .choice()
                             .when(body().isEqualTo("A")).to("direct:a")
                             .when(body().isEqualTo("B")).to("direct:b")