Change opentracing testbed to use the junit5 extension (#1989)

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
Bogdan Drutu 2020-11-03 15:22:42 -08:00 committed by GitHub
parent faf6b9f15e
commit 01aa248356
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 110 additions and 182 deletions

View File

@ -10,7 +10,7 @@ import static org.junit.Assert.assertTrue;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.exporters.inmemory.InMemorySpanExporter;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import java.util.ArrayList;
import java.util.Collections;
@ -24,8 +24,8 @@ public final class TestUtils {
private TestUtils() {}
/** Returns the number of finished {@code Span}s in the specified {@code InMemorySpanExporter}. */
public static Callable<Integer> finishedSpansSize(final InMemorySpanExporter exporter) {
return () -> exporter.getFinishedSpanItems().size();
public static Callable<Integer> finishedSpansSize(final OpenTelemetryExtension otelTesting) {
return () -> otelTesting.getSpans().size();
}
/** Returns a {@code List} with the {@code Span} matching the specified attribute. */

View File

@ -14,11 +14,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.SpanId;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -28,16 +26,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("FutureReturnValueIgnored")
class ActiveSpanReplacementTest {
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ExecutorService executor = Executors.newCachedThreadPool();
@Test
@ -49,11 +45,9 @@ class ActiveSpanReplacementTest {
submitAnotherTask(span);
}
await()
.atMost(15, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(3));
await().atMost(15, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(3));
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(3, spans.size());
assertEquals("initial", spans.get(0).getName()); // Isolated task
assertEquals("subtask", spans.get(1).getName());

View File

@ -9,11 +9,9 @@ import static io.opentelemetry.opentracingshim.testbed.TestUtils.getByKind;
import static io.opentelemetry.opentracingshim.testbed.TestUtils.getOneByKind;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -25,6 +23,7 @@ import java.util.concurrent.Future;
import java.util.concurrent.Phaser;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* These tests are intended to simulate the kind of async models that are common in java async
@ -37,12 +36,10 @@ import org.junit.jupiter.api.Test;
*/
@SuppressWarnings("FutureReturnValueIgnored")
class ActorPropagationTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private Phaser phaser;
@BeforeEach
@ -68,15 +65,14 @@ class ActorPropagationTest {
}
phaser.arriveAndAwaitAdvance(); // child tracer started
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(1);
assertThat(otelTesting.getSpans().size()).isEqualTo(1);
phaser.arriveAndAwaitAdvance(); // continue...
phaser.arriveAndAwaitAdvance(); // child tracer finished
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(3);
assertThat(getByKind(inMemoryTracing.getSpanExporter().getFinishedSpanItems(), Kind.CONSUMER))
.hasSize(2);
assertThat(otelTesting.getSpans().size()).isEqualTo(3);
assertThat(getByKind(otelTesting.getSpans(), Kind.CONSUMER)).hasSize(2);
phaser.arriveAndDeregister(); // continue...
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertThat(finished.size()).isEqualTo(3);
assertThat(finished.get(0).getTraceId()).isEqualTo(finished.get(1).getTraceId());
assertThat(getByKind(finished, Kind.CONSUMER)).hasSize(2);
@ -105,15 +101,14 @@ class ActorPropagationTest {
span.finish();
}
phaser.arriveAndAwaitAdvance(); // child tracer started
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(1);
assertThat(otelTesting.getSpans().size()).isEqualTo(1);
phaser.arriveAndAwaitAdvance(); // continue...
phaser.arriveAndAwaitAdvance(); // child tracer finished
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(3);
assertThat(getByKind(inMemoryTracing.getSpanExporter().getFinishedSpanItems(), Kind.CONSUMER))
.hasSize(2);
assertThat(otelTesting.getSpans().size()).isEqualTo(3);
assertThat(getByKind(otelTesting.getSpans(), Kind.CONSUMER)).hasSize(2);
phaser.arriveAndDeregister(); // continue...
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
String message1 = future1.get(); // This really should be a non-blocking callback...
String message2 = future2.get(); // This really should be a non-blocking callback...
assertThat(message1).isEqualTo("received my message 1");

View File

@ -7,10 +7,8 @@ package io.opentelemetry.opentracingshim.testbed.baggagehandling;
import static org.junit.jupiter.api.Assertions.assertEquals;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentracing.Span;
import io.opentracing.Tracer;
import java.util.concurrent.ExecutorService;
@ -18,14 +16,13 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public final class BaggageHandlingTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ExecutorService executor = Executors.newCachedThreadPool();
@Test
@ -58,7 +55,7 @@ public final class BaggageHandlingTest {
/* Single call, no need to use await() */
f.get(5, TimeUnit.SECONDS);
assertEquals(2, inMemoryTracing.getSpanExporter().getFinishedSpanItems().size());
assertEquals(2, otelTesting.getSpans().size());
assertEquals(span.getBaggageItem("key1"), "value2");
assertEquals(span.getBaggageItem("newkey"), "newvalue");
}

View File

@ -12,12 +12,9 @@ import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.api.trace.propagation.HttpTraceContext;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Tracer;
import java.util.List;
@ -26,17 +23,13 @@ import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
class TestClientServerTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder()
.setTracerProvider(sdk)
.setPropagators(HttpTraceContext::getInstance)
.build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
private Server server;
@ -57,11 +50,9 @@ class TestClientServerTest {
Client client = new Client(queue, tracer);
client.send();
await()
.atMost(15, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(2));
await().atMost(15, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(2));
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(2, finished.size());
finished = sortByStartTime(finished);

View File

@ -13,12 +13,10 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span.Kind;
import io.opentelemetry.api.trace.SpanId;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -26,8 +24,8 @@ import io.opentracing.Tracer;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
@ -35,20 +33,12 @@ import org.junit.jupiter.api.Test;
* use current active span and activate span. So one issue here is setting correct parent span.
*/
class HandlerTest {
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final Client client = new Client(new RequestHandler(tracer));
@BeforeEach
void before() {
inMemoryTracing.getSpanExporter().reset();
}
@Test
void two_requests() throws Exception {
Future<String> responseFuture = client.send("message");
@ -57,7 +47,7 @@ class HandlerTest {
assertEquals("message:response", responseFuture.get(15, TimeUnit.SECONDS));
assertEquals("message2:response", responseFuture2.get(15, TimeUnit.SECONDS));
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(2, finished.size());
for (SpanData spanData : finished) {
@ -82,7 +72,7 @@ class HandlerTest {
parentSpan.finish();
}
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(2, finished.size());
SpanData child = getOneByName(finished, RequestHandler.OPERATION_NAME);
@ -117,7 +107,7 @@ class HandlerTest {
String response = client.send("wrong_parent").get(15, TimeUnit.SECONDS);
assertEquals("wrong_parent:response", response);
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(3, finished.size());
finished = sortByStartTime(finished);

View File

@ -11,11 +11,9 @@ import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.StatusCode;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.sdk.trace.data.SpanData.Event;
import io.opentracing.Scope;
@ -30,15 +28,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("FutureReturnValueIgnored")
public final class ErrorReportingTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ExecutorService executor = Executors.newCachedThreadPool();
/* Very simple error handling **/
@ -55,7 +52,7 @@ public final class ErrorReportingTest {
assertNull(tracer.scopeManager().activeSpan());
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(spans.size(), 1);
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
}
@ -75,11 +72,9 @@ public final class ErrorReportingTest {
}
});
await()
.atMost(5, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
await().atMost(5, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(1));
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(spans.size(), 1);
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
}
@ -110,7 +105,7 @@ public final class ErrorReportingTest {
assertNull(tracer.scopeManager().activeSpan());
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(spans.size(), 1);
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
@ -143,11 +138,9 @@ public final class ErrorReportingTest {
tracer));
}
await()
.atMost(5, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
await().atMost(5, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(1));
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(spans.size(), 1);
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
}

View File

@ -11,10 +11,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -24,15 +22,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("FutureReturnValueIgnored")
public final class LateSpanFinishTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ExecutorService executor = Executors.newCachedThreadPool();
@Test
@ -49,7 +46,7 @@ public final class LateSpanFinishTest {
parentSpan.finish();
// Children finish order is not guaranteed, but parent should finish *last*.
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(3, spans.size());
assertTrue(spans.get(0).getName().startsWith("task"));
assertTrue(spans.get(1).getName().startsWith("task"));

View File

@ -8,24 +8,21 @@ package io.opentelemetry.opentracingshim.testbed.listenerperrequest;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Tracer;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/** Each request has own instance of ResponseListener. */
class ListenerTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
@Test
void test() throws Exception {
@ -33,7 +30,7 @@ class ListenerTest {
Object response = client.send("message").get();
assertEquals("message:response", response);
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(1, finished.size());
assertEquals(finished.get(0).getKind(), Span.Kind.CLIENT);

View File

@ -11,10 +11,8 @@ import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -23,6 +21,7 @@ import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* These tests are intended to simulate a task with independent, asynchronous callbacks.
@ -32,12 +31,10 @@ import org.junit.jupiter.api.Test;
*/
@SuppressWarnings("FutureReturnValueIgnored")
class MultipleCallbacksTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
@Test
void test() {
@ -54,11 +51,9 @@ class MultipleCallbacksTest {
parentDoneLatch.countDown();
}
await()
.atMost(15, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(4));
await().atMost(15, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(4));
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(4, spans.size());
assertEquals("parent", spans.get(0).getName());

View File

@ -12,11 +12,9 @@ import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.common.ReadableAttributes;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -26,15 +24,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
@SuppressWarnings("FutureReturnValueIgnored")
public final class NestedCallbacksTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ExecutorService executor = Executors.newCachedThreadPool();
@Test
@ -43,11 +40,9 @@ public final class NestedCallbacksTest {
Span span = tracer.buildSpan("one").start();
submitCallbacks(span);
await()
.atMost(15, TimeUnit.SECONDS)
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
await().atMost(15, TimeUnit.SECONDS).until(finishedSpansSize(otelTesting), equalTo(1));
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> spans = otelTesting.getSpans();
assertEquals(1, spans.size());
assertEquals("one", spans.get(0).getName());

View File

@ -9,12 +9,10 @@ import static io.opentelemetry.api.common.AttributeKey.stringKey;
import static io.opentelemetry.opentracingshim.testbed.TestUtils.getByAttr;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.trace.SpanId;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Scope;
import io.opentracing.Span;
@ -25,6 +23,7 @@ import java.util.concurrent.Phaser;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* These tests are intended to simulate the kind of async models that are common in java async
@ -36,12 +35,10 @@ import org.junit.jupiter.api.Test;
* @author tylerbenson
*/
class PromisePropagationTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private Phaser phaser;
@BeforeEach
@ -84,7 +81,7 @@ class PromisePropagationTest {
phaser.arriveAndAwaitAdvance(); // result set
});
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(0);
assertThat(otelTesting.getSpans().size()).isEqualTo(0);
successPromise.success("success!");
errorPromise.error(new Exception("some error."));
} finally {
@ -98,7 +95,7 @@ class PromisePropagationTest {
phaser.arriveAndAwaitAdvance(); // wait for traces to be reported
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertThat(finished.size()).isEqualTo(4);
AttributeKey<String> component = stringKey(Tags.COMPONENT.getKey());

View File

@ -7,37 +7,27 @@ package io.opentelemetry.opentracingshim.testbed.statelesscommonrequesthandler;
import static org.junit.jupiter.api.Assertions.assertEquals;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Tracer;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
* executed in the same thread (beforeRequest() and its resulting afterRequest(), that is).
*/
public final class HandlerTest {
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final Client client = new Client(new RequestHandler(tracer));
@BeforeEach
void before() {
inMemoryTracing.getSpanExporter().reset();
}
@Test
void test_requests() throws Exception {
Future<String> responseFuture = client.send("message");
@ -48,7 +38,7 @@ public final class HandlerTest {
assertEquals("message2:response", responseFuture2.get(5, TimeUnit.SECONDS));
assertEquals("message:response", responseFuture.get(5, TimeUnit.SECONDS));
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertEquals(3, finished.size());
}
}

View File

@ -7,16 +7,15 @@ package io.opentelemetry.opentracingshim.testbed.suspendresumepropagation;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.SpanId;
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Tracer;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
/**
* These tests are intended to simulate the kind of async models that are common in java async
@ -25,12 +24,10 @@ import org.junit.jupiter.api.Test;
* @author tylerbenson
*/
class SuspendResumePropagationTest {
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
private final OpenTelemetry openTelemetry =
OpenTelemetry.get().toBuilder().setTracerProvider(sdk).build();
private final InMemoryTracing inMemoryTracing =
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
private final Tracer tracer = OpenTracingShim.createTracerShim(openTelemetry);
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
@BeforeEach
void before() {}
@ -51,7 +48,7 @@ class SuspendResumePropagationTest {
job1.done();
job2.done();
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
List<SpanData> finished = otelTesting.getSpans();
assertThat(finished.size()).isEqualTo(2);
assertThat(finished.get(0).getName()).isEqualTo("job 1");