Skip to content

Commit 99ef3f1

Browse files
authored
add .NET 4.8.1 support (#2044)
1 parent f72e617 commit 99ef3f1

File tree

8 files changed

+18
-2
lines changed

8 files changed

+18
-2
lines changed

src/BenchmarkDotNet.Annotations/Jobs/RuntimeMoniker.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ public enum RuntimeMoniker
4949
/// </summary>
5050
Net48,
5151

52+
/// <summary>
53+
/// .NET 4.8.1
54+
/// </summary>
55+
Net481,
56+
5257
/// <summary>
5358
/// .NET Core 2.0
5459
/// </summary>

src/BenchmarkDotNet/ConsoleArguments/ConfigParser.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,7 @@ private static Job CreateJobForGivenRuntime(Job baseJob, string runtimeId, Comma
364364
case RuntimeMoniker.Net471:
365365
case RuntimeMoniker.Net472:
366366
case RuntimeMoniker.Net48:
367+
case RuntimeMoniker.Net481:
367368
return baseJob
368369
.WithRuntime(runtimeMoniker.GetRuntime())
369370
.WithToolchain(CsProjClassicNetToolchain.From(runtimeId, options.RestorePath?.FullName));

src/BenchmarkDotNet/Environments/Runtimes/ClrRuntime.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class ClrRuntime : Runtime, IEquatable<ClrRuntime>
1313
public static readonly ClrRuntime Net471 = new ClrRuntime(RuntimeMoniker.Net471, "net471", ".NET Framework 4.7.1");
1414
public static readonly ClrRuntime Net472 = new ClrRuntime(RuntimeMoniker.Net472, "net472", ".NET Framework 4.7.2");
1515
public static readonly ClrRuntime Net48 = new ClrRuntime(RuntimeMoniker.Net48, "net48", ".NET Framework 4.8");
16+
public static readonly ClrRuntime Net481 = new ClrRuntime(RuntimeMoniker.Net481, "net481", ".NET Framework 4.8.1");
1617

1718
public string Version { get; }
1819

@@ -62,6 +63,7 @@ internal static ClrRuntime GetCurrentVersion()
6263
case "4.7.1": return Net471;
6364
case "4.7.2": return Net472;
6465
case "4.8": return Net48;
66+
case "4.8.1": return Net481;
6567
default: // unlikely to happen but theoretically possible
6668
return new ClrRuntime(RuntimeMoniker.NotRecognized, $"net{version.Replace(".", null)}", $".NET Framework {version}");
6769
}

src/BenchmarkDotNet/Extensions/RuntimeMonikerExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ internal static Runtime GetRuntime(this RuntimeMoniker runtimeMoniker)
2222
return ClrRuntime.Net472;
2323
case RuntimeMoniker.Net48:
2424
return ClrRuntime.Net48;
25+
case RuntimeMoniker.Net481:
26+
return ClrRuntime.Net481;
2527
case RuntimeMoniker.NetCoreApp20:
2628
return CoreRuntime.Core20;
2729
case RuntimeMoniker.NetCoreApp21:

src/BenchmarkDotNet/Helpers/FrameworkVersionHelper.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ internal static string MapToReleaseVersion(string servicingVersion)
4848
return "4.7.1";
4949
if (string.Compare(servicingVersion, "4.8") < 0)
5050
return "4.7.2";
51+
if (string.Compare(servicingVersion, "4.8.1") < 0)
52+
return "4.8";
5153

52-
// TODO Add support for .NET Framework 4.8.1
53-
return "4.8"; // most probably the last major release of Full .NET Framework
54+
return "4.8.1"; // most probably the last major release of Full .NET Framework
5455
}
5556

5657

src/BenchmarkDotNet/Toolchains/CsProj/CsProjClassicNetToolchain.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class CsProjClassicNetToolchain : Toolchain
2020
[PublicAPI] public static readonly IToolchain Net471 = new CsProjClassicNetToolchain("net471", ".NET Framework 4.7.1");
2121
[PublicAPI] public static readonly IToolchain Net472 = new CsProjClassicNetToolchain("net472", ".NET Framework 4.7.2");
2222
[PublicAPI] public static readonly IToolchain Net48 = new CsProjClassicNetToolchain("net48", ".NET Framework 4.8");
23+
[PublicAPI] public static readonly IToolchain Net481 = new CsProjClassicNetToolchain("net481", ".NET Framework 4.8.1");
2324

2425
private CsProjClassicNetToolchain(string targetFrameworkMoniker, string name, string packagesPath = null)
2526
: base(name,

src/BenchmarkDotNet/Toolchains/ToolchainExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ private static IToolchain GetToolchain(RuntimeMoniker runtimeMoniker)
8989
return CsProjClassicNetToolchain.Net472;
9090
case RuntimeMoniker.Net48:
9191
return CsProjClassicNetToolchain.Net48;
92+
case RuntimeMoniker.Net481:
93+
return CsProjClassicNetToolchain.Net481;
9294
case RuntimeMoniker.NetCoreApp20:
9395
return CsProjCoreToolchain.NetCoreApp20;
9496
case RuntimeMoniker.NetCoreApp21:

tests/BenchmarkDotNet.Tests/ConfigParserTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,8 @@ public void WhenUserDoesNotSpecifyTimeoutTheDefaultValueIsUsed()
357357
[InlineData("net47")]
358358
[InlineData("net471")]
359359
[InlineData("net472")]
360+
[InlineData("net48")]
361+
[InlineData("net481")]
360362
public void NetFrameworkMonikerParsedCorrectly(string tfm)
361363
{
362364
var config = ConfigParser.Parse(new[] { "-r", tfm }, new OutputLogger(Output)).config;

0 commit comments

Comments
 (0)