Skip to content

Commit 6edf27b

Browse files
Enable Pekko HTTP forked tests
1 parent 3a28977 commit 6edf27b

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

dd-java-agent/instrumentation/pekko/pekko-http-1.0/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ sourceSets {
4545
latestPekko10Test.scala.srcDir sourceSets.baseTest.scala
4646
}
4747

48+
['baseTest', 'latestPekko10Test', 'latestDepTest'].each {
49+
addForkedTestTask(it)
50+
}
51+
4852
dependencies {
4953
compileOnly libs.scala212
5054
compileOnly group: 'org.apache.pekko', name: 'pekko-http-core_2.12', version: '1.0.0'

dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/baseTest/groovy/PekkoHttpClientInstrumentationTest.groovy

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
1010
import datadog.trace.api.DDSpanTypes
1111
import datadog.trace.bootstrap.instrumentation.api.Tags
1212
import datadog.trace.instrumentation.pekkohttp.PekkoHttpClientDecorator
13+
import datadog.trace.instrumentation.pekkohttp.PekkoHttpSingleRequestInstrumentation.SingleRequestContextPropagationAdvice
1314
import scala.compat.java8.FutureConverters
1415
import scala.concurrent.Future
1516
import spock.lang.Shared
@@ -61,6 +62,14 @@ abstract class PekkoHttpClientInstrumentationTest extends HttpClientTest {
6162
return false
6263
}
6364

65+
def "does not inject context into a null request"() {
66+
when:
67+
SingleRequestContextPropagationAdvice.methodEnter(null)
68+
69+
then:
70+
noExceptionThrown()
71+
}
72+
6473
def "singleRequest exception trace"() {
6574
when:
6675
// Passing null causes NPE in singleRequest
@@ -73,14 +82,14 @@ abstract class PekkoHttpClientInstrumentationTest extends HttpClientTest {
7382
span {
7483
parent()
7584
operationName operation()
76-
resourceName "pekko-http.client.request"
85+
resourceName operation() // resource name is not set so defaults to operationName
7786
spanType DDSpanTypes.HTTP_CLIENT
7887
errored true
7988
tags {
8089
"$Tags.COMPONENT" "pekko-http-client"
8190
"$Tags.SPAN_KIND" Tags.SPAN_KIND_CLIENT
8291
errorTags(exception)
83-
defaultTags()
92+
defaultTags(false, false)
8493
}
8594
}
8695
}

dd-java-agent/instrumentation/pekko/pekko-http-1.0/src/main/java/datadog/trace/instrumentation/pekkohttp/PekkoHttpSingleRequestInstrumentation.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ public static class SingleRequestContextPropagationAdvice {
115115
@Advice.OnMethodEnter(suppress = Throwable.class)
116116
public static void methodEnter(
117117
@Advice.Argument(value = 0, readOnly = false) HttpRequest request) {
118+
if (request == null) {
119+
return;
120+
}
118121
final PekkoHttpHeaders headers = new PekkoHttpHeaders(request);
119122
DECORATE.injectContext(currentContext(), request, headers);
120123
request = headers.getRequest();

0 commit comments

Comments
 (0)