Skip to content

Commit c5be18c

Browse files
Copilottimcassell
andcommitted
Remove unused class, consolidate diagnosers, and add SeparateLogic tests
Co-authored-by: timcassell <35501420+timcassell@users.noreply.github.com>
1 parent 2a9c805 commit c5be18c

File tree

2 files changed

+19
-41
lines changed

2 files changed

+19
-41
lines changed

tests/BenchmarkDotNet.IntegrationTests/Diagnosers/MockInProcessDiagnoser.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public sealed class MockInProcessDiagnoser : BaseMockInProcessDiagnoser
7070
{
7171
public override string DiagnoserName => nameof(MockInProcessDiagnoser);
7272
public override RunMode DiagnoserRunMode => RunMode.NoOverhead;
73-
public override string ExpectedResult => "MockResult";
73+
public override string ExpectedResult => "NoOverheadResult";
7474

7575
public override (Type? handlerType, string? serializedConfig) GetSeparateProcessHandlerTypeAndSerializedConfig(BenchmarkCase benchmarkCase)
7676
=> (typeof(MockInProcessDiagnoserHandler), ExpectedResult);
@@ -80,20 +80,6 @@ public sealed class MockInProcessDiagnoserHandler : BaseMockInProcessDiagnoserHa
8080
{
8181
}
8282

83-
public sealed class MockInProcessDiagnoserNoOverhead : BaseMockInProcessDiagnoser
84-
{
85-
public override string DiagnoserName => nameof(MockInProcessDiagnoserNoOverhead);
86-
public override RunMode DiagnoserRunMode => RunMode.NoOverhead;
87-
public override string ExpectedResult => "NoOverheadResult";
88-
89-
public override (Type? handlerType, string? serializedConfig) GetSeparateProcessHandlerTypeAndSerializedConfig(BenchmarkCase benchmarkCase)
90-
=> (typeof(MockInProcessDiagnoserNoOverheadHandler), ExpectedResult);
91-
}
92-
93-
public sealed class MockInProcessDiagnoserNoOverheadHandler : BaseMockInProcessDiagnoserHandler
94-
{
95-
}
96-
9783
public sealed class MockInProcessDiagnoserExtraRun : BaseMockInProcessDiagnoser
9884
{
9985
public override string DiagnoserName => nameof(MockInProcessDiagnoserExtraRun);
@@ -123,4 +109,17 @@ public override (Type? handlerType, string? serializedConfig) GetSeparateProcess
123109

124110
public sealed class MockInProcessDiagnoserNoneHandler : BaseMockInProcessDiagnoserHandler
125111
{
112+
}
113+
114+
public sealed class MockInProcessDiagnoserSeparateLogic : BaseMockInProcessDiagnoser
115+
{
116+
public override string DiagnoserName => nameof(MockInProcessDiagnoserSeparateLogic);
117+
public override RunMode DiagnoserRunMode => RunMode.SeparateLogic;
118+
public override string ExpectedResult => "SeparateLogicResult";
119+
120+
public override (Type? handlerType, string? serializedConfig) GetSeparateProcessHandlerTypeAndSerializedConfig(BenchmarkCase benchmarkCase)
121+
=> default; // SeparateLogic uses its own logic, not in-process handlers
122+
123+
public override IInProcessDiagnoserHandler? GetSameProcessHandler(BenchmarkCase benchmarkCase)
124+
=> null; // SeparateLogic uses its own logic, not in-process handlers
126125
}

tests/BenchmarkDotNet.IntegrationTests/MultipleInProcessDiagnosersTests.cs

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class MultipleInProcessDiagnosersTests : BenchmarkTestExecutor
2121
{
2222
public MultipleInProcessDiagnosersTests(ITestOutputHelper output) : base(output) { }
2323

24-
private static readonly RunMode[] AllRunModes = { RunMode.NoOverhead, RunMode.ExtraRun, RunMode.None };
24+
private static readonly RunMode[] AllRunModes = { RunMode.NoOverhead, RunMode.ExtraRun, RunMode.None, RunMode.SeparateLogic };
2525

2626
private static IEnumerable<BaseMockInProcessDiagnoser[]> GetDiagnoserCombinations(int count)
2727
{
@@ -61,9 +61,10 @@ private static BaseMockInProcessDiagnoser CreateDiagnoser(RunMode runMode, int i
6161
{
6262
return runMode switch
6363
{
64-
RunMode.NoOverhead => index == 0 ? new MockInProcessDiagnoserNoOverhead() : new MockInProcessDiagnoser(),
64+
RunMode.NoOverhead => new MockInProcessDiagnoser(),
6565
RunMode.ExtraRun => new MockInProcessDiagnoserExtraRun(),
6666
RunMode.None => new MockInProcessDiagnoserNone(),
67+
RunMode.SeparateLogic => new MockInProcessDiagnoserSeparateLogic(),
6768
_ => throw new ArgumentException($"Unsupported run mode: {runMode}")
6869
};
6970
}
@@ -107,7 +108,8 @@ public void MultipleInProcessDiagnosersWork(BaseMockInProcessDiagnoser[] diagnos
107108

108109
foreach (var diagnoser in diagnosers)
109110
{
110-
bool shouldHaveResults = diagnoser.DiagnoserRunMode != RunMode.None;
111+
// Only NoOverhead and ExtraRun run modes should collect results via in-process handlers
112+
bool shouldHaveResults = diagnoser.DiagnoserRunMode == RunMode.NoOverhead || diagnoser.DiagnoserRunMode == RunMode.ExtraRun;
111113

112114
if (shouldHaveResults)
113115
{
@@ -146,27 +148,4 @@ public void BenchmarkMethod()
146148
Interlocked.Increment(ref counter);
147149
}
148150
}
149-
150-
public class MultipleBenchmarks
151-
{
152-
private int counter;
153-
154-
[Benchmark]
155-
public void Benchmark1()
156-
{
157-
Interlocked.Increment(ref counter);
158-
}
159-
160-
[Benchmark]
161-
public void Benchmark2()
162-
{
163-
Interlocked.Increment(ref counter);
164-
}
165-
166-
[Benchmark]
167-
public void Benchmark3()
168-
{
169-
Interlocked.Increment(ref counter);
170-
}
171-
}
172151
}

0 commit comments

Comments
 (0)