1
1
using BenchmarkDotNet . Environments ;
2
+ using BenchmarkDotNet . Extensions ;
2
3
using BenchmarkDotNet . Jobs ;
3
4
using BenchmarkDotNet . Running ;
4
5
using System ;
@@ -20,26 +21,19 @@ public static IEnumerable<ValidationError> ValidateCoreSdks(string? customDotNet
20
21
if ( IsCliPathInvalid ( customDotNetCliPath , benchmark , out ValidationError ? cliPathError ) )
21
22
{
22
23
yield return cliPathError ;
24
+ yield break ;
23
25
}
24
- else if ( TryGetSdkVersion ( benchmark , out Version requiredSdkVersion ) )
26
+ var requiredSdkVersion = benchmark . GetRuntime ( ) . RuntimeMoniker . GetRuntimeVersion ( ) ;
27
+ if ( ! GetInstalledDotNetSdks ( customDotNetCliPath ) . Any ( sdk => sdk >= requiredSdkVersion ) )
25
28
{
26
- var installedSdks = GetInstalledDotNetSdks ( customDotNetCliPath ) ;
27
- if ( ! installedSdks . Any ( sdk => sdk >= requiredSdkVersion ) )
28
- {
29
- yield return new ValidationError ( true , $ "The required .NET Core SDK version { requiredSdkVersion } or higher for runtime moniker { benchmark . Job . Environment . Runtime . RuntimeMoniker } is not installed.", benchmark ) ;
30
- }
29
+ yield return new ValidationError ( true , $ "The required .NET Core SDK version { requiredSdkVersion } or higher for runtime moniker { benchmark . Job . Environment . Runtime . RuntimeMoniker } is not installed.", benchmark ) ;
31
30
}
32
31
}
33
32
34
33
public static IEnumerable < ValidationError > ValidateFrameworkSdks ( BenchmarkCase benchmark )
35
34
{
36
- if ( ! TryGetSdkVersion ( benchmark , out Version requiredSdkVersion ) )
37
- {
38
- yield break ;
39
- }
40
-
35
+ var requiredSdkVersion = benchmark . GetRuntime ( ) . RuntimeMoniker . GetRuntimeVersion ( ) ;
41
36
var installedVersionString = cachedFrameworkSdks . Value . FirstOrDefault ( ) ;
42
-
43
37
if ( installedVersionString == null || Version . TryParse ( installedVersionString , out var installedVersion ) && installedVersion < requiredSdkVersion )
44
38
{
45
39
yield return new ValidationError ( true , $ "The required .NET Framework SDK version { requiredSdkVersion } or higher is not installed.", benchmark ) ;
@@ -71,17 +65,6 @@ public static bool IsCliPathInvalid(string customDotNetCliPath, BenchmarkCase be
71
65
return false ;
72
66
}
73
67
74
- private static bool TryGetSdkVersion ( BenchmarkCase benchmark , out Version sdkVersion )
75
- {
76
- sdkVersion = default ;
77
- if ( benchmark ? . Job ? . Environment ? . Runtime ? . RuntimeMoniker != null )
78
- {
79
- sdkVersion = GetSdkVersionFromMoniker ( benchmark . Job . Environment . Runtime . RuntimeMoniker ) ;
80
- return true ;
81
- }
82
- return false ;
83
- }
84
-
85
68
private static IEnumerable < Version > GetInstalledDotNetSdks ( string ? customDotNetCliPath )
86
69
{
87
70
string dotnetExecutable = string . IsNullOrEmpty ( customDotNetCliPath ) ? "dotnet" : customDotNetCliPath ;
@@ -198,54 +181,5 @@ private static string CheckFor45PlusVersion(int releaseKey)
198
181
199
182
return "" ;
200
183
}
201
-
202
- internal static Version GetSdkVersionFromMoniker ( RuntimeMoniker runtimeMoniker )
203
- {
204
- return runtimeMoniker switch
205
- {
206
- RuntimeMoniker . Net461 => new Version ( 4 , 6 , 1 ) ,
207
- RuntimeMoniker . Net462 => new Version ( 4 , 6 , 2 ) ,
208
- RuntimeMoniker . Net47 => new Version ( 4 , 7 ) ,
209
- RuntimeMoniker . Net471 => new Version ( 4 , 7 , 1 ) ,
210
- RuntimeMoniker . Net472 => new Version ( 4 , 7 , 2 ) ,
211
- RuntimeMoniker . Net48 => new Version ( 4 , 8 ) ,
212
- RuntimeMoniker . Net481 => new Version ( 4 , 8 , 1 ) ,
213
- RuntimeMoniker . NetCoreApp20 => new Version ( 2 , 0 ) ,
214
- RuntimeMoniker . NetCoreApp21 => new Version ( 2 , 1 ) ,
215
- RuntimeMoniker . NetCoreApp22 => new Version ( 2 , 2 ) ,
216
- RuntimeMoniker . NetCoreApp30 => new Version ( 3 , 0 ) ,
217
- RuntimeMoniker . NetCoreApp31 => new Version ( 3 , 1 ) ,
218
- RuntimeMoniker . Net50 => new Version ( 5 , 0 ) ,
219
- RuntimeMoniker . Net60 => new Version ( 6 , 0 ) ,
220
- RuntimeMoniker . Net70 => new Version ( 7 , 0 ) ,
221
- RuntimeMoniker . Net80 => new Version ( 8 , 0 ) ,
222
- RuntimeMoniker . Net90 => new Version ( 9 , 0 ) ,
223
- RuntimeMoniker . Net10_0 => new Version ( 10 , 0 ) ,
224
- RuntimeMoniker . NativeAot60 => new Version ( 6 , 0 ) ,
225
- RuntimeMoniker . NativeAot70 => new Version ( 7 , 0 ) ,
226
- RuntimeMoniker . NativeAot80 => new Version ( 8 , 0 ) ,
227
- RuntimeMoniker . NativeAot90 => new Version ( 9 , 0 ) ,
228
- RuntimeMoniker . NativeAot10_0 => new Version ( 10 , 0 ) ,
229
- RuntimeMoniker . Mono60 => new Version ( 6 , 0 ) ,
230
- RuntimeMoniker . Mono70 => new Version ( 7 , 0 ) ,
231
- RuntimeMoniker . Mono80 => new Version ( 8 , 0 ) ,
232
- RuntimeMoniker . Mono90 => new Version ( 9 , 0 ) ,
233
- RuntimeMoniker . Mono10_0 => new Version ( 10 , 0 ) ,
234
- RuntimeMoniker . Wasm => Portability . RuntimeInformation . IsNetCore && CoreRuntime . TryGetVersion ( out var version ) ? version : new Version ( 5 , 0 ) ,
235
- RuntimeMoniker . WasmNet50 => new Version ( 5 , 0 ) ,
236
- RuntimeMoniker . WasmNet60 => new Version ( 6 , 0 ) ,
237
- RuntimeMoniker . WasmNet70 => new Version ( 7 , 0 ) ,
238
- RuntimeMoniker . WasmNet80 => new Version ( 8 , 0 ) ,
239
- RuntimeMoniker . WasmNet90 => new Version ( 9 , 0 ) ,
240
- RuntimeMoniker . WasmNet10_0 => new Version ( 10 , 0 ) ,
241
- RuntimeMoniker . MonoAOTLLVM => Portability . RuntimeInformation . IsNetCore && CoreRuntime . TryGetVersion ( out var version ) ? version : new Version ( 6 , 0 ) ,
242
- RuntimeMoniker . MonoAOTLLVMNet60 => new Version ( 6 , 0 ) ,
243
- RuntimeMoniker . MonoAOTLLVMNet70 => new Version ( 7 , 0 ) ,
244
- RuntimeMoniker . MonoAOTLLVMNet80 => new Version ( 8 , 0 ) ,
245
- RuntimeMoniker . MonoAOTLLVMNet90 => new Version ( 9 , 0 ) ,
246
- RuntimeMoniker . MonoAOTLLVMNet10_0 => new Version ( 10 , 0 ) ,
247
- _ => throw new NotImplementedException ( $ "SDK version check not implemented for { runtimeMoniker } ")
248
- } ;
249
- }
250
184
}
251
185
}
0 commit comments