Fix ActivitySource.StartActivity when start time is provided (#39884)
authorAlan West <3676547+alanwest@users.noreply.github.com>
Fri, 24 Jul 2020 16:25:05 +0000 (09:25 -0700)
committerGitHub <noreply@github.com>
Fri, 24 Jul 2020 16:25:05 +0000 (09:25 -0700)
src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs
src/libraries/System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs

index 5cb9924..d842a0c 100644 (file)
@@ -986,7 +986,7 @@ namespace System.Diagnostics
                 }
             }
 
-            activity.StartTimeUtc = startTime == default ? DateTime.UtcNow : startTime.DateTime;
+            activity.StartTimeUtc = startTime == default ? DateTime.UtcNow : startTime.UtcDateTime;
 
             activity.IsAllDataRequested = request == ActivityDataRequest.AllData || request == ActivityDataRequest.AllDataAndRecorded;
 
index 2f3be9d..5b22f16 100644 (file)
@@ -323,12 +323,15 @@ namespace System.Diagnostics.Tests
                 attributes.Add(new KeyValuePair<string, object>("tag2", "tagValue2"));
                 attributes.Add(new KeyValuePair<string, object>("tag3", "tagValue3"));
 
-                using (Activity activity = source.StartActivity("a1", ActivityKind.Client, ctx, attributes, links))
+                DateTimeOffset startTime = DateTimeOffset.UtcNow;
+
+                using (Activity activity = source.StartActivity("a1", ActivityKind.Client, ctx, attributes, links, startTime))
                 {
                     Assert.NotNull(activity);
                     Assert.Equal("a1", activity.OperationName);
                     Assert.Equal("a1", activity.DisplayName);
                     Assert.Equal(ActivityKind.Client, activity.Kind);
+                    Assert.Equal(startTime, activity.StartTimeUtc);
 
                     Assert.Equal(ctx.TraceId, activity.TraceId);
                     Assert.Equal(ctx.SpanId, activity.ParentSpanId);