Skip to content

Commit ab7de69

Browse files
Expand coverage of matrix smoke test, enable tomee test (#279)
* Add ReceiveSendGreetingServlet and publish wf for matric project * Add donation doc to readme and missing license header * remove gson dependency and customer models * undo changes in test till new docker images are published * Make byte read wo need to buffer size * Expand coverage of matrix smoke test, enable tomee test * Remove JaegerExporterSmokeTest.groovy
1 parent 23728e5 commit ab7de69

10 files changed

+106
-101
lines changed

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/GlassFishSmokeTest.groovy

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ import org.testcontainers.containers.wait.strategy.WaitStrategy
1313

1414
@Ignore
1515
@AppServer(version = "5.2020.6", jdk = "8")
16-
@AppServer(version = "5.2020.6-jdk11", jdk = "11")
16+
@AppServer(version = "5.2020.6", jdk = "8-openj9")
17+
@AppServer(version = "5.2020.6", jdk = "11")
18+
@AppServer(version = "5.2020.6", jdk = "11-openj9")
1719
class GlassFishSmokeTest extends AppServerTest {
1820

1921
protected String getTargetImage(String jdk, String serverVersion) {
20-
"hypertrace/java-agent-test-containers:payara-${serverVersion}-jdk$jdk-20210224.596496007"
22+
"hypertrace/java-agent-test-containers:payara-${serverVersion}-jdk$jdk-20210226.602156580"
2123
}
2224

2325
@Override
@@ -42,4 +44,4 @@ class GlassFishSmokeTest extends AppServerTest {
4244
false
4345
}
4446

45-
}
47+
}

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/GrpcSmokeTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class GrpcSmokeTest extends SmokeTest {
2222
startTarget(jdk)
2323

2424
def channel = ManagedChannelBuilder.forAddress("localhost", target.getMappedPort(8080))
25-
.usePlaintext()
26-
.build()
25+
.usePlaintext()
26+
.build()
2727
def stub = TraceServiceGrpc.newBlockingStub(channel)
2828

2929
when:

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/JaegerExporterSmokeTest.groovy

Lines changed: 0 additions & 51 deletions
This file was deleted.

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/JettySmokeTest.groovy

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,28 @@
66
package org.hypertrace.agent.smoketest
77

88
@AppServer(version = "9.4.35", jdk = "8")
9+
@AppServer(version = "9.4.35", jdk = "8-openj9")
910
@AppServer(version = "9.4.35", jdk = "11")
11+
@AppServer(version = "9.4.35", jdk = "11-openj9")
1012
@AppServer(version = "10.0.0", jdk = "11")
13+
@AppServer(version = "10.0.0", jdk = "11-openj9")
1114
@AppServer(version = "10.0.0", jdk = "15")
15+
@AppServer(version = "10.0.0", jdk = "15-openj9")
1216
class JettySmokeTest extends AppServerTest {
1317

1418
protected String getTargetImage(String jdk, String serverVersion) {
15-
"hypertrace/java-agent-test-containers:jetty-${serverVersion}-jdk$jdk-20210224.596496007"
19+
"hypertrace/java-agent-test-containers:jetty-${serverVersion}-jdk$jdk-20210226.602156580"
1620
}
1721

1822
def getJettySpanName() {
19-
return serverVersion.startsWith("10.") ? "HandlerList.handle" : "HandlerCollection.handle"
23+
if (serverVersion == "9.4.35") {
24+
//this need to be present till we sync HT java agent with at least v.0.18.x of OTEL which uniformly returns
25+
//HandlerWrapper.handle
26+
"HandlerCollection.handle"
27+
}
28+
else {
29+
"HandlerList.handle"
30+
}
2031
}
2132

2233
@Override
@@ -28,4 +39,4 @@ class JettySmokeTest extends AppServerTest {
2839
}
2940
return path
3041
}
31-
}
42+
}

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/LibertyServletOnlySmokeTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ class LibertyServletOnlySmokeTest extends LibertySmokeTest {
1414
protected void customizeContainer(GenericContainer container) {
1515
container.withClasspathResourceMapping("liberty-servlet.xml", "/config/server.xml", BindMode.READ_ONLY)
1616
}
17-
}
17+
18+
}

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/LibertySmokeTest.groovy

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ import org.testcontainers.containers.wait.strategy.Wait
1010
import org.testcontainers.containers.wait.strategy.WaitStrategy
1111

1212
@AppServer(version = "20.0.0.12", jdk = "8")
13+
@AppServer(version = "20.0.0.12", jdk = "8-openj9")
1314
@AppServer(version = "20.0.0.12", jdk = "11")
14-
@AppServer(version = "20.0.0.12", jdk = "8-jdk-openj9")
15-
@AppServer(version = "20.0.0.12", jdk = "11-jdk-openj9")
15+
@AppServer(version = "20.0.0.12", jdk = "11-openj9")
1616
class LibertySmokeTest extends AppServerTest {
1717

1818
protected String getTargetImage(String jdk, String serverVersion) {
19-
"hypertrace/java-agent-test-containers:liberty-${serverVersion}-jdk$jdk-20210224.596496007"
19+
"hypertrace/java-agent-test-containers:liberty-${serverVersion}-jdk$jdk-20210226.602156580"
2020
}
2121

2222
@Override
@@ -33,6 +33,7 @@ class LibertySmokeTest extends AppServerTest {
3333
case "/app/headers":
3434
case "/app/exception":
3535
case "/app/asyncgreeting":
36+
case "/app/echo":
3637
return path
3738
}
3839
return 'HTTP GET'

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/SmokeTest.groovy

Lines changed: 63 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,15 @@ import spock.lang.Shared
3232
import spock.lang.Specification
3333

3434
abstract class SmokeTest extends Specification {
35-
private static final Pattern TRACE_ID_PATTERN = Pattern.compile(".*traceId=(?<traceId>[a-zA-Z0-9]+).*")
35+
private static final Pattern TRACE_ID_PATTERN = Pattern.compile(".*trace_id=(?<traceId>[a-zA-Z0-9]+).*")
3636

3737
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
3838

3939
protected static final OkHttpClient CLIENT = OkHttpUtils.client()
4040

4141
@Shared
42-
private Network network = Network.newNetwork()
42+
private Backend backend = Backend.getInstance()
43+
4344
@Shared
4445
protected String agentPath = System.getProperty("smoketest.javaagent.path")
4546

@@ -61,31 +62,8 @@ abstract class SmokeTest extends Specification {
6162
protected void customizeContainer(GenericContainer container) {
6263
}
6364

64-
@Shared
65-
private GenericContainer backend
66-
67-
@Shared
68-
private GenericContainer collector
69-
7065
def setupSpec() {
71-
backend = new GenericContainer<>("ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-20201128.1734635")
72-
.withExposedPorts(8080)
73-
.waitingFor(Wait.forHttp("/health").forPort(8080))
74-
.withNetwork(network)
75-
.withNetworkAliases("backend")
76-
.withImagePullPolicy(PullPolicy.alwaysPull())
77-
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("smoke.tests.backend")))
78-
backend.start()
79-
80-
collector = new GenericContainer<>("otel/opentelemetry-collector-dev:latest")
81-
.dependsOn(backend)
82-
.withNetwork(network)
83-
.withNetworkAliases("collector")
84-
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("smoke.tests.collector")))
85-
.withImagePullPolicy(PullPolicy.alwaysPull())
86-
.withCopyFileToContainer(MountableFile.forClasspathResource("/otel.yaml"), "/etc/otel.yaml")
87-
.withCommand("--config /etc/otel.yaml")
88-
collector.start()
66+
backend.setup()
8967
}
9068

9169
def startTarget(int jdk, String serverVersion = null) {
@@ -96,13 +74,13 @@ abstract class SmokeTest extends Specification {
9674
def output = new ToStringConsumer()
9775
target = new GenericContainer<>(getTargetImage(jdk, serverVersion))
9876
.withExposedPorts(8080)
99-
.withNetwork(network)
77+
.withNetwork(backend.network)
10078
.withLogConsumer(output)
10179
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("smoke.tests.target")))
10280
.withCopyFileToContainer(MountableFile.forHostPath(agentPath), "/hypertrace-agent-all.jar")
10381
.withEnv("JAVA_TOOL_OPTIONS", "-javaagent:/hypertrace-agent-all.jar -Dorg.hypertrace.agent.slf4j.simpleLogger.log.muzzleMatcher=true")
10482
.withEnv("OTEL_BSP_MAX_EXPORT_BATCH_SIZE", "1")
105-
.withEnv("OTEL_BSP_SCHEDULE_DELAY_MILLIS", "10")
83+
.withEnv("OTEL_BSP_SCHEDULE_DELAY", "10")
10684
.withEnv("OTEL_EXPORTER_OTLP_ENDPOINT", "http://collector:55680")
10785
.withEnv("HT_SERVICE_NAME", "CIService")
10886
.withEnv("HT_REPORTING_ENDPOINT", "http://collector:9411/api/v2/spans")
@@ -137,9 +115,7 @@ abstract class SmokeTest extends Specification {
137115
}
138116

139117
def cleanupSpec() {
140-
backend.stop()
141-
collector.stop()
142-
network.close()
118+
backend.cleanup()
143119
}
144120

145121
protected static Stream<AnyValue> findResourceAttribute(Collection<ExportTraceServiceRequest> traces,
@@ -247,4 +223,59 @@ abstract class SmokeTest extends Specification {
247223
}
248224
return encoding
249225
}
250-
}
226+
227+
static class Backend {
228+
private static final INSTANCE = new Backend()
229+
230+
private final Network network = Network.newNetwork()
231+
private GenericContainer backend
232+
private GenericContainer collector
233+
234+
boolean started = false
235+
236+
static Backend getInstance() {
237+
return INSTANCE
238+
}
239+
240+
def setup() {
241+
// we start backend & collector once for all tests
242+
if (started) {
243+
return
244+
}
245+
started = true
246+
Runtime.addShutdownHook { stop() }
247+
248+
backend = new GenericContainer<>("ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-20201128.1734635")
249+
.withExposedPorts(8080)
250+
.waitingFor(Wait.forHttp("/health").forPort(8080))
251+
.withNetwork(network)
252+
.withNetworkAliases("backend")
253+
.withImagePullPolicy(PullPolicy.alwaysPull())
254+
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("smoke.tests.backend")))
255+
backend.start()
256+
257+
collector = new GenericContainer<>("otel/opentelemetry-collector-dev:latest")
258+
.dependsOn(backend)
259+
.withNetwork(network)
260+
.withNetworkAliases("collector")
261+
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("smoke.tests.collector")))
262+
.withImagePullPolicy(PullPolicy.alwaysPull())
263+
.withCopyFileToContainer(MountableFile.forClasspathResource("/otel.yaml"), "/etc/otel.yaml")
264+
.withCommand("--config /etc/otel.yaml")
265+
collector.start()
266+
}
267+
268+
int getMappedPort(int originalPort) {
269+
return backend.getMappedPort(originalPort)
270+
}
271+
272+
def cleanup() {
273+
}
274+
275+
def stop() {
276+
backend?.stop()
277+
collector?.stop()
278+
network?.close()
279+
}
280+
}
281+
}

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/TomcatSmokeTest.groovy

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@
66
package org.hypertrace.agent.smoketest
77

88
@AppServer(version = "7.0.107", jdk = "8")
9+
@AppServer(version = "7.0.107", jdk = "8-openj9")
910
@AppServer(version = "8.5.60", jdk = "8")
11+
@AppServer(version = "8.5.60", jdk = "8-openj9")
1012
@AppServer(version = "8.5.60", jdk = "11")
13+
@AppServer(version = "8.5.60", jdk = "11-openj9")
1114
@AppServer(version = "9.0.40", jdk = "8")
15+
@AppServer(version = "9.0.40", jdk = "8-openj9")
1216
@AppServer(version = "9.0.40", jdk = "11")
17+
@AppServer(version = "9.0.40", jdk = "11-openj9")
1318
class TomcatSmokeTest extends AppServerTest {
1419

1520
protected String getTargetImage(String jdk, String serverVersion) {
16-
"hypertrace/java-agent-test-containers:tomcat-${serverVersion}-jdk$jdk-20210224.596496007"
21+
"hypertrace/java-agent-test-containers:tomcat-${serverVersion}-jdk$jdk-20210226.602156580"
1722
}
1823

1924
@Override

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/TomeeSmokeTest.groovy

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@ import java.time.Duration
1111
import org.testcontainers.containers.wait.strategy.Wait
1212
import org.testcontainers.containers.wait.strategy.WaitStrategy
1313

14-
@Ignore
1514
@AppServer(version = "7.0.0", jdk = "8")
15+
@AppServer(version = "7.0.0", jdk = "8-openj9")
1616
@AppServer(version = "8.0.6", jdk = "8")
17+
@AppServer(version = "8.0.6", jdk = "8-openj9")
1718
@AppServer(version = "8.0.6", jdk = "11")
19+
@AppServer(version = "8.0.6", jdk = "11-openj9")
1820
class TomeeSmokeTest extends AppServerTest {
1921

2022
protected String getTargetImage(String jdk, String serverVersion) {
21-
"hypertrace/java-agent-test-containers:tomee-${serverVersion}-jdk$jdk-20210224.596496007"
23+
"hypertrace/java-agent-test-containers:tomee-${serverVersion}-jdk$jdk-20210226.602156580"
2224
}
2325

2426
@Override
2527
protected WaitStrategy getWaitStrategy() {
2628
return Wait
27-
.forLogMessage(".*Server startup in.*", 1)
28-
.withStartupTimeout(Duration.ofMinutes(3))
29+
.forLogMessage(".*Server startup in.*", 1)
30+
.withStartupTimeout(Duration.ofMinutes(3))
2931
}
3032

3133
@Override

smoke-tests/src/test/groovy/org/hypertrace/agent/smoketest/WildflySmokeTest.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ import okhttp3.Request
1010
import spock.lang.Unroll
1111

1212
@AppServer(version = "13.0.0.Final", jdk = "8")
13+
@AppServer(version = "13.0.0.Final", jdk = "8-openj9")
1314
@AppServer(version = "17.0.1.Final", jdk = "11")
15+
@AppServer(version = "17.0.1.Final", jdk = "11-openj9")
1416
@AppServer(version = "21.0.0.Final", jdk = "11")
17+
@AppServer(version = "21.0.0.Final", jdk = "11-openj9")
1518
class WildflySmokeTest extends AppServerTest {
1619

1720
protected String getTargetImage(String jdk, String serverVersion) {
18-
"hypertrace/java-agent-test-containers:wildfly-${serverVersion}-jdk$jdk-20210224.596496007"
21+
"hypertrace/java-agent-test-containers:wildfly-${serverVersion}-jdk$jdk-20210226.602156580"
1922
}
2023

2124
@Override

0 commit comments

Comments
 (0)