Skip to content

Commit b26369c

Browse files
jbachorikclaude
andcommitted
test: add process context preservation test for registerAttributeKeys
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent e9d5901 commit b26369c

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

ddprof-test/src/test/java/com/datadoghq/profiler/context/ProcessContextTest.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,41 @@ public void testNativeReadBackFunctionality() {
105105
assertEquals(tracerVersion, readContext.telemetrySdkVersion, "Tracer version should match");
106106
assertEquals("dd-trace-java", readContext.telemetrySdkName, "Tracer name should match");
107107
}
108+
109+
/**
110+
* Tests that registerAttributeKeys correctly updates the process context.
111+
* registerAttributeKeys reads the existing process context and republishes it
112+
* with thread_ctx_config set. This test verifies that all original process
113+
* context fields are preserved after that republish.
114+
*/
115+
@Test
116+
public void testRegisterAttributeKeysSetsProcessContext() {
117+
Assumptions.assumeTrue(Platform.isLinux());
118+
119+
String env = "attr-keys-env";
120+
String hostname = "attr-keys-host";
121+
String runtimeId = "attr-keys-instance";
122+
String service = "attr-keys-service";
123+
String version = "2.0.0";
124+
String tracerVersion = "4.1.0";
125+
126+
OTelContext context = OTelContext.getInstance();
127+
context.setProcessContext(env, hostname, runtimeId, service, version, tracerVersion);
128+
129+
// registerAttributeKeys reads the existing process context and republishes
130+
// it with thread_ctx_config populated. All original fields must survive.
131+
context.registerAttributeKeys("http.route", "db.system");
132+
133+
OTelContext.ProcessContext readContext = context.readProcessContext();
134+
135+
assertNotNull(readContext, "Process context must still be readable after registerAttributeKeys");
136+
assertEquals(env, readContext.deploymentEnvironmentName, "Environment name must survive registerAttributeKeys");
137+
assertEquals(hostname, readContext.hostName, "Host name must survive registerAttributeKeys");
138+
assertEquals(runtimeId, readContext.serviceInstanceId, "Service instance ID must survive registerAttributeKeys");
139+
assertEquals(service, readContext.serviceName, "Service name must survive registerAttributeKeys");
140+
assertEquals(version, readContext.serviceVersion, "Service version must survive registerAttributeKeys");
141+
assertEquals("java", readContext.telemetrySdkLanguage, "Tracer language must survive registerAttributeKeys");
142+
assertEquals(tracerVersion, readContext.telemetrySdkVersion, "Tracer version must survive registerAttributeKeys");
143+
assertEquals("dd-trace-java", readContext.telemetrySdkName, "Tracer name must survive registerAttributeKeys");
144+
}
108145
}

0 commit comments

Comments
 (0)