Skip to content

Commit d47f2b9

Browse files
authored
[browser][WBT] fix BlazorEventPipeTestWithMetrics test (#116334)
1 parent 5ba52ed commit d47f2b9

File tree

1 file changed

+47
-30
lines changed

1 file changed

+47
-30
lines changed

src/mono/wasm/Wasm.Build.Tests/Blazor/EventPipeDiagnosticsTests.cs

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,12 @@ await RunForBuildWithDotnetRun(new BlazorRunOptions(
8383
}
8484

8585
[Fact]
86-
[ActiveIssue("https://github.com/dotnet/runtime/issues/116303")]
8786
public async Task BlazorEventPipeTestWithMetrics()
8887
{
8988
string extraProperties = @"
9089
<EnableDiagnostics>true</EnableDiagnostics>
90+
<EventSourceSupport>true</EventSourceSupport>
91+
<MetricsSupport>true</MetricsSupport>
9192
<WBTDevServer>true</WBTDevServer>
9293
";
9394

@@ -120,28 +121,36 @@ await RunForBuildWithDotnetRun(new BlazorRunOptions(
120121
}
121122
));
122123

123-
var dictionary = ExtractInstrumentNames(info, "metrics.nettrace");
124-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.assembly.count"), "The metrics.nettrace should contain instrument");
125-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.exceptions"), "The metrics.nettrace should contain instrument");
126-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.collections"), "The metrics.nettrace should contain instrument");
127-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.heap.total_allocated"), "The metrics.nettrace should contain instrument");
128-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.heap.fragmentation.size"), "The metrics.nettrace should contain instrument");
129-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.heap.size"), "The metrics.nettrace should contain instrument");
130-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.memory.committed_size"), "The metrics.nettrace should contain instrument");
131-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.gc.pause.time"), "The metrics.nettrace should contain instrument");
132-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.jit.compilation.time"), "The metrics.nettrace should contain instrument");
133-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.jit.compiled_il.size"), "The metrics.nettrace should contain instrument");
134-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.jit.compiled_methods"), "The metrics.nettrace should contain instrument");
135-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.monitor.lock_contentions"), "The metrics.nettrace should contain instrument");
136-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.process.cpu.count"), "The metrics.nettrace should contain instrument");
137-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.process.memory.working_set"), "The metrics.nettrace should contain instrument");
138-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.queue.length"), "The metrics.nettrace should contain instrument");
139-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.thread.count"), "The metrics.nettrace should contain instrument");
140-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.work_item.count"), "The metrics.nettrace should contain instrument");
141-
Assert.True(dictionary.ContainsKey("System.Diagnostics.Metrics/instrumentName/dotnet.timer.count"), "The metrics.nettrace should contain instrument");
142-
Assert.True(dictionary.ContainsKey("Microsoft-DotNETCore-EventPipe/ArchInformation/Unknown"), "The metrics.nettrace should contain instrument");
143-
Assert.True(dictionary.ContainsKey("Microsoft-DotNETCore-EventPipe/CommandLine//managed BlazorBasicTestApp"), "The metrics.nettrace should contain instrument");
144-
Assert.True(dictionary.ContainsKey("Microsoft-DotNETCore-EventPipe/OSInformation/Unknown"), "The metrics.nettrace should contain instrument");
124+
var actualInstruments = ExtractInstrumentNames(info, "metrics.nettrace");
125+
var expectedInstruments = new[]
126+
{
127+
"System.Diagnostics.Metrics/instrumentName/dotnet.assembly.count",
128+
"System.Diagnostics.Metrics/instrumentName/dotnet.exceptions",
129+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.collections",
130+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.heap.total_allocated",
131+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.heap.fragmentation.size",
132+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.heap.size",
133+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.last_collection.memory.committed_size",
134+
"System.Diagnostics.Metrics/instrumentName/dotnet.gc.pause.time",
135+
"System.Diagnostics.Metrics/instrumentName/dotnet.jit.compilation.time",
136+
"System.Diagnostics.Metrics/instrumentName/dotnet.jit.compiled_il.size",
137+
"System.Diagnostics.Metrics/instrumentName/dotnet.jit.compiled_methods",
138+
"System.Diagnostics.Metrics/instrumentName/dotnet.monitor.lock_contentions",
139+
"System.Diagnostics.Metrics/instrumentName/dotnet.process.cpu.count",
140+
"System.Diagnostics.Metrics/instrumentName/dotnet.process.memory.working_set",
141+
"System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.queue.length",
142+
"System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.thread.count",
143+
"System.Diagnostics.Metrics/instrumentName/dotnet.thread_pool.work_item.count",
144+
"System.Diagnostics.Metrics/instrumentName/dotnet.timer.count",
145+
"Microsoft-DotNETCore-EventPipe/ArchInformation/Unknown",
146+
"Microsoft-DotNETCore-EventPipe/CommandLine//managed BlazorBasicTestApp",
147+
"Microsoft-DotNETCore-EventPipe/OSInformation/Unknown"
148+
};
149+
150+
foreach (var expectedInstrument in expectedInstruments)
151+
{
152+
Assert.True(actualInstruments.ContainsKey(expectedInstrument), $"The metrics.nettrace should contain instrument: {expectedInstrument}");
153+
}
145154
}
146155

147156
[Fact]
@@ -185,13 +194,21 @@ await RunForBuildWithDotnetRun(new BlazorRunOptions(
185194
}
186195
));
187196

188-
var dictionary = ExtractEventNames(info, "gcdump.nettrace");
189-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/GC/Start"), "The metrics.nettrace should contain GC/Start");
190-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/GC/Stop"), "The metrics.nettrace should contain GC/Stop");
191-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/GC/BulkEdge"), "The metrics.nettrace should contain GC/BulkEdge");
192-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/GC/BulkNode"), "The metrics.nettrace should contain GC/BulkNode");
193-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/GC/BulkRootEdge"), "The metrics.nettrace should contain GC/BulkRootEdge");
194-
Assert.True(dictionary.ContainsKey("Microsoft-Windows-DotNETRuntime/Type/BulkType"), "The metrics.nettrace should contain GC/BulkType");
197+
var actualEvents = ExtractEventNames(info, "gcdump.nettrace");
198+
var expectedEvents = new[]
199+
{
200+
"Microsoft-Windows-DotNETRuntime/GC/Start",
201+
"Microsoft-Windows-DotNETRuntime/GC/Stop",
202+
"Microsoft-Windows-DotNETRuntime/GC/BulkEdge",
203+
"Microsoft-Windows-DotNETRuntime/GC/BulkNode",
204+
"Microsoft-Windows-DotNETRuntime/GC/BulkRootEdge",
205+
"Microsoft-Windows-DotNETRuntime/Type/BulkType"
206+
};
207+
208+
foreach (var expectedEvent in expectedEvents)
209+
{
210+
Assert.True(actualEvents.ContainsKey(expectedEvent), $"The metrics.nettrace should contain event: {expectedEvent}");
211+
}
195212
}
196213

197214
private string ConvertTrace(ProjectInfo info, string fileName)

0 commit comments

Comments
 (0)