Skip to content

Commit cedc49c

Browse files
Add support for Weaver v0.11 (#10012)
1 parent bda3c35 commit cedc49c

File tree

29 files changed

+1512
-25
lines changed

29 files changed

+1512
-25
lines changed

dd-java-agent/instrumentation/weaver/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ muzzle {
1919
}
2020
}
2121

22-
addTestSuiteForDir('latestDepTest', 'test')
22+
addTestSuiteForDir('latestDepTest', 'latestDepTest')
2323
// weaver 0.8.4 is the earliest supported version before the org migration
2424
addTestSuiteForDir('weaver084Test', 'test')
2525

2626
dependencies {
2727
compileOnly group: 'org.typelevel', name: 'weaver-cats_3', version: '0.9.0'
28+
// Weaver is published for Scala > 2.12
29+
compileOnly group: 'org.scala-lang', name: 'scala-library', version: '2.12.20'
2830

2931
testImplementation project(':dd-java-agent:agent-ci-visibility:civisibility-instrumentation-test-fixtures')
3032

dd-java-agent/instrumentation/weaver/gradle.lockfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,13 @@ org.typelevel:cats-kernel_3:2.10.0=compileClasspath,testCompileClasspath,testRun
241241
org.typelevel:cats-kernel_3:2.11.0=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
242242
org.typelevel:cats-mtl_3:1.3.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
243243
org.typelevel:scalac-compat-annotation_3:0.1.4=compileClasspath,latestDepTestCompileClasspath,latestDepTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath
244-
org.typelevel:weaver-cats-core_3:0.10.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
244+
org.typelevel:weaver-cats-core_3:0.11.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
245245
org.typelevel:weaver-cats-core_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath
246-
org.typelevel:weaver-cats_3:0.10.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
246+
org.typelevel:weaver-cats_3:0.11.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
247247
org.typelevel:weaver-cats_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath
248-
org.typelevel:weaver-core_3:0.10.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
248+
org.typelevel:weaver-core_3:0.11.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
249249
org.typelevel:weaver-core_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath
250-
org.typelevel:weaver-framework_3:0.10.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
250+
org.typelevel:weaver-framework_3:0.11.1=latestDepTestCompileClasspath,latestDepTestRuntimeClasspath
251251
org.typelevel:weaver-framework_3:0.9.0=compileClasspath,testCompileClasspath,testRuntimeClasspath,weaver084TestCompileClasspath,weaver084TestRuntimeClasspath
252252
org.webjars:jquery:3.5.1=latestDepTestRuntimeClasspath,testRuntimeClasspath,weaver084TestRuntimeClasspath
253253
org.xmlresolver:xmlresolver:4.4.3=spotbugs
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import datadog.trace.api.DisableTestTrace
2+
import datadog.trace.civisibility.CiVisibilityInstrumentationTest
3+
import datadog.trace.instrumentation.weaver.DatadogWeaverReporter
4+
import datadog.trace.instrumentation.weaver.WeaverIntegrationTestRunner
5+
import datadog.trace.instrumentation.weaver.WeaverUtils
6+
import org.example.TestFailed
7+
import org.example.TestFailedExceptionPure
8+
import org.example.TestFailedPure
9+
import org.example.TestIgnored
10+
import org.example.TestSucceed
11+
import org.example.TestSucceedGlobalResource
12+
import org.example.TestSucceedPure
13+
import org.example.TestSucceedSuiteResource
14+
15+
@DisableTestTrace(reason = "avoid self-tracing")
16+
class WeaverLatestDepTest extends CiVisibilityInstrumentationTest {
17+
18+
def "test #testcaseName"() {
19+
runTests(tests)
20+
21+
assertSpansData(testcaseName)
22+
23+
where:
24+
testcaseName | tests
25+
"test-succeed-pure" | [TestSucceedPure]
26+
"test-failed-pure" | [TestFailedPure]
27+
"test-failed-exception-pure" | [TestFailedExceptionPure]
28+
"test-succeeded" | [TestSucceed]
29+
"test-failed" | [TestFailed]
30+
"test-ignored" | [TestIgnored]
31+
"test-succeed-suite-resource" | [TestSucceedSuiteResource]
32+
"test-succeed-global-resource" | [TestSucceedGlobalResource]
33+
}
34+
35+
def "test capabilities tagging"() {
36+
setup:
37+
runTests([TestSucceed])
38+
39+
expect:
40+
assertCapabilities(WeaverUtils.CAPABILITIES, 4)
41+
}
42+
43+
@Override
44+
String instrumentedLibraryName() {
45+
return "weaver"
46+
}
47+
48+
@Override
49+
String instrumentedLibraryVersion() {
50+
return WeaverUtils.weaverVersion
51+
}
52+
53+
void runTests(List<Class<?>> tests) {
54+
DatadogWeaverReporter.start()
55+
def testNames = tests.collect { it.name }
56+
WeaverIntegrationTestRunner.runTests(testNames)
57+
DatadogWeaverReporter.stop()
58+
}
59+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[ ]
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
[ {
2+
"content" : {
3+
"duration" : ${content_duration},
4+
"error" : 0,
5+
"meta" : {
6+
"_dd.p.tid" : ${content_meta__dd_p_tid},
7+
"component" : "weaver",
8+
"dummy_ci_tag" : "dummy_ci_tag_value",
9+
"env" : "none",
10+
"library_version" : ${content_meta_library_version},
11+
"span.kind" : "test_suite_end",
12+
"test.codeowners" : "[\"owner1\",\"owner2\"]",
13+
"test.framework" : "weaver",
14+
"test.framework_version" : ${content_meta_test_framework_version},
15+
"test.module" : "weaver",
16+
"test.source.file" : "dummy_source_path",
17+
"test.status" : "fail",
18+
"test.suite" : "org.example.TestFailedExceptionPure",
19+
"test.type" : "test",
20+
"test_session.name" : "session-name"
21+
},
22+
"metrics" : {
23+
"_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count},
24+
"test.source.end" : 19,
25+
"test.source.start" : 11
26+
},
27+
"name" : "weaver.test_suite",
28+
"resource" : "org.example.TestFailedExceptionPure",
29+
"service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
30+
"start" : ${content_start},
31+
"test_module_id" : ${content_test_module_id},
32+
"test_session_id" : ${content_test_session_id},
33+
"test_suite_id" : ${content_test_suite_id}
34+
},
35+
"type" : "test_suite_end",
36+
"version" : 1
37+
}, {
38+
"content" : {
39+
"duration" : ${content_duration_2},
40+
"error" : 1,
41+
"meta" : {
42+
"_dd.profiling.ctx" : "test",
43+
"_dd.tracer_host" : ${content_meta__dd_tracer_host},
44+
"component" : "weaver",
45+
"dummy_ci_tag" : "dummy_ci_tag_value",
46+
"env" : "none",
47+
"error.message" : ${content_meta_error_message},
48+
"error.stack" : ${content_meta_error_stack},
49+
"error.type" : "java.lang.RuntimeException",
50+
"language" : "jvm",
51+
"library_version" : ${content_meta_library_version},
52+
"runtime-id" : ${content_meta_runtime_id},
53+
"span.kind" : "test",
54+
"test.codeowners" : "[\"owner1\",\"owner2\"]",
55+
"test.framework" : "weaver",
56+
"test.framework_version" : ${content_meta_test_framework_version},
57+
"test.module" : "weaver",
58+
"test.name" : "pure exception test",
59+
"test.source.file" : "dummy_source_path",
60+
"test.status" : "fail",
61+
"test.suite" : "org.example.TestFailedExceptionPure",
62+
"test.type" : "test",
63+
"test_session.name" : "session-name"
64+
},
65+
"metrics" : {
66+
"_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_2},
67+
"_dd.profiling.enabled" : 0,
68+
"_dd.trace_span_attribute_schema" : 0,
69+
"process_id" : ${content_metrics_process_id}
70+
},
71+
"name" : "weaver.test",
72+
"parent_id" : ${content_parent_id},
73+
"resource" : "org.example.TestFailedExceptionPure.pure exception test",
74+
"service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
75+
"span_id" : ${content_span_id},
76+
"start" : ${content_start_2},
77+
"test_module_id" : ${content_test_module_id},
78+
"test_session_id" : ${content_test_session_id},
79+
"test_suite_id" : ${content_test_suite_id},
80+
"trace_id" : ${content_trace_id}
81+
},
82+
"type" : "test",
83+
"version" : 2
84+
}, {
85+
"content" : {
86+
"duration" : ${content_duration_3},
87+
"error" : 0,
88+
"meta" : {
89+
"_dd.p.tid" : ${content_meta__dd_p_tid_2},
90+
"_dd.profiling.ctx" : "test",
91+
"_dd.tracer_host" : ${content_meta__dd_tracer_host},
92+
"component" : "weaver",
93+
"dummy_ci_tag" : "dummy_ci_tag_value",
94+
"env" : "none",
95+
"language" : "jvm",
96+
"library_version" : ${content_meta_library_version},
97+
"runtime-id" : ${content_meta_runtime_id},
98+
"span.kind" : "test_session_end",
99+
"test.command" : "weaver",
100+
"test.framework" : "weaver",
101+
"test.framework_version" : ${content_meta_test_framework_version},
102+
"test.status" : "fail",
103+
"test.type" : "test",
104+
"test_session.name" : "session-name"
105+
},
106+
"metrics" : {
107+
"_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_3},
108+
"_dd.profiling.enabled" : 0,
109+
"_dd.trace_span_attribute_schema" : 0,
110+
"process_id" : ${content_metrics_process_id}
111+
},
112+
"name" : "weaver.test_session",
113+
"resource" : "weaver",
114+
"service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
115+
"start" : ${content_start_3},
116+
"test_session_id" : ${content_test_session_id}
117+
},
118+
"type" : "test_session_end",
119+
"version" : 1
120+
}, {
121+
"content" : {
122+
"duration" : ${content_duration_4},
123+
"error" : 0,
124+
"meta" : {
125+
"_dd.p.tid" : ${content_meta__dd_p_tid_3},
126+
"component" : "weaver",
127+
"dummy_ci_tag" : "dummy_ci_tag_value",
128+
"env" : "none",
129+
"library_version" : ${content_meta_library_version},
130+
"span.kind" : "test_module_end",
131+
"test.framework" : "weaver",
132+
"test.framework_version" : ${content_meta_test_framework_version},
133+
"test.module" : "weaver",
134+
"test.status" : "fail",
135+
"test.type" : "test",
136+
"test_session.name" : "session-name"
137+
},
138+
"metrics" : {
139+
"_dd.host.vcpu_count" : ${content_metrics__dd_host_vcpu_count_4}
140+
},
141+
"name" : "weaver.test_module",
142+
"resource" : "weaver",
143+
"service" : "worker.org.gradle.process.internal.worker.gradleworkermain",
144+
"start" : ${content_start_4},
145+
"test_module_id" : ${content_test_module_id},
146+
"test_session_id" : ${content_test_session_id}
147+
},
148+
"type" : "test_module_end",
149+
"version" : 1
150+
} ]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[ ]

0 commit comments

Comments
 (0)