52 lines
1.5 KiB
Groovy
52 lines
1.5 KiB
Groovy
/*
|
|
* Copyright The OpenTelemetry Authors
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package io.opentelemetry.smoketest
|
|
|
|
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest
|
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
|
|
import spock.lang.IgnoreIf
|
|
|
|
import java.time.Duration
|
|
|
|
import static io.opentelemetry.smoketest.TestContainerManager.useWindowsContainers
|
|
|
|
@IgnoreIf({ useWindowsContainers() })
|
|
class PlaySmokeTest extends SmokeTest {
|
|
|
|
protected String getTargetImage(String jdk) {
|
|
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-play:jdk$jdk-20210917.1246460868"
|
|
}
|
|
|
|
@Override
|
|
protected TargetWaitStrategy getWaitStrategy() {
|
|
return new TargetWaitStrategy.Log(Duration.ofMinutes(1), ".*Listening for HTTP.*")
|
|
}
|
|
|
|
def "play smoke test on JDK #jdk"(int jdk) {
|
|
setup:
|
|
startTarget(jdk)
|
|
when:
|
|
def response = client().get("/welcome?id=1").aggregate().join()
|
|
Collection<ExportTraceServiceRequest> traces = waitForTraces()
|
|
|
|
then:
|
|
response.contentUtf8() == "Welcome 1."
|
|
//Both play and akka-http support produce spans with the same name.
|
|
//One internal, one SERVER
|
|
countSpansByName(traces, '/welcome') == 2
|
|
|
|
new TraceInspector(traces).countFilteredAttributes(SemanticAttributes.HTTP_ROUTE.key, "/welcome") == 1
|
|
|
|
cleanup:
|
|
stopTarget()
|
|
|
|
where:
|
|
// Play doesn't support Java 16 (or 17) yet
|
|
// https://github.com/playframework/playframework/pull/10819
|
|
jdk << [8, 11, 15]
|
|
}
|
|
}
|