|
43 | 43 | import datadog.trace.api.Config; |
44 | 44 | import datadog.trace.api.DDTags; |
45 | 45 | import datadog.trace.api.Platform; |
| 46 | +import datadog.trace.api.ProcessTags; |
46 | 47 | import datadog.trace.api.profiling.ProfilingSnapshot; |
47 | 48 | import datadog.trace.api.profiling.RecordingData; |
48 | 49 | import datadog.trace.api.profiling.RecordingInputStream; |
@@ -830,6 +831,34 @@ public void testShutdown() throws Exception { |
830 | 831 | verify(recording).release(); |
831 | 832 | } |
832 | 833 |
|
| 834 | + @ParameterizedTest(name = "process tags enabled ''{0}''") |
| 835 | + @ValueSource(booleans = {true, false}) |
| 836 | + public void testRequestWithProcessTags(boolean processTagsEnabled) throws Exception { |
| 837 | + when(config.isExperimentalPropagateProcessTagsEnabled()).thenReturn(processTagsEnabled); |
| 838 | + ProcessTags.reset(config); |
| 839 | + uploader = |
| 840 | + new ProfileUploader( |
| 841 | + config, configProvider, ioLogger, (int) TERMINATION_TIMEOUT.getSeconds()); |
| 842 | + |
| 843 | + server.enqueue(new MockResponse().setResponseCode(200)); |
| 844 | + uploadAndWait(RECORDING_TYPE, mockRecordingData()); |
| 845 | + |
| 846 | + final RecordedRequest recordedRequest = server.takeRequest(5, TimeUnit.SECONDS); |
| 847 | + assertNotNull(recordedRequest); |
| 848 | + final List<FileItem> multiPartItems = |
| 849 | + FileUpload.parse( |
| 850 | + recordedRequest.getBody().readByteArray(), recordedRequest.getHeader("Content-Type")); |
| 851 | + |
| 852 | + final FileItem rawEvent = multiPartItems.get(0); |
| 853 | + final Map<String, ?> parsed = new ObjectMapper().readValue(rawEvent.get(), Map.class); |
| 854 | + if (processTagsEnabled) { |
| 855 | + assertNotNull(ProcessTags.getTagsForSerialization()); |
| 856 | + assertEquals(ProcessTags.getTagsForSerialization().toString(), parsed.get("process_tags")); |
| 857 | + } else { |
| 858 | + assertNull(parsed.get("process_tags")); |
| 859 | + } |
| 860 | + } |
| 861 | + |
833 | 862 | private RecordingData mockRecordingData() throws IOException { |
834 | 863 | return mockRecordingData(false, ProfilingSnapshot.Kind.PERIODIC); |
835 | 864 | } |
|
0 commit comments