@@ -314,8 +314,9 @@ span_round_trip(_Config) ->
314
314
attributes = [{<<" attr-3" >>, <<" value-3" >>}]}], Events ),
315
315
attributes = otel_attributes :new ([{<<" attr-2" >>, <<" value-2" >>},
316
316
{attr_3 , true },
317
- {<<" map-key-1" >>, #{<<" map-key-1" >> => 123 }},
318
- {<<" list-key-1" >>, [3.14 , 9.345 ]}
317
+ {<<" map-key-1" >>, #{<<" map-kv-1" >> => 123 }},
318
+ {<<" binary-list-key-1" >>, [<<" value-1" >>, <<" value-2" >>]},
319
+ {<<" atom-list-key-1" >>, [kv1 , kv2 ]}
319
320
], 128 , 128 ),
320
321
status = # status {code = ? OTEL_STATUS_OK ,
321
322
message = <<" " >>},
@@ -327,6 +328,37 @@ span_round_trip(_Config) ->
327
328
328
329
PbSpan1 = maps :filter (fun (_ , V ) -> V =/= undefined end , PbSpan ),
329
330
DecodedProto = opentelemetry_exporter_trace_service_pb :decode_msg (Proto , span ),
331
+ % erlang:dump(DecodedProto),
332
+ ExpectedAttributes = [#{key => <<" map-key-1" >>,
333
+ value =>
334
+ #{value =>
335
+ {kvlist_value ,
336
+ #{values =>
337
+ [#{key => <<" map-kv-1" >>,
338
+ value =>
339
+ #{value =>
340
+ {int_value ,123 }}}]}}}},
341
+ #{key => <<" binary-list-key-1" >>,
342
+ value =>
343
+ #{value =>
344
+ {array_value ,
345
+ #{values =>
346
+ [#{value => {string_value ,<<" value-1" >>}},
347
+ #{value =>
348
+ {string_value ,<<" value-2" >>}}]}}}},
349
+ #{key => <<" atom-list-key-1" >>,
350
+ value =>
351
+ #{value =>
352
+ {array_value ,
353
+ #{values =>
354
+ [#{value => {string_value ,<<" value-1" >>}},
355
+ #{value =>
356
+ {string_value ,<<" value-2" >>}}]}}}},
357
+ #{key => <<" attr-2" >>,
358
+ value => #{value => {string_value ,<<" value-2" >>}}},
359
+ #{key => <<" attr_3" >>,
360
+ value => #{value => {string_value ,<<" true" >>}}}],
361
+ ? assertEqual (ExpectedAttributes , maps :get (attributes , DecodedProto )),
330
362
? assertEqual (maps :with ([trace_id , span_id ], DecodedProto ),
331
363
maps :with ([trace_id , span_id ], PbSpan1 )),
332
364
0 commit comments