Skip to content

Commit 312b5ea

Browse files
authored
fix(showcase): update parent context retry tests for operation span in ITOtelTracing (#14673)
Update `testTracing_retry_grpc_linkedToParentContext` and `testTracing_retry_httpjson_linkedToParentContext` in `ITOtelTracing` to account for the operation-level span introduced in #14549 and wait for asynchronous span completion using `waitForSpans`. b/541322523
1 parent 2c250d4 commit 312b5ea

1 file changed

Lines changed: 29 additions & 6 deletions

File tree

  • java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it

‎java-showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITOtelTracing.java‎

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ class ITOtelTracing {
127127
private static final String VALUE_SERVICE_UNAVAILABLE = "Service Unavailable";
128128
private static final String SPAN_NAME_ECHO_GRPC = "google.showcase.v1beta1.Echo/Echo";
129129
private static final String SPAN_NAME_ECHO_HTTP = "POST v1beta1/echo:echo";
130+
private static final String SPAN_NAME_OPERATION_ECHO = "google.showcase.v1beta1.Echo.Echo";
130131
private static final String SPAN_NAME_GET_USER_GRPC = "google.showcase.v1beta1.Identity/GetUser";
131132
private static final String SPAN_NAME_GET_USER_HTTP = "GET v1beta1/{name=users/*}";
132133

@@ -501,15 +502,25 @@ void testTracing_retry_grpc_linkedToParentContext() throws Exception {
501502
parentSpan.end();
502503
}
503504

504-
List<SpanData> spans = spanExporter.getFinishedSpanItems();
505-
assertThat(spans).hasSize(attempts + 1);
505+
List<SpanData> spans = waitForSpans(attempts + 2);
506+
assertThat(spans).hasSize(attempts + 2);
506507

507508
SpanData rootSpan =
508509
spans.stream()
509510
.filter(span -> span.getName().equals("application-parent-operation"))
510511
.findFirst()
511512
.orElseThrow(() -> new AssertionError("Parent span not found"));
512513

514+
SpanData operationSpan =
515+
spans.stream()
516+
.filter(span -> span.getName().equals(SPAN_NAME_OPERATION_ECHO))
517+
.findFirst()
518+
.orElseThrow(() -> new AssertionError("Operation span not found"));
519+
assertThat(operationSpan.getKind()).isEqualTo(SpanKind.INTERNAL);
520+
assertThat(operationSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId());
521+
assertThat(operationSpan.getSpanContext().getTraceId())
522+
.isEqualTo(rootSpan.getSpanContext().getTraceId());
523+
513524
List<SpanData> attemptSpans =
514525
spans.stream()
515526
.filter(span -> span.getName().equals(SPAN_NAME_ECHO_GRPC))
@@ -518,7 +529,8 @@ void testTracing_retry_grpc_linkedToParentContext() throws Exception {
518529

519530
for (SpanData attemptSpan : attemptSpans) {
520531
assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT);
521-
assertThat(attemptSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId());
532+
assertThat(attemptSpan.getParentSpanId())
533+
.isEqualTo(operationSpan.getSpanContext().getSpanId());
522534
assertThat(attemptSpan.getSpanContext().getTraceId())
523535
.isEqualTo(rootSpan.getSpanContext().getTraceId());
524536
}
@@ -642,15 +654,25 @@ void testTracing_retry_httpjson_linkedToParentContext() throws Exception {
642654
parentSpan.end();
643655
}
644656

645-
List<SpanData> spans = spanExporter.getFinishedSpanItems();
646-
assertThat(spans).hasSize(attempts + 1);
657+
List<SpanData> spans = waitForSpans(attempts + 2);
658+
assertThat(spans).hasSize(attempts + 2);
647659

648660
SpanData rootSpan =
649661
spans.stream()
650662
.filter(span -> span.getName().equals("application-parent-operation"))
651663
.findFirst()
652664
.orElseThrow(() -> new AssertionError("Parent span not found"));
653665

666+
SpanData operationSpan =
667+
spans.stream()
668+
.filter(span -> span.getName().equals(SPAN_NAME_OPERATION_ECHO))
669+
.findFirst()
670+
.orElseThrow(() -> new AssertionError("Operation span not found"));
671+
assertThat(operationSpan.getKind()).isEqualTo(SpanKind.INTERNAL);
672+
assertThat(operationSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId());
673+
assertThat(operationSpan.getSpanContext().getTraceId())
674+
.isEqualTo(rootSpan.getSpanContext().getTraceId());
675+
654676
List<SpanData> attemptSpans =
655677
spans.stream()
656678
.filter(span -> span.getName().equals(SPAN_NAME_ECHO_HTTP))
@@ -659,7 +681,8 @@ void testTracing_retry_httpjson_linkedToParentContext() throws Exception {
659681

660682
for (SpanData attemptSpan : attemptSpans) {
661683
assertThat(attemptSpan.getKind()).isEqualTo(SpanKind.CLIENT);
662-
assertThat(attemptSpan.getParentSpanId()).isEqualTo(rootSpan.getSpanContext().getSpanId());
684+
assertThat(attemptSpan.getParentSpanId())
685+
.isEqualTo(operationSpan.getSpanContext().getSpanId());
663686
assertThat(attemptSpan.getSpanContext().getTraceId())
664687
.isEqualTo(rootSpan.getSpanContext().getTraceId());
665688
}

0 commit comments

Comments
 (0)