From 5d1af65dc66d289d64e54814a4d5e91412b75fe4 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Fri, 24 Jul 2020 09:25:05 -0700 Subject: [PATCH] Fix ActivitySource.StartActivity when start time is provided (#39884) --- .../src/System/Diagnostics/Activity.cs | 2 +- .../System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs index 5cb9924..d842a0c 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs @@ -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; diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs index 2f3be9d..5b22f16 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/ActivitySourceTests.cs @@ -323,12 +323,15 @@ namespace System.Diagnostics.Tests attributes.Add(new KeyValuePair("tag2", "tagValue2")); attributes.Add(new KeyValuePair("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); -- 2.7.4