Skip to content

Commit 35a718a

Browse files
committed
address comments
1 parent 6447e32 commit 35a718a

1 file changed

Lines changed: 128 additions & 127 deletions

File tree

dd-trace-core/src/test/java/datadog/trace/common/writer/ddagent/TraceMapperV04PayloadTest.java

Lines changed: 128 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -265,140 +265,141 @@ public void accept(int messageCount, ByteBuffer buffer) {
265265
Payload payload = mapper.newPayload().withBody(messageCount, buffer);
266266
payload.writeTo(this);
267267
captured.flip();
268-
MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(captured);
269-
int traceCount = unpacker.unpackArrayHeader();
270-
for (int i = 0; i < traceCount; ++i) {
271-
List<TraceGenerator.PojoSpan> expectedTrace = expectedTraces.get(position++);
272-
int spanCount = unpacker.unpackArrayHeader();
273-
assertEquals(expectedTrace.size(), spanCount);
274-
for (int k = 0; k < spanCount; ++k) {
275-
TraceGenerator.PojoSpan expectedSpan = expectedTrace.get(k);
276-
int elementCount = unpacker.unpackMapHeader();
277-
boolean hasMetaStruct = !expectedSpan.getMetaStruct().isEmpty();
278-
assertEquals(hasMetaStruct ? 13 : 12, elementCount);
279-
assertEquals("service", unpacker.unpackString());
280-
String serviceName = unpacker.unpackString();
281-
assertEqualsWithNullAsEmpty(expectedSpan.getServiceName(), serviceName);
282-
assertEquals("name", unpacker.unpackString());
283-
String operationName = unpacker.unpackString();
284-
assertEqualsWithNullAsEmpty(expectedSpan.getOperationName(), operationName);
285-
assertEquals("resource", unpacker.unpackString());
286-
String resourceName = unpacker.unpackString();
287-
assertEqualsWithNullAsEmpty(expectedSpan.getResourceName(), resourceName);
288-
assertEquals("trace_id", unpacker.unpackString());
289-
long traceId = unpacker.unpackValue().asNumberValue().toLong();
290-
assertEquals(expectedSpan.getTraceId().toLong(), traceId);
291-
assertEquals("span_id", unpacker.unpackString());
292-
long spanId = unpacker.unpackValue().asNumberValue().toLong();
293-
assertEquals(expectedSpan.getSpanId(), spanId);
294-
assertEquals("parent_id", unpacker.unpackString());
295-
long parentId = unpacker.unpackValue().asNumberValue().toLong();
296-
assertEquals(expectedSpan.getParentId(), parentId);
297-
assertEquals("start", unpacker.unpackString());
298-
long startTime = unpacker.unpackLong();
299-
assertEquals(expectedSpan.getStartTime(), startTime);
300-
assertEquals("duration", unpacker.unpackString());
301-
long duration = unpacker.unpackLong();
302-
assertEquals(expectedSpan.getDurationNano(), duration);
303-
assertEquals("type", unpacker.unpackString());
304-
String type = unpacker.unpackString();
305-
assertEquals(expectedSpan.getType(), type);
306-
assertEquals("error", unpacker.unpackString());
307-
int error = unpacker.unpackInt();
308-
assertEquals(expectedSpan.getError(), error);
309-
assertEquals("metrics", unpacker.unpackString());
310-
int metricsSize = unpacker.unpackMapHeader();
311-
HashMap<String, Number> metrics = new HashMap<>();
312-
for (int j = 0; j < metricsSize; ++j) {
313-
String key = unpacker.unpackString();
314-
Number metricValue = null;
315-
MessageFormat format = unpacker.getNextFormat();
316-
switch (format) {
317-
case NEGFIXINT:
318-
case POSFIXINT:
319-
case INT8:
320-
case UINT8:
321-
case INT16:
322-
case UINT16:
323-
case INT32:
324-
case UINT32:
325-
metricValue = unpacker.unpackInt();
326-
break;
327-
case INT64:
328-
case UINT64:
329-
metricValue = unpacker.unpackLong();
330-
break;
331-
case FLOAT32:
332-
metricValue = unpacker.unpackFloat();
333-
break;
334-
case FLOAT64:
335-
metricValue = unpacker.unpackDouble();
336-
break;
337-
default:
338-
Assertions.fail("Unexpected type in metrics values: " + format);
339-
}
340-
if (DD_MEASURED.toString().equals(key)) {
341-
assertTrue(metricValue.intValue() == 1 || !expectedSpan.isMeasured());
342-
} else if (DDSpanContext.PRIORITY_SAMPLING_KEY.equals(key)) {
343-
// check that priority sampling is only on first and last span
344-
if (k == 0 || k == spanCount - 1) {
345-
assertEquals(expectedSpan.samplingPriority(), metricValue.intValue());
268+
try (MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(captured)) {
269+
int traceCount = unpacker.unpackArrayHeader();
270+
for (int i = 0; i < traceCount; ++i) {
271+
List<TraceGenerator.PojoSpan> expectedTrace = expectedTraces.get(position++);
272+
int spanCount = unpacker.unpackArrayHeader();
273+
assertEquals(expectedTrace.size(), spanCount);
274+
for (int k = 0; k < spanCount; ++k) {
275+
TraceGenerator.PojoSpan expectedSpan = expectedTrace.get(k);
276+
int elementCount = unpacker.unpackMapHeader();
277+
boolean hasMetaStruct = !expectedSpan.getMetaStruct().isEmpty();
278+
assertEquals(hasMetaStruct ? 13 : 12, elementCount);
279+
assertEquals("service", unpacker.unpackString());
280+
String serviceName = unpacker.unpackString();
281+
assertEqualsWithNullAsEmpty(expectedSpan.getServiceName(), serviceName);
282+
assertEquals("name", unpacker.unpackString());
283+
String operationName = unpacker.unpackString();
284+
assertEqualsWithNullAsEmpty(expectedSpan.getOperationName(), operationName);
285+
assertEquals("resource", unpacker.unpackString());
286+
String resourceName = unpacker.unpackString();
287+
assertEqualsWithNullAsEmpty(expectedSpan.getResourceName(), resourceName);
288+
assertEquals("trace_id", unpacker.unpackString());
289+
long traceId = unpacker.unpackValue().asNumberValue().toLong();
290+
assertEquals(expectedSpan.getTraceId().toLong(), traceId);
291+
assertEquals("span_id", unpacker.unpackString());
292+
long spanId = unpacker.unpackValue().asNumberValue().toLong();
293+
assertEquals(expectedSpan.getSpanId(), spanId);
294+
assertEquals("parent_id", unpacker.unpackString());
295+
long parentId = unpacker.unpackValue().asNumberValue().toLong();
296+
assertEquals(expectedSpan.getParentId(), parentId);
297+
assertEquals("start", unpacker.unpackString());
298+
long startTime = unpacker.unpackLong();
299+
assertEquals(expectedSpan.getStartTime(), startTime);
300+
assertEquals("duration", unpacker.unpackString());
301+
long duration = unpacker.unpackLong();
302+
assertEquals(expectedSpan.getDurationNano(), duration);
303+
assertEquals("type", unpacker.unpackString());
304+
String type = unpacker.unpackString();
305+
assertEquals(expectedSpan.getType(), type);
306+
assertEquals("error", unpacker.unpackString());
307+
int error = unpacker.unpackInt();
308+
assertEquals(expectedSpan.getError(), error);
309+
assertEquals("metrics", unpacker.unpackString());
310+
int metricsSize = unpacker.unpackMapHeader();
311+
HashMap<String, Number> metrics = new HashMap<>();
312+
for (int j = 0; j < metricsSize; ++j) {
313+
String key = unpacker.unpackString();
314+
Number metricValue = null;
315+
MessageFormat format = unpacker.getNextFormat();
316+
switch (format) {
317+
case NEGFIXINT:
318+
case POSFIXINT:
319+
case INT8:
320+
case UINT8:
321+
case INT16:
322+
case UINT16:
323+
case INT32:
324+
case UINT32:
325+
metricValue = unpacker.unpackInt();
326+
break;
327+
case INT64:
328+
case UINT64:
329+
metricValue = unpacker.unpackLong();
330+
break;
331+
case FLOAT32:
332+
metricValue = unpacker.unpackFloat();
333+
break;
334+
case FLOAT64:
335+
metricValue = unpacker.unpackDouble();
336+
break;
337+
default:
338+
Assertions.fail("Unexpected type in metrics values: " + format);
339+
}
340+
if (DD_MEASURED.toString().equals(key)) {
341+
assertTrue(metricValue.intValue() == 1 || !expectedSpan.isMeasured());
342+
} else if (DDSpanContext.PRIORITY_SAMPLING_KEY.equals(key)) {
343+
// check that priority sampling is only on first and last span
344+
if (k == 0 || k == spanCount - 1) {
345+
assertEquals(expectedSpan.samplingPriority(), metricValue.intValue());
346+
} else {
347+
assertFalse(expectedSpan.hasSamplingPriority());
348+
}
346349
} else {
347-
assertFalse(expectedSpan.hasSamplingPriority());
350+
metrics.put(key, metricValue);
348351
}
349-
} else {
350-
metrics.put(key, metricValue);
351352
}
352-
}
353-
for (Map.Entry<String, Number> metric : metrics.entrySet()) {
354-
if (metric.getValue() instanceof Double || metric.getValue() instanceof Float) {
355-
assertEquals(
356-
((Number) expectedSpan.getTag(metric.getKey())).doubleValue(),
357-
metric.getValue().doubleValue(),
358-
0.001);
359-
} else {
360-
// Groovy compared numerically, Java requires explicit long comparison to avoid
361-
// Long/Integer type mismatch from different msgpack integer encoding widths
362-
assertEquals(
363-
((Number) expectedSpan.getTag(metric.getKey())).longValue(),
364-
metric.getValue().longValue());
353+
metrics.forEach((key, value) -> {
354+
if (value instanceof Double || value instanceof Float) {
355+
assertEquals(
356+
((Number) expectedSpan.getTag(key)).doubleValue(),
357+
value.doubleValue(),
358+
0.001);
359+
} else {
360+
// Groovy compared numerically, Java requires explicit long comparison to avoid
361+
// Long/Integer type mismatch from different msgpack integer encoding widths
362+
assertEquals(
363+
((Number) expectedSpan.getTag(key)).longValue(),
364+
value.longValue());
365+
}
366+
});
367+
assertEquals("meta", unpacker.unpackString());
368+
int metaSize = unpacker.unpackMapHeader();
369+
HashMap<String, String> meta = new HashMap<>();
370+
for (int j = 0; j < metaSize; ++j) {
371+
meta.put(unpacker.unpackString(), unpacker.unpackString());
365372
}
366-
}
367-
assertEquals("meta", unpacker.unpackString());
368-
int metaSize = unpacker.unpackMapHeader();
369-
HashMap<String, String> meta = new HashMap<>();
370-
for (int j = 0; j < metaSize; ++j) {
371-
meta.put(unpacker.unpackString(), unpacker.unpackString());
372-
}
373-
for (Map.Entry<String, String> entry : meta.entrySet()) {
374-
if (Tags.HTTP_STATUS.equals(entry.getKey())) {
375-
assertEquals(String.valueOf(expectedSpan.getHttpStatusCode()), entry.getValue());
376-
} else if (DDTags.ORIGIN_KEY.equals(entry.getKey())) {
377-
assertEquals(expectedSpan.getOrigin(), entry.getValue());
378-
} else if (DDTags.PROCESS_TAGS.equals(entry.getKey())) {
379-
assertTrue(Config.get().isExperimentalPropagateProcessTagsEnabled());
380-
assertEquals(0, k);
381-
assertEquals(ProcessTags.getTagsForSerialization().toString(), entry.getValue());
382-
processTagsCount++;
383-
} else {
384-
Object tag = expectedSpan.getTag(entry.getKey());
385-
if (null != tag) {
386-
assertEquals(String.valueOf(tag), entry.getValue());
373+
for (Map.Entry<String, String> entry : meta.entrySet()) {
374+
if (Tags.HTTP_STATUS.equals(entry.getKey())) {
375+
assertEquals(String.valueOf(expectedSpan.getHttpStatusCode()), entry.getValue());
376+
} else if (DDTags.ORIGIN_KEY.equals(entry.getKey())) {
377+
assertEquals(expectedSpan.getOrigin(), entry.getValue());
378+
} else if (DDTags.PROCESS_TAGS.equals(entry.getKey())) {
379+
assertTrue(Config.get().isExperimentalPropagateProcessTagsEnabled());
380+
assertEquals(0, k);
381+
assertEquals(ProcessTags.getTagsForSerialization().toString(), entry.getValue());
382+
processTagsCount++;
387383
} else {
388-
assertEquals(expectedSpan.getBaggage().get(entry.getKey()), entry.getValue());
384+
Object tag = expectedSpan.getTag(entry.getKey());
385+
if (null != tag) {
386+
assertEquals(String.valueOf(tag), entry.getValue());
387+
} else {
388+
assertEquals(expectedSpan.getBaggage().get(entry.getKey()), entry.getValue());
389+
}
389390
}
390391
}
391-
}
392-
if (hasMetaStruct) {
393-
Map<String, Object> metaStruct = expectedSpan.getMetaStruct();
394-
assertEquals("meta_struct", unpacker.unpackString());
395-
int metaStructSize = unpacker.unpackMapHeader();
396-
for (int j = 0; j < metaStructSize; ++j) {
397-
String field = unpacker.unpackString();
398-
if (metaStructVerifier != null) {
399-
byte[] binary = new byte[unpacker.unpackBinaryHeader()];
400-
unpacker.readPayload(binary);
401-
metaStructVerifier.verify(metaStruct.get(field), binary);
392+
if (hasMetaStruct) {
393+
Map<String, Object> metaStruct = expectedSpan.getMetaStruct();
394+
assertEquals("meta_struct", unpacker.unpackString());
395+
int metaStructSize = unpacker.unpackMapHeader();
396+
for (int j = 0; j < metaStructSize; ++j) {
397+
String field = unpacker.unpackString();
398+
if (metaStructVerifier != null) {
399+
byte[] binary = new byte[unpacker.unpackBinaryHeader()];
400+
unpacker.readPayload(binary);
401+
metaStructVerifier.verify(metaStruct.get(field), binary);
402+
}
402403
}
403404
}
404405
}

0 commit comments

Comments
 (0)