Skip to content

Commit 70b83be

Browse files
committed
use tester
1 parent fd9011b commit 70b83be

File tree

9 files changed

+71
-116
lines changed

9 files changed

+71
-116
lines changed

smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -53,37 +53,32 @@ void springBootSmokeTest(int jdk) {
5353
startTarget(jdk);
5454

5555
client().get("/greeting").aggregate().join();
56-
List<SpanData> traces = waitForTraces();
57-
assertThat(traces).hasSize(1);
5856

5957
// There is one span (io.opentelemetry.opentelemetry-instrumentation-annotations-1.16 is
6058
// not used,
6159
// because instrumentation_mode=none)
62-
TracesAssert.assertThat(traces)
63-
.hasTracesSatisfyingExactly(
64-
trace ->
65-
trace.hasSpansSatisfyingExactly(
66-
span ->
67-
span.hasResourceSatisfying(
68-
resource ->
69-
resource
70-
.hasAttribute(
71-
ServiceAttributes.SERVICE_NAME,
72-
"declarative-config-smoke-test")
73-
.hasAttribute(
74-
satisfies(
75-
ContainerIncubatingAttributes.CONTAINER_ID,
76-
v -> v.isNotBlank()))
77-
.hasAttribute(
78-
satisfies(
79-
ProcessIncubatingAttributes.PROCESS_EXECUTABLE_PATH,
80-
v -> v.isNotBlank()))
81-
.hasAttribute(
82-
satisfies(
83-
HostIncubatingAttributes.HOST_NAME,
84-
v -> v.isNotBlank()))
85-
.hasAttribute(
86-
TelemetryIncubatingAttributes.TELEMETRY_DISTRO_NAME,
87-
"opentelemetry-javaagent"))));
60+
testing.waitAndAssertTraces(
61+
trace ->
62+
trace.hasSpansSatisfyingExactly(
63+
span ->
64+
span.hasResourceSatisfying(
65+
resource ->
66+
resource
67+
.hasAttribute(
68+
ServiceAttributes.SERVICE_NAME, "declarative-config-smoke-test")
69+
.hasAttribute(
70+
satisfies(
71+
ContainerIncubatingAttributes.CONTAINER_ID,
72+
v -> v.isNotBlank()))
73+
.hasAttribute(
74+
satisfies(
75+
ProcessIncubatingAttributes.PROCESS_EXECUTABLE_PATH,
76+
v -> v.isNotBlank()))
77+
.hasAttribute(
78+
satisfies(
79+
HostIncubatingAttributes.HOST_NAME, v -> v.isNotBlank()))
80+
.hasAttribute(
81+
TelemetryIncubatingAttributes.TELEMETRY_DISTRO_NAME,
82+
"opentelemetry-javaagent"))));
8883
}
8984
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/JavaSmokeTest.java

Lines changed: 18 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,32 @@
55

66
package io.opentelemetry.smoketest;
77

8-
import static java.util.Collections.emptyList;
9-
import static java.util.Collections.emptyMap;
10-
import static java.util.stream.Collectors.toSet;
11-
import static org.assertj.core.api.Assertions.assertThat;
12-
138
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
14-
import io.opentelemetry.instrumentation.testing.junit.MetricsAssert;
15-
import io.opentelemetry.sdk.logs.data.LogRecordData;
16-
import io.opentelemetry.sdk.metrics.data.MetricData;
17-
import io.opentelemetry.sdk.testing.assertj.MetricAssert;
18-
import io.opentelemetry.sdk.trace.data.SpanData;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1910
import io.opentelemetry.smoketest.windows.WindowsTestContainerManager;
2011
import io.opentelemetry.testing.internal.armeria.client.WebClient;
21-
import java.util.Collection;
12+
import org.junit.jupiter.api.BeforeAll;
13+
import org.junit.jupiter.api.extension.RegisterExtension;
14+
import org.testcontainers.containers.output.OutputFrame;
15+
import org.testcontainers.containers.output.ToStringConsumer;
16+
2217
import java.util.List;
2318
import java.util.Map;
2419
import java.util.Set;
2520
import java.util.function.Consumer;
2621
import java.util.regex.Pattern;
2722
import java.util.stream.Stream;
28-
import org.junit.jupiter.api.BeforeAll;
29-
import org.junit.jupiter.api.extension.RegisterExtension;
30-
import org.testcontainers.containers.output.OutputFrame;
31-
import org.testcontainers.containers.output.ToStringConsumer;
23+
24+
import static java.util.Collections.emptyList;
25+
import static java.util.Collections.emptyMap;
26+
import static java.util.stream.Collectors.toSet;
27+
import static org.assertj.core.api.Assertions.assertThat;
3228

3329
public abstract class JavaSmokeTest extends AbstractRemoteTelemetryTest {
30+
31+
@RegisterExtension
32+
public static final InstrumentationExtension testing = SmokeTestInstrumentationExtension.create();
33+
3434
private static final Pattern TRACE_ID_PATTERN =
3535
Pattern.compile(".*trace_id=(?<traceId>[a-zA-Z0-9]+).*");
3636
protected static final TestContainerManager containerManager = createContainerManager();
@@ -79,13 +79,13 @@ void setUp() {
7979
telemetryRetriever = new RemoteTelemetryRetriever(containerManager.getBackendMappedPort());
8080
}
8181

82-
protected Consumer<OutputFrame> startTarget(int jdk) {
82+
protected Consumer<OutputFrame> startTarget(int jdk) {
8383
return startTarget(String.valueOf(jdk), null, false);
8484
}
8585

8686
protected Consumer<OutputFrame> startTarget(String jdk, String serverVersion, boolean windows) {
8787
String targetImage = getTargetImage(jdk, serverVersion, windows);
88-
autoCleanup.deferCleanup(this::stopTarget);
88+
autoCleanup.deferCleanup(() -> containerManager.stopTarget());
8989

9090
return containerManager.startTarget(
9191
targetImage,
@@ -113,35 +113,7 @@ protected String[] getCommand() {
113113
return null;
114114
}
115115

116-
public void cleanup() {
117-
telemetryRetriever.clearTelemetry();
118-
}
119-
120-
private void stopTarget() {
121-
containerManager.stopTarget();
122-
cleanup();
123-
}
124-
125-
protected List<SpanData> waitForTraces() {
126-
return telemetryRetriever.waitForTraces();
127-
}
128-
129-
@SafeVarargs
130-
@SuppressWarnings("varargs")
131-
protected final void waitAndAssertMetrics(
132-
String instrumentationName, Consumer<MetricAssert>... assertions) {
133-
MetricsAssert.waitAndAssertMetrics(() -> waitForMetrics(), instrumentationName, assertions);
134-
}
135-
136-
protected List<MetricData> waitForMetrics() {
137-
return telemetryRetriever.waitForMetrics();
138-
}
139-
140-
protected Collection<LogRecordData> waitForLogs() {
141-
return telemetryRetriever.waitForLogs();
142-
}
143-
144-
protected static void assertVersionLogged(Consumer<OutputFrame> output, String version) {
116+
protected static void assertVersionLogged(Consumer<OutputFrame> output, String version) {
145117
assertThat(
146118
logLines(output)
147119
.anyMatch(l -> l.contains("opentelemetry-javaagent - version: " + version)))

smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ protected TargetWaitStrategy getWaitStrategy() {
3434
void shouldExportLogs(int jdk) {
3535
startTarget(jdk);
3636
client().get("/greeting").aggregate().join();
37-
Collection<LogRecordData> logs = waitForLogs();
37+
Collection<LogRecordData> logs = testing.logRecords();
3838

3939
assertThat(logs).isNotEmpty();
4040
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,18 @@ void quarkusSmokeTest(int jdk) throws Exception {
5050

5151
client().get("/hello").aggregate().join();
5252

53-
assertThat(waitForTraces())
54-
.hasTracesSatisfyingExactly(
55-
trace ->
56-
trace.hasSpansSatisfyingExactly(
57-
span ->
58-
span.hasName("GET /hello")
59-
.hasResourceSatisfying(
60-
resource -> {
61-
resource
62-
.hasAttribute(
63-
TelemetryIncubatingAttributes.TELEMETRY_DISTRO_VERSION,
64-
currentAgentVersion)
65-
.hasAttribute(ServiceAttributes.SERVICE_NAME, "quarkus");
66-
})));
53+
testing.waitAndAssertTraces(
54+
trace ->
55+
trace.hasSpansSatisfyingExactly(
56+
span ->
57+
span.hasName("GET /hello")
58+
.hasResourceSatisfying(
59+
resource -> {
60+
resource
61+
.hasAttribute(
62+
TelemetryIncubatingAttributes.TELEMETRY_DISTRO_VERSION,
63+
currentAgentVersion)
64+
.hasAttribute(ServiceAttributes.SERVICE_NAME, "quarkus");
65+
})));
6766
}
6867
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
99

1010
import java.util.Map;
11+
import java.util.function.Consumer;
1112
import java.util.jar.Attributes;
1213
import java.util.jar.JarFile;
1314
import org.junit.jupiter.api.condition.DisabledIf;
1415
import org.junit.jupiter.params.ParameterizedTest;
1516
import org.junit.jupiter.params.provider.ValueSource;
17+
import org.testcontainers.containers.output.OutputFrame;
1618

1719
@DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers")
1820
class SdkDisabledSmokeTest extends JavaSmokeTest {
@@ -31,7 +33,7 @@ protected Map<String, String> getExtraEnv() {
3133
@ParameterizedTest
3234
@ValueSource(ints = {8, 11, 17})
3335
void noopSdkSmokeTest(int jdk) throws Exception {
34-
startTarget(jdk);
36+
Consumer<OutputFrame> output = startTarget(jdk);
3537
String currentAgentVersion =
3638
new JarFile(agentPath)
3739
.getManifest()
@@ -40,8 +42,8 @@ void noopSdkSmokeTest(int jdk) throws Exception {
4042
.toString();
4143

4244
assertThat(client().get("/greeting").aggregate().join().contentUtf8()).isEqualTo("Hi!");
43-
assertThat(waitForTraces()).isEmpty();
45+
assertThat(testing.spans()).isEmpty();
4446
assertVersionLogged(output, currentAgentVersion);
45-
assertThat(waitForTraces()).isEmpty();
47+
assertThat(testing.spans()).isEmpty();
4648
}
4749
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
@DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers")
1717
class SecurityManagerSmokeTest extends JavaSmokeTest {
18-
@RegisterExtension
19-
static final InstrumentationExtension testing = SmokeTestInstrumentationExtension.create();
2018

2119
@Override
2220
protected String getTargetImage(String jdk) {

smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ void springBootSmokeTest(int jdk) throws Exception {
6969
var response = client().get("/greeting").aggregate().join();
7070
assertThat(response.contentUtf8()).isEqualTo("Hi!");
7171

72-
List<SpanData> traces = waitForTraces();
73-
assertThat(traces)
72+
List<SpanData> spans = testing.spans();
73+
assertThat(spans)
7474
.hasTracesSatisfyingExactly(
7575
trace ->
7676
trace.hasSpansSatisfyingExactly(
@@ -103,11 +103,11 @@ void springBootSmokeTest(int jdk) throws Exception {
103103

104104
// Check trace IDs are logged via MDC instrumentation
105105
Set<String> loggedTraceIds = getLoggedTraceIds(output);
106-
Set<String> spanTraceIds = traces.stream().map(t -> t.getTraceId()).collect(Collectors.toSet());
106+
Set<String> spanTraceIds = spans.stream().map(t -> t.getTraceId()).collect(Collectors.toSet());
107107
assertThat(loggedTraceIds).isEqualTo(spanTraceIds);
108108

109109
// Check JVM metrics are exported
110-
waitAndAssertMetrics(
110+
testing.waitAndAssertMetrics(
111111
"io.opentelemetry.runtime-telemetry-java8",
112112
metric -> metric.hasName("jvm.memory.used"),
113113
metric -> metric.hasName("jvm.memory.committed"),

smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/OtTracePropagationTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,7 @@ protected TargetWaitStrategy getWaitStrategy() {
3838
public void shouldPropagate() {
3939
startTarget(11);
4040
AggregatedHttpResponse response = client().get("/front").aggregate().join();
41-
List<SpanData> spanData = waitForTraces();
42-
43-
Set<String> ids =
44-
spanData.stream().map(s -> s.getTraceId().substring(16)).collect(Collectors.toSet());
45-
assertThat(ids).hasSize(1);
46-
47-
var traceId = ids.iterator().next();
41+
var traceId = testing.waitForTraces(1).get(0).get(0).getTraceId();
4842

4943
assertThat(response.contentUtf8()).matches("[0-9a-f]{16}" + traceId + ";[0]{16}" + traceId);
5044
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/PropagationTest.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,15 @@
55

66
package io.opentelemetry.smoketest.propagation;
77

8-
import static org.assertj.core.api.Assertions.assertThat;
9-
10-
import io.opentelemetry.sdk.testing.assertj.TracesAssert;
11-
import io.opentelemetry.sdk.trace.data.SpanData;
128
import io.opentelemetry.smoketest.JavaSmokeTest;
139
import io.opentelemetry.smoketest.TargetWaitStrategy;
1410
import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse;
15-
import java.time.Duration;
16-
import java.util.List;
1711
import org.junit.jupiter.api.Test;
1812

13+
import java.time.Duration;
14+
15+
import static org.assertj.core.api.Assertions.assertThat;
16+
1917
public abstract class PropagationTest extends JavaSmokeTest {
2018

2119
@Override
@@ -32,14 +30,11 @@ protected TargetWaitStrategy getWaitStrategy() {
3230
}
3331

3432
@Test
35-
public void shouldPropagate() throws Exception {
33+
public void shouldPropagate() {
3634
startTarget(11);
3735
AggregatedHttpResponse response = client().get("/front").aggregate().join();
38-
List<SpanData> traces = waitForTraces();
39-
40-
TracesAssert.assertThat(traces).hasTracesSatisfyingExactly(trace -> {});
4136

42-
var traceId = traces.get(0).getTraceId();
37+
var traceId = testing.waitForTraces(1).get(0).get(0).getTraceId();
4338
assertThat(response.contentUtf8()).isEqualTo(traceId + ";" + traceId);
4439
}
4540
}

0 commit comments

Comments
 (0)