You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2025/05/28 20:18:59 UTC

(cxf) branch main updated: CXF-9142 Change async tracing tests to be order-agnostic (#2427)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new c57a4b69f4 CXF-9142 Change async tracing tests to be order-agnostic (#2427)
c57a4b69f4 is described below

commit c57a4b69f44311b2aae75310db01d1ef5732afc7
Author: Tom Cunningham <tc...@redhat.com>
AuthorDate: Wed May 28 16:18:54 2025 -0400

    CXF-9142 Change async tracing tests to be order-agnostic (#2427)
---
 .../opentelemetry/OpenTelemetryTracingTest.java    | 29 ++++++++++---
 .../opentracing/OpenTracingTracingTest.java        | 50 +++++++++++++++++-----
 2 files changed, 63 insertions(+), 16 deletions(-)

diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java
index e90c2796b3..afc8530389 100644
--- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java
+++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java
@@ -255,13 +255,30 @@ public class OpenTelemetryTracingTest extends AbstractClientServerTestBase {
             final Response r = withTrace(createWebClient("/bookstore/books/async")).get();
             assertEquals(Status.OK.getStatusCode(), r.getStatus());
 
-            await().atMost(Duration.ofSeconds(1L)).until(() -> otelRule.getSpans().size() == 2);
+            int spanSize = 2;
+            await().atMost(Duration.ofSeconds(1L)).until(() -> otelRule.getSpans().size() == spanSize);
 
-            assertThat(otelRule.getSpans().size(), equalTo(2));
-            assertEquals("Processing books", otelRule.getSpans().get(0).getName());
-            assertEquals("GET /bookstore/books/async", otelRule.getSpans().get(1).getName());
-            assertThat(otelRule.getSpans().get(1).getParentSpanContext().isValid(), equalTo(true));
-            assertThat(otelRule.getSpans().get(1).getParentSpanId(),
+            assertThat(otelRule.getSpans().size(), equalTo(spanSize));
+
+            boolean foundProcessing = false;
+            for (int i = 0; i < spanSize; i++) {
+                if ("Processing books".equals(otelRule.getSpans().get(i).getName())) {
+                    foundProcessing = true;
+                }
+            }
+            assertTrue("Could not find Processing books in span getOperationName()", foundProcessing);
+
+            boolean foundAsync = false;
+            int getIndex = -1;
+            for (int i = 0; i < spanSize; i++) {
+                if ("GET /bookstore/books/async".equals(otelRule.getSpans().get(i).getName())) {
+                    foundAsync = true;
+                    getIndex = i;
+                }
+            }
+
+            assertThat(otelRule.getSpans().get(getIndex).getParentSpanContext().isValid(), equalTo(true));
+            assertThat(otelRule.getSpans().get(getIndex).getParentSpanId(),
                        equalTo(Span.current().getSpanContext().getSpanId()));
         }
     }
diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java
index 0bcbe34f5c..53899e9b69 100644
--- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java
+++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java
@@ -196,13 +196,30 @@ public class OpenTracingTracingTest extends AbstractClientServerTestBase {
         final Response r = withTrace(createWebClient("/bookstore/books/async"), spanId).get();
         assertEquals(Status.OK.getStatusCode(), r.getStatus());
 
-        await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == 2);
+        int spanSize = 2;
+        await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == spanSize);
+
+        assertThat(REPORTER.getSpans().size(), equalTo(spanSize));
+        boolean foundProcessing = false;
+        for (int i = 0; i < spanSize; i++) {
+            if ("Processing books".equals(REPORTER.getSpans().get(i).getOperationName())) {
+                foundProcessing = true;
+            }
+        }
+        assertTrue("Could not find Processing books in span getOperationName()", foundProcessing);
+
+        boolean foundAsync = false;
+        int getIndex = -1;
+        for (int i = 0; i < spanSize; i++) {
+            if ("GET /bookstore/books/async".equals(REPORTER.getSpans().get(i).getOperationName())) {
+                foundAsync = true;
+                getIndex = 1;
+            }
+        }
+        assertTrue("Could not find GET /bookstore/books/async in span getOperationName()", foundAsync);
 
-        assertThat(REPORTER.getSpans().size(), equalTo(2));
-        assertEquals("Processing books", REPORTER.getSpans().get(0).getOperationName());
-        assertEquals("GET /bookstore/books/async", REPORTER.getSpans().get(1).getOperationName());
-        assertThat(REPORTER.getSpans().get(1).getReferences(), not(empty()));
-        assertThat(REPORTER.getSpans().get(1).getReferences().get(0).getSpanContext().getSpanId(),
+        assertThat(REPORTER.getSpans().get(getIndex).getReferences(), not(empty()));
+        assertThat(REPORTER.getSpans().get(getIndex).getReferences().get(0).getSpanContext().getSpanId(),
             equalTo(spanId.getSpanId()));
     }
 
@@ -222,11 +239,24 @@ public class OpenTracingTracingTest extends AbstractClientServerTestBase {
         final Response r = createWebClient("/bookstore/books/async").get();
         assertEquals(Status.OK.getStatusCode(), r.getStatus());
 
-        await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == 2);
+        int spanSize = 2;
+        await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == spanSize);
 
-        assertThat(REPORTER.getSpans().size(), equalTo(2));
-        assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Processing books"));
-        assertThat(REPORTER.getSpans().get(1).getOperationName(), equalTo("GET /bookstore/books/async"));
+        assertThat(REPORTER.getSpans().size(), equalTo(spanSize));
+        boolean foundProcessing = false;
+        for (int i = 0; i < spanSize; i++) {
+            if ("Processing books".equals(REPORTER.getSpans().get(i).getOperationName())) {
+                foundProcessing = true;
+            }
+        }
+        assertTrue("Could not find Processing books in span getOperationName()", foundProcessing);
+
+        boolean foundAsync = false;
+        for (int i = 0; i < spanSize; i++) {
+            if ("GET /bookstore/books/async".equals(REPORTER.getSpans().get(i).getOperationName())) {
+                foundAsync = true;
+            }
+        }
     }
 
     @Test