diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/AgentDebugLoggingTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/AgentDebugLoggingTest.java index 3e77810bfb..d9fec0a7d6 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/AgentDebugLoggingTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/AgentDebugLoggingTest.java @@ -12,17 +12,14 @@ import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class AgentDebugLoggingTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20250915.17728045097"; - } - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*DEBUG io.opentelemetry.javaagent.tooling.VersionLogger.*"); + public AgentDebugLoggingTest() { + super( + SmokeTestTarget.springBoot("20250915.17728045097") + .waitStrategy( + new TargetWaitStrategy.Log( + Duration.ofMinutes(1), + ".*DEBUG io.opentelemetry.javaagent.tooling.VersionLogger.*"))); } @DisplayName("verifies that debug logging is working by checking for a debug log on startup") diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java index 608ab18d27..4750c26605 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/DeclarativeConfigurationSmokeTest.java @@ -12,36 +12,19 @@ import io.opentelemetry.semconv.incubating.ContainerIncubatingAttributes; import io.opentelemetry.semconv.incubating.HostIncubatingAttributes; import io.opentelemetry.semconv.incubating.ProcessIncubatingAttributes; import io.opentelemetry.semconv.incubating.TelemetryIncubatingAttributes; -import java.time.Duration; -import java.util.List; -import java.util.Map; import org.junit.jupiter.api.condition.DisabledIf; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class DeclarativeConfigurationSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20241021.11448062567"; - } - @Override - protected List getExtraResources() { - return List.of(ResourceMapping.of("declarative-config.yaml", "/declarative-config.yaml")); - } - - @Override - protected Map getExtraEnv() { - return Map.of("OTEL_EXPERIMENTAL_CONFIG_FILE", "declarative-config.yaml"); - } - - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*Started SpringbootApplication in.*"); + public DeclarativeConfigurationSmokeTest() { + super( + SmokeTestTarget.springBoot("20241021.11448062567") + .env("OTEL_EXPERIMENTAL_CONFIG_FILE", "declarative-config.yaml") + .extraResources( + ResourceMapping.of("declarative-config.yaml", "/declarative-config.yaml"))); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/JavaSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/JavaSmokeTest.java index 88ebff9a2e..a381795bc8 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/JavaSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/JavaSmokeTest.java @@ -5,8 +5,6 @@ package io.opentelemetry.smoketest; -import static java.util.Collections.emptyList; -import static java.util.Collections.emptyMap; import static java.util.stream.Collectors.toSet; import static org.assertj.core.api.Assertions.assertThat; @@ -14,8 +12,6 @@ import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension; import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; import io.opentelemetry.smoketest.windows.WindowsTestContainerManager; import io.opentelemetry.testing.internal.armeria.client.WebClient; -import java.util.List; -import java.util.Map; import java.util.Set; import java.util.function.Consumer; import java.util.regex.Pattern; @@ -33,6 +29,8 @@ public abstract class JavaSmokeTest implements TelemetryRetrieverProvider { private static final Pattern TRACE_ID_PATTERN = Pattern.compile(".*trace_id=(?[a-zA-Z0-9]+).*"); protected static final TestContainerManager containerManager = createContainerManager(); + + private final SmokeTestTarget target; private static TelemetryRetriever telemetryRetriever; protected String agentPath = @@ -40,38 +38,18 @@ public abstract class JavaSmokeTest implements TelemetryRetrieverProvider { @RegisterExtension static final AutoCleanupExtension autoCleanup = AutoCleanupExtension.create(); - protected WebClient client() { + public JavaSmokeTest(SmokeTestTarget.Builder builder) { + this.target = customize(builder).build(); + } + + protected SmokeTestTarget.Builder customize(SmokeTestTarget.Builder builder) { + return builder; + } + + public WebClient client() { return WebClient.of("h1c://localhost:" + containerManager.getTargetMappedPort(8080)); } - /** Subclasses can override this method to pass jvm arguments in another environment variable */ - protected String getJvmArgsEnvVarName() { - return "JAVA_TOOL_OPTIONS"; - } - - /** Subclasses can override this method to customise target application's environment */ - protected Map getExtraEnv() { - return emptyMap(); - } - - /** Subclasses can override this method to disable setting default service name */ - protected boolean getSetServiceName() { - return true; - } - - /** Subclasses can override this method to provide additional files to copy to target container */ - protected List getExtraResources() { - return emptyList(); - } - - /** - * Subclasses can override this method to provide additional ports that should be exposed from the - * target container - */ - protected List getExtraPorts() { - return emptyList(); - } - @BeforeAll static void setUp() { containerManager.startEnvironmentOnce(); @@ -83,33 +61,19 @@ public abstract class JavaSmokeTest implements TelemetryRetrieverProvider { } protected Consumer startTarget(String jdk, String serverVersion, boolean windows) { - String targetImage = getTargetImage(jdk, serverVersion, windows); + String targetImage = target.getTargetImage(jdk, serverVersion, windows); autoCleanup.deferCleanup(() -> containerManager.stopTarget()); return containerManager.startTarget( targetImage, agentPath, - getJvmArgsEnvVarName(), - getExtraEnv(), - getSetServiceName(), - getExtraResources(), - getExtraPorts(), - getWaitStrategy(), - getCommand()); - } - - protected abstract String getTargetImage(String jdk); - - protected String getTargetImage(String jdk, String serverVersion, boolean windows) { - return getTargetImage(jdk); - } - - protected TargetWaitStrategy getWaitStrategy() { - return null; - } - - protected String[] getCommand() { - return null; + target.getJvmArgsEnvVarName(), + target.getExtraEnv(), + target.getSetServiceName(), + target.getExtraResources(), + target.getExtraPorts(), + target.getWaitStrategy(), + target.getCommand()); } protected static void assertVersionLogged(Consumer output, String version) { diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java index 57233a9a8d..90be55a7e1 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/LogsSmokeTest.java @@ -8,7 +8,6 @@ package io.opentelemetry.smoketest; import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.sdk.logs.data.LogRecordData; -import java.time.Duration; import java.util.Collection; import org.junit.jupiter.api.condition.DisabledIf; import org.junit.jupiter.params.ParameterizedTest; @@ -16,17 +15,9 @@ import org.junit.jupiter.params.provider.ValueSource; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class LogsSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20211213.1570880324"; - } - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*Started SpringbootApplication in.*"); + public LogsSmokeTest() { + super(SmokeTestTarget.springBoot("20211213.1570880324")); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java index 9f7d3ea009..bbdad35eda 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/QuarkusSmokeTest.java @@ -16,21 +16,16 @@ import org.junit.jupiter.params.provider.ValueSource; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class QuarkusSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-quarkus:jdk" - + jdk - + "-20250915.17728045126"; - } - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log(Duration.ofMinutes(1), ".*Listening on.*"); - } - - @Override - protected boolean getSetServiceName() { - return false; + public QuarkusSmokeTest() { + super( + SmokeTestTarget.builder( + jdk -> + "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-quarkus:jdk" + + jdk + + "-20250915.17728045126") + .waitStrategy(new TargetWaitStrategy.Log(Duration.ofMinutes(1), ".*Listening on.*")) + .setServiceName(false)); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java index 41b66d60f3..66cc46ae53 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SdkDisabledSmokeTest.java @@ -7,7 +7,6 @@ package io.opentelemetry.smoketest; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; -import java.util.Map; import java.util.function.Consumer; import java.util.jar.Attributes; import java.util.jar.JarFile; @@ -18,16 +17,9 @@ import org.testcontainers.containers.output.OutputFrame; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class SdkDisabledSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20211213.1570880324"; - } - @Override - protected Map getExtraEnv() { - return Map.of("OTEL_SDK_DISABLED", "true"); + public SdkDisabledSmokeTest() { + super(SmokeTestTarget.springBoot("20211213.1570880324").env("OTEL_SDK_DISABLED", "true")); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java index 1b9a007077..ed71ba8fc6 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java @@ -5,8 +5,6 @@ package io.opentelemetry.smoketest; -import java.util.Collections; -import java.util.Map; import org.junit.jupiter.api.condition.DisabledIf; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -14,17 +12,14 @@ import org.junit.jupiter.params.provider.ValueSource; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class SecurityManagerSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-security-manager:jdk" - + jdk - + "-20250915.17728045123"; - } - - @Override - protected Map getExtraEnv() { - return Collections.singletonMap( - "OTEL_JAVAAGENT_EXPERIMENTAL_SECURITY_MANAGER_SUPPORT_ENABLED", "true"); + public SecurityManagerSmokeTest() { + super( + SmokeTestTarget.builder( + jdk -> + "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-security-manager:jdk" + + jdk + + "-20250915.17728045123") + .env("OTEL_JAVAAGENT_EXPERIMENTAL_SECURITY_MANAGER_SUPPORT_ENABLED", "true")); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SmokeTestTarget.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SmokeTestTarget.java new file mode 100644 index 0000000000..8e943b5273 --- /dev/null +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SmokeTestTarget.java @@ -0,0 +1,171 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.smoketest; + +import java.time.Duration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import javax.annotation.Nullable; + +public class SmokeTestTarget { + + @FunctionalInterface + public interface GetTargetImage { + String getTargetImage(String jdk, String serverVersion, boolean windows); + } + + private final GetTargetImage getTargetImage; + + private final String[] command; + private final String jvmArgsEnvVarName; + private final boolean setServiceName; + private final Map extraEnv; + private final List extraResources; + private final TargetWaitStrategy waitStrategy; + private final List extraPorts; + + public SmokeTestTarget( + GetTargetImage getTargetImage, + String[] command, + String jvmArgsEnvVarName, + boolean setServiceName, + Map extraEnv, + List extraResources, + TargetWaitStrategy waitStrategy, + List extraPorts) { + this.getTargetImage = getTargetImage; + this.command = command; + this.jvmArgsEnvVarName = jvmArgsEnvVarName; + this.setServiceName = setServiceName; + this.extraEnv = extraEnv; + this.extraResources = extraResources; + this.waitStrategy = waitStrategy; + this.extraPorts = extraPorts; + } + + public String getTargetImage(String jdk, String serverVersion, boolean windows) { + return getTargetImage.getTargetImage(jdk, serverVersion, windows); + } + + public String[] getCommand() { + return command; + } + + /** Subclasses can override this method to pass jvm arguments in another environment variable */ + public String getJvmArgsEnvVarName() { + return jvmArgsEnvVarName; + } + + /** Subclasses can override this method to customise target application's environment */ + public Map getExtraEnv() { + return extraEnv; + } + + /** Subclasses can override this method to disable setting default service name */ + public boolean getSetServiceName() { + return setServiceName; + } + + /** Subclasses can override this method to provide additional files to copy to target container */ + public List getExtraResources() { + return extraResources; + } + + /** + * Subclasses can override this method to provide additional ports that should be exposed from the + * target container + */ + public List getExtraPorts() { + return extraPorts; + } + + public TargetWaitStrategy getWaitStrategy() { + return waitStrategy; + } + + public static Builder builder(Function getTargetImage) { + return builder((jdk, serverVersion, windows) -> getTargetImage.apply(jdk)); + } + + public static Builder builder(GetTargetImage getTargetImage) { + return new Builder(getTargetImage); + } + + public static Builder springBoot(String imageTag) { + return builder( + jdk -> + String.format( + "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk%s-%s", + jdk, imageTag)) + .waitStrategy( + new TargetWaitStrategy.Log( + Duration.ofMinutes(1), ".*Started SpringbootApplication in.*")); + } + + public static class Builder { + private final GetTargetImage getTargetImage; + private String[] command; + private String jvmArgsEnvVarName = "JAVA_TOOL_OPTIONS"; + private boolean setServiceName = true; + private final Map extraEnv = new HashMap<>(); + private List extraResources = List.of(); + private TargetWaitStrategy waitStrategy; + private List extraPorts = List.of(); + + private Builder(GetTargetImage getTargetImage) { + this.getTargetImage = getTargetImage; + } + + public Builder command(String... command) { + this.command = command; + return this; + } + + public Builder jvmArgsEnvVarName(String jvmArgsEnvVarName) { + this.jvmArgsEnvVarName = jvmArgsEnvVarName; + return this; + } + + public Builder setServiceName(boolean setServiceName) { + this.setServiceName = setServiceName; + return this; + } + + public Builder env(String key, String value) { + this.extraEnv.put(key, value); + return this; + } + + public Builder extraResources(ResourceMapping... resources) { + this.extraResources = List.of(resources); + return this; + } + + public Builder waitStrategy(@Nullable TargetWaitStrategy waitStrategy) { + this.waitStrategy = waitStrategy; + return this; + } + + public Builder extraPorts(Integer... ports) { + this.extraPorts = List.of(ports); + return this; + } + + public SmokeTestTarget build() { + return new SmokeTestTarget( + getTargetImage, + command, + jvmArgsEnvVarName, + setServiceName, + extraEnv, + extraResources, + waitStrategy, + extraPorts); + } + } +} diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java index 0029c10d07..ab979e3b1b 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java @@ -14,9 +14,7 @@ import io.opentelemetry.semconv.ServiceAttributes; import io.opentelemetry.semconv.incubating.OsIncubatingAttributes; import io.opentelemetry.semconv.incubating.TelemetryIncubatingAttributes; import io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes; -import java.time.Duration; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.function.Consumer; import java.util.jar.Attributes; @@ -29,27 +27,13 @@ import org.testcontainers.containers.output.OutputFrame; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class SpringBootSmokeTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20241021.11448062567"; - } - @Override - protected boolean getSetServiceName() { - return false; - } - - @Override - protected Map getExtraEnv() { - return Map.of("OTEL_METRICS_EXPORTER", "otlp", "OTEL_RESOURCE_ATTRIBUTES", "foo=bar"); - } - - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*Started SpringbootApplication in.*"); + public SpringBootSmokeTest() { + super( + SmokeTestTarget.springBoot("20241021.11448062567") + .setServiceName(false) + .env("OTEL_METRICS_EXPORTER", "otlp") + .env("OTEL_RESOURCE_ATTRIBUTES", "foo=bar")); } @ParameterizedTest diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3MultiPropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3MultiPropagationTest.java index db81448233..c0fcd8b453 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3MultiPropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3MultiPropagationTest.java @@ -5,13 +5,14 @@ package io.opentelemetry.smoketest.propagation; -import java.util.Map; +import io.opentelemetry.smoketest.SmokeTestTarget; import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class B3MultiPropagationTest extends PropagationTest { + @Override - protected Map getExtraEnv() { - return Map.of("otel.propagators", "b3multi"); + protected SmokeTestTarget.Builder customize(SmokeTestTarget.Builder builder) { + return builder.env("otel.propagators", "b3multi"); } } diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3PropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3PropagationTest.java index 73fc159129..80f8741bcd 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3PropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/B3PropagationTest.java @@ -5,13 +5,14 @@ package io.opentelemetry.smoketest.propagation; -import java.util.Map; +import io.opentelemetry.smoketest.SmokeTestTarget; import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class B3PropagationTest extends PropagationTest { + @Override - protected Map getExtraEnv() { - return Map.of("otel.propagators", "b3"); + protected SmokeTestTarget.Builder customize(SmokeTestTarget.Builder builder) { + return builder.env("otel.propagators", "b3"); } } diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/OtTracePropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/OtTracePropagationTest.java index 698f5980b0..087f4123cf 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/OtTracePropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/OtTracePropagationTest.java @@ -8,26 +8,16 @@ package io.opentelemetry.smoketest.propagation; import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.smoketest.JavaSmokeTest; -import io.opentelemetry.smoketest.TargetWaitStrategy; +import io.opentelemetry.smoketest.SmokeTestTarget; import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse; -import java.time.Duration; -import java.util.Map; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class OtTracePropagationTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20211213.1570880324"; - } - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*Started SpringbootApplication in.*"); + public OtTracePropagationTest() { + super(SmokeTestTarget.springBoot("20211213.1570880324").env("otel.propagators", "ottrace")); } @Test @@ -38,9 +28,4 @@ class OtTracePropagationTest extends JavaSmokeTest { assertThat(response.contentUtf8()).matches("[0-9a-f]{16}" + traceId + ";[0]{16}" + traceId); } - - @Override - protected Map getExtraEnv() { - return Map.of("otel.propagators", "ottrace"); - } } diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/PropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/PropagationTest.java index ab4ef67aa6..07088f9161 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/PropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/PropagationTest.java @@ -8,24 +8,14 @@ package io.opentelemetry.smoketest.propagation; import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.smoketest.JavaSmokeTest; -import io.opentelemetry.smoketest.TargetWaitStrategy; +import io.opentelemetry.smoketest.SmokeTestTarget; import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse; -import java.time.Duration; import org.junit.jupiter.api.Test; public abstract class PropagationTest extends JavaSmokeTest { - @Override - protected String getTargetImage(String jdk) { - return "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk" - + jdk - + "-20211213.1570880324"; - } - - @Override - protected TargetWaitStrategy getWaitStrategy() { - return new TargetWaitStrategy.Log( - Duration.ofMinutes(1), ".*Started SpringbootApplication in.*"); + public PropagationTest() { + super(SmokeTestTarget.springBoot("20211213.1570880324")); } @Test diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/W3CPropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/W3CPropagationTest.java index 5bb4b70da5..1513b54543 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/W3CPropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/W3CPropagationTest.java @@ -5,13 +5,14 @@ package io.opentelemetry.smoketest.propagation; -import java.util.Map; +import io.opentelemetry.smoketest.SmokeTestTarget; import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class W3CPropagationTest extends PropagationTest { + @Override - protected Map getExtraEnv() { - return Map.of("otel.propagators", "tracecontext"); + protected SmokeTestTarget.Builder customize(SmokeTestTarget.Builder builder) { + return builder.env("otel.propagators", "tracecontext"); } } diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/XRayPropagationTest.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/XRayPropagationTest.java index 71d2968457..85a70c1a6a 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/XRayPropagationTest.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/propagation/XRayPropagationTest.java @@ -5,13 +5,14 @@ package io.opentelemetry.smoketest.propagation; -import java.util.Map; +import io.opentelemetry.smoketest.SmokeTestTarget; import org.junit.jupiter.api.condition.DisabledIf; @DisabledIf("io.opentelemetry.smoketest.TestContainerManager#useWindowsContainers") class XRayPropagationTest extends PropagationTest { + @Override - protected Map getExtraEnv() { - return Map.of("otel.propagators", "xray"); + protected SmokeTestTarget.Builder customize(SmokeTestTarget.Builder builder) { + return builder.env("otel.propagators", "xray"); } }