From 81d835a5d8fe034d26c8752cb0d0dffd0fa182b6 Mon Sep 17 00:00:00 2001 From: Ankita Khera Date: Thu, 10 Sep 2026 13:50:00 -0700 Subject: [PATCH] follow-up to telemetry collection PR --- .../FindAllReferencesHandlerTests.cs | 32 +++++++++++++++ .../Telemetry/RequestTelemetryLoggerTests.cs | 40 ------------------- 2 files changed, 32 insertions(+), 40 deletions(-) diff --git a/src/LanguageServer/ProtocolUnitTests/References/FindAllReferencesHandlerTests.cs b/src/LanguageServer/ProtocolUnitTests/References/FindAllReferencesHandlerTests.cs index db358bb284a61..bbd3697770949 100644 --- a/src/LanguageServer/ProtocolUnitTests/References/FindAllReferencesHandlerTests.cs +++ b/src/LanguageServer/ProtocolUnitTests/References/FindAllReferencesHandlerTests.cs @@ -12,11 +12,13 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis.Host; +using Microsoft.CodeAnalysis.Internal.Log; using Microsoft.CodeAnalysis.LanguageServer.Handler; using Microsoft.CodeAnalysis.ReferenceHighlighting; using Microsoft.CodeAnalysis.Test.Utilities; using Microsoft.CodeAnalysis.Testing; using Microsoft.CodeAnalysis.Text; +using Microsoft.CodeAnalysis.UnitTests.Logging; using Roslyn.Test.Utilities; using Roslyn.Text.Adornments; using Roslyn.Utilities; @@ -108,6 +110,36 @@ void M2() AssertHighlightCount(results, expectedDefinitionCount: 1, expectedWrittenReferenceCount: 0, expectedReferenceCount: 3); } + [Theory, CombinatorialData] + public async Task StreamedReferencesWithResultsAreNotReportedAsEmpty(bool mutatingLspWorkspace) + { + var markup = + """ + class C + { + void M() + { + {|caret:|}M(); + } + } + """; + await using var testLspServer = await CreateTestLspServerAsync(markup, mutatingLspWorkspace, CapabilitiesWithVSExtensions); + using var progress = BufferedProgress.Create(null); + using var telemetry = RoslynTelemetry.SetCurrent(new RoslynTelemetry()); + var sink = new TestTelemetryEventSink(); + using var registration = RoslynTelemetry.Current.AddEventSink(sink); + + var results = await RunFindAllReferencesAsync( + testLspServer, + testLspServer.GetLocations("caret").Single(), + progress); + + Assert.NotEmpty(results); + Assert.DoesNotContain( + sink.PostedEvents, + telemetryEvent => telemetryEvent.Name == "vs/ide/vbcs/lsp/symbolrequest/emptyresult"); + } + [Theory, CombinatorialData] public async Task TestFindAllReferencesAsync_Class(bool mutatingLspWorkspace) { diff --git a/src/LanguageServer/ProtocolUnitTests/Telemetry/RequestTelemetryLoggerTests.cs b/src/LanguageServer/ProtocolUnitTests/Telemetry/RequestTelemetryLoggerTests.cs index 2d0839d5c083e..a69e61f9964e2 100644 --- a/src/LanguageServer/ProtocolUnitTests/Telemetry/RequestTelemetryLoggerTests.cs +++ b/src/LanguageServer/ProtocolUnitTests/Telemetry/RequestTelemetryLoggerTests.cs @@ -11,9 +11,7 @@ using Microsoft.CodeAnalysis.Text; using Microsoft.CodeAnalysis.UnitTests.Logging; using Roslyn.LanguageServer.Protocol; -using Roslyn.Test.Utilities; using Xunit; -using Xunit.Abstractions; namespace Microsoft.CodeAnalysis.LanguageServer.UnitTests.Telemetry; @@ -126,41 +124,3 @@ await logger.ReportEmptySymbolResultAsync( Assert.Equal(expectedPositionKind, properties["vs.ide.vbcs.lsp.symbolrequest.emptyresult.positionkind"]); } } - -[CollectionDefinition(nameof(RequestTelemetryHandlerTests), DisableParallelization = true)] -public sealed class RequestTelemetryHandlerTestsCollection; - -[Collection(nameof(RequestTelemetryHandlerTests))] -[UseExportProvider] -public sealed class RequestTelemetryHandlerTests(ITestOutputHelper testOutputHelper) : AbstractLanguageServerProtocolTests(testOutputHelper) -{ - [Theory, CombinatorialData] - public async Task StreamedReferencesWithResultsAreNotReportedAsEmpty(bool mutatingLspWorkspace) - { - var markup = - """ - class C - { - void M() - { - {|caret:|}M(); - } - } - """; - await using var testLspServer = await CreateTestLspServerAsync(markup, mutatingLspWorkspace, CapabilitiesWithVSExtensions); - using var progress = BufferedProgress.Create(null); - using var telemetry = RoslynTelemetry.SetCurrent(new RoslynTelemetry()); - var sink = new TestTelemetryEventSink(); - using var registration = RoslynTelemetry.Current.AddEventSink(sink); - - var results = await References.FindAllReferencesHandlerTests.RunFindAllReferencesAsync( - testLspServer, - testLspServer.GetLocations("caret").Single(), - progress); - - Assert.NotEmpty(results); - Assert.DoesNotContain( - sink.PostedEvents, - telemetryEvent => telemetryEvent.Name == "vs/ide/vbcs/lsp/symbolrequest/emptyresult"); - } -}