From 4d04c24f5bf33b12d534e0caf5f99b7f52ab9a49 Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Wed, 27 Nov 2019 22:10:34 -0800 Subject: [PATCH] Better MaxOsVersion tests, more WindowsVersions (dotnet/extensions#2728) \n\nCommit migrated from https://github.com/dotnet/extensions/commit/ec155951d69dc8ef620bbf9bae723cda6f98b5fc --- .../ref/Microsoft.AspNetCore.Testing.net46.cs | 4 +++- ...icrosoft.AspNetCore.Testing.netstandard2.0.cs | 4 +++- .../src/xunit/MaximumOSVersionAttribute.cs | 3 ++- src/Testing/src/xunit/WindowsVersions.cs | 14 ++++++++++++-- .../test/MaximumOSVersionAttributeTest.cs | 16 ++++++++-------- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/Testing/ref/Microsoft.AspNetCore.Testing.net46.cs b/src/Testing/ref/Microsoft.AspNetCore.Testing.net46.cs index a7191eb156..eb901008cc 100644 --- a/src/Testing/ref/Microsoft.AspNetCore.Testing.net46.cs +++ b/src/Testing/ref/Microsoft.AspNetCore.Testing.net46.cs @@ -326,9 +326,11 @@ namespace Microsoft.AspNetCore.Testing public static partial class WindowsVersions { public const string Win10 = "10.0"; + public const string Win10_19H1 = "10.0.18362"; public const string Win10_19H2 = "10.0.18363"; - public const string Win10_20H1 = "10.0.18990"; + public const string Win10_20H1 = "10.0.19033"; public const string Win10_RS4 = "10.0.17134"; + public const string Win10_RS5 = "10.0.17763"; public const string Win2008R2 = "6.1"; public const string Win7 = "6.1"; public const string Win8 = "6.2"; diff --git a/src/Testing/ref/Microsoft.AspNetCore.Testing.netstandard2.0.cs b/src/Testing/ref/Microsoft.AspNetCore.Testing.netstandard2.0.cs index a7191eb156..eb901008cc 100644 --- a/src/Testing/ref/Microsoft.AspNetCore.Testing.netstandard2.0.cs +++ b/src/Testing/ref/Microsoft.AspNetCore.Testing.netstandard2.0.cs @@ -326,9 +326,11 @@ namespace Microsoft.AspNetCore.Testing public static partial class WindowsVersions { public const string Win10 = "10.0"; + public const string Win10_19H1 = "10.0.18362"; public const string Win10_19H2 = "10.0.18363"; - public const string Win10_20H1 = "10.0.18990"; + public const string Win10_20H1 = "10.0.19033"; public const string Win10_RS4 = "10.0.17134"; + public const string Win10_RS5 = "10.0.17763"; public const string Win2008R2 = "6.1"; public const string Win7 = "6.1"; public const string Win8 = "6.2"; diff --git a/src/Testing/src/xunit/MaximumOSVersionAttribute.cs b/src/Testing/src/xunit/MaximumOSVersionAttribute.cs index 82d59910be..439ba4c229 100644 --- a/src/Testing/src/xunit/MaximumOSVersionAttribute.cs +++ b/src/Testing/src/xunit/MaximumOSVersionAttribute.cs @@ -34,7 +34,8 @@ namespace Microsoft.AspNetCore.Testing _targetOS = targetOS; _maxVersion = maxVersion; _currentOS = currentOS; - _currentVersion = currentVersion; + // We drop the 4th field because it is not significant and it messes up the comparisons. + _currentVersion = new Version(currentVersion.Major, currentVersion.Minor, currentVersion.Build); // Do not skip other OS's, Use OSSkipConditionAttribute or a separate MaximumOsVersionAttribute for that. _skip = _targetOS == _currentOS && _maxVersion < _currentVersion; diff --git a/src/Testing/src/xunit/WindowsVersions.cs b/src/Testing/src/xunit/WindowsVersions.cs index d0ef86d1a8..a8c2b43048 100644 --- a/src/Testing/src/xunit/WindowsVersions.cs +++ b/src/Testing/src/xunit/WindowsVersions.cs @@ -23,14 +23,24 @@ namespace Microsoft.AspNetCore.Testing /// public const string Win10_RS4 = "10.0.17134"; + /// + /// 1809, RS5, 17763 + /// + public const string Win10_RS5 = "10.0.17763"; + + /// + /// 1903, 19H1, 18362 + /// + public const string Win10_19H1 = "10.0.18362"; + /// /// 1909, 19H2, 18363 /// public const string Win10_19H2 = "10.0.18363"; /// - /// _, 20H2, 18990 + /// 2004, 20H1, 19033 /// - public const string Win10_20H1 = "10.0.18990"; + public const string Win10_20H1 = "10.0.19033"; } } diff --git a/src/Testing/test/MaximumOSVersionAttributeTest.cs b/src/Testing/test/MaximumOSVersionAttributeTest.cs index ca2faa76e5..a830af19bb 100644 --- a/src/Testing/test/MaximumOSVersionAttributeTest.cs +++ b/src/Testing/test/MaximumOSVersionAttributeTest.cs @@ -31,9 +31,9 @@ namespace Microsoft.AspNetCore.Testing { var osSkipAttribute = new MaximumOSVersionAttribute( OperatingSystems.Windows, - new Version("2.5"), + new Version("2.5.9"), OperatingSystems.Windows, - new Version("2.0")); + new Version("2.0.10.12")); Assert.True(osSkipAttribute.IsMet); } @@ -43,9 +43,9 @@ namespace Microsoft.AspNetCore.Testing { var osSkipAttribute = new MaximumOSVersionAttribute( OperatingSystems.Windows, - new Version("2.5"), + new Version("2.5.10"), OperatingSystems.Windows, - new Version("2.5")); + new Version("2.5.10.12")); Assert.True(osSkipAttribute.IsMet); } @@ -55,9 +55,9 @@ namespace Microsoft.AspNetCore.Testing { var osSkipAttribute = new MaximumOSVersionAttribute( OperatingSystems.Windows, - new Version("2.5"), + new Version("2.5.11"), OperatingSystems.Windows, - new Version("3.0")); + new Version("3.0.10.12")); Assert.False(osSkipAttribute.IsMet); } @@ -67,9 +67,9 @@ namespace Microsoft.AspNetCore.Testing { var osSkipAttribute = new MaximumOSVersionAttribute( OperatingSystems.Windows, - new Version("2.5"), + new Version("2.5.10.12"), OperatingSystems.Linux, - new Version("2.5")); + new Version("2.5.10.12")); Assert.True(osSkipAttribute.IsMet); }