@@ -287,6 +287,33 @@ func TestStartSpanWithFollowsFrom(t *testing.T) {
287
287
288
288
// TODO: [rghetia] Equivalent of SpanKind Test.
289
289
290
+ func TestSetSpanAttributesOnStart (t * testing.T ) {
291
+ te := & testExporter {}
292
+ tp , _ := NewProvider (WithSyncer (te ))
293
+ span := startSpan (tp , "StartSpanAttribute" , apitrace .WithAttributes (key .String ("key1" , "value1" )))
294
+ got , err := endSpan (te , span )
295
+ if err != nil {
296
+ t .Fatal (err )
297
+ }
298
+
299
+ want := & export.SpanData {
300
+ SpanContext : core.SpanContext {
301
+ TraceID : tid ,
302
+ TraceFlags : 0x1 ,
303
+ },
304
+ ParentSpanID : sid ,
305
+ Name : "StartSpanAttribute/span0" ,
306
+ Attributes : []core.KeyValue {
307
+ key .String ("key1" , "value1" ),
308
+ },
309
+ SpanKind : "internal" ,
310
+ HasRemoteParent : true ,
311
+ }
312
+ if diff := cmpDiff (got , want ); diff != "" {
313
+ t .Errorf ("SetSpanAttributesOnStart: -got +want %s" , diff )
314
+ }
315
+ }
316
+
290
317
func TestSetSpanAttributes (t * testing.T ) {
291
318
te := & testExporter {}
292
319
tp , _ := NewProvider (WithSyncer (te ))
@@ -655,20 +682,20 @@ func checkChild(p core.SpanContext, apiSpan apitrace.Span) error {
655
682
656
683
// startSpan starts a span with a name "span0". See startNamedSpan for
657
684
// details.
658
- func startSpan (tp * Provider , trName string ) apitrace.Span {
659
- return startNamedSpan (tp , trName , "span0" )
685
+ func startSpan (tp * Provider , trName string , args ... apitrace. SpanOption ) apitrace.Span {
686
+ return startNamedSpan (tp , trName , "span0" , args ... )
660
687
}
661
688
662
689
// startNamed Span is a test utility func that starts a span with a
663
690
// passed name and with ChildOf option. remote span context contains
664
691
// TraceFlags with sampled bit set. This allows the span to be
665
692
// automatically sampled.
666
- func startNamedSpan (tp * Provider , trName , name string ) apitrace.Span {
693
+ func startNamedSpan (tp * Provider , trName , name string , args ... apitrace.SpanOption ) apitrace.Span {
694
+ args = append (args , apitrace .ChildOf (remoteSpanContext ()), apitrace .WithRecord ())
667
695
_ , span := tp .GetTracer (trName ).Start (
668
696
context .Background (),
669
697
name ,
670
- apitrace .ChildOf (remoteSpanContext ()),
671
- apitrace .WithRecord (),
698
+ args ... ,
672
699
)
673
700
return span
674
701
}
0 commit comments