|
15 | 15 | // </copyright> |
16 | 16 |
|
17 | 17 | using System; |
| 18 | +using System.Collections.Generic; |
18 | 19 | using System.Diagnostics; |
| 20 | +using System.Threading.Tasks; |
19 | 21 | using Xunit; |
20 | 22 |
|
21 | 23 | namespace OpenTelemetry.Trace.Tests |
@@ -74,6 +76,45 @@ public void Tracer_StartRootSpan_BadArgs_NullSpanName() |
74 | 76 | Assert.Null(span3.Activity.DisplayName); |
75 | 77 | } |
76 | 78 |
|
| 79 | + [Fact(Skip = "See https://github.com/open-telemetry/opentelemetry-dotnet/issues/2803")] |
| 80 | + public async Task Tracer_StartRootSpan_StartsNewTrace() |
| 81 | + { |
| 82 | + var exportedItems = new List<Activity>(); |
| 83 | + |
| 84 | + using var tracer = Sdk.CreateTracerProviderBuilder() |
| 85 | + .AddSource("tracername") |
| 86 | + .AddInMemoryExporter(exportedItems) |
| 87 | + .Build(); |
| 88 | + |
| 89 | + async Task DoSomeAsyncWork() |
| 90 | + { |
| 91 | + await Task.Delay(10); |
| 92 | + using (tracer.GetTracer("tracername").StartRootSpan("RootSpan2")) |
| 93 | + { |
| 94 | + await Task.Delay(10); |
| 95 | + } |
| 96 | + } |
| 97 | + |
| 98 | + using (tracer.GetTracer("tracername").StartActiveSpan("RootSpan1")) |
| 99 | + { |
| 100 | + await DoSomeAsyncWork(); |
| 101 | + } |
| 102 | + |
| 103 | + Assert.Equal(2, exportedItems.Count); |
| 104 | + |
| 105 | + var rootSpan2 = exportedItems[0]; |
| 106 | + var rootSpan1 = exportedItems[1]; |
| 107 | + Assert.Equal("RootSpan2", rootSpan2.DisplayName); |
| 108 | + Assert.Equal("RootSpan1", rootSpan1.DisplayName); |
| 109 | + Assert.Equal(default(ActivitySpanId), rootSpan1.ParentSpanId); |
| 110 | + |
| 111 | + // This is where this test currently fails |
| 112 | + // rootSpan2 should be a root span of a new trace and not a child of rootSpan1 |
| 113 | + Assert.Equal(default(ActivitySpanId), rootSpan2.ParentSpanId); |
| 114 | + Assert.NotEqual(rootSpan2.TraceId, rootSpan1.TraceId); |
| 115 | + Assert.NotEqual(rootSpan2.ParentSpanId, rootSpan1.SpanId); |
| 116 | + } |
| 117 | + |
77 | 118 | [Fact] |
78 | 119 | public void Tracer_StartSpan_BadArgs_NullSpanName() |
79 | 120 | { |
|
0 commit comments