diff --git a/src/Security/Security.sln b/src/Security/Security.sln index 93250dc8a4fd..32566c71432a 100644 --- a/src/Security/Security.sln +++ b/src/Security/Security.sln @@ -164,8 +164,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.HttpSys", "..\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj", "{D6C3C4A9-197B-47B5-8B72-35047CBC4F22}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Net.Http.Headers", "..\Http\Headers\src\Microsoft.Net.Http.Headers.csproj", "{4BB8D7D7-E111-4A86-B6E5-C1201E0DA8CE}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/src/Servers/HttpSys/test/FunctionalTests/HttpsTests.cs b/src/Servers/HttpSys/test/FunctionalTests/HttpsTests.cs index cd89486868bf..43d6005bc181 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/HttpsTests.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/HttpsTests.cs @@ -3,7 +3,6 @@ using System; using System.IO; -using System.Linq; using System.Net.Http; using System.Runtime.InteropServices; using System.Security.Authentication; @@ -20,12 +19,9 @@ namespace Microsoft.AspNetCore.Server.HttpSys { - // Flaky doesn't support classes :( - // https://github.com/aspnet/Extensions/issues/1568 public class HttpsTests { [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] public async Task Https_200OK_Success() { using (Utilities.CreateDynamicHttpsServer(out var address, httpContext => @@ -39,7 +35,6 @@ public async Task Https_200OK_Success() } [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] public async Task Https_SendHelloWorld_Success() { using (Utilities.CreateDynamicHttpsServer(out var address, httpContext => @@ -55,7 +50,6 @@ public async Task Https_SendHelloWorld_Success() } [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] public async Task Https_EchoHelloWorld_Success() { using (Utilities.CreateDynamicHttpsServer(out var address, async httpContext => @@ -73,7 +67,6 @@ public async Task Https_EchoHelloWorld_Success() } [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] public async Task Https_ClientCertNotSent_ClientCertNotPresent() { using (Utilities.CreateDynamicHttpsServer(out var address, async httpContext => @@ -110,8 +103,7 @@ public async Task Https_ClientCertRequested_ClientCertPresent() } [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] - [OSDontSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)] public async Task Https_SkipsITlsHandshakeFeatureOnWin7() { using (Utilities.CreateDynamicHttpsServer(out var address, async httpContext => @@ -133,8 +125,7 @@ public async Task Https_SkipsITlsHandshakeFeatureOnWin7() } [ConditionalFact] - [Flaky("https://github.com/aspnet/AspNetCore-Internal/issues/2209", FlakyOn.Helix.All)] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task Https_SetsITlsHandshakeFeature() { using (Utilities.CreateDynamicHttpsServer(out var address, async httpContext => @@ -164,7 +155,7 @@ public async Task Https_SetsITlsHandshakeFeature() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task Https_ITlsHandshakeFeature_MatchesIHttpSysExtensionInfoFeature() { using (Utilities.CreateDynamicHttpsServer(out var address, async httpContext => diff --git a/src/Servers/HttpSys/test/FunctionalTests/OSDontSkipConditionAttribute.cs b/src/Servers/HttpSys/test/FunctionalTests/OSDontSkipConditionAttribute.cs deleted file mode 100644 index ee257df98950..000000000000 --- a/src/Servers/HttpSys/test/FunctionalTests/OSDontSkipConditionAttribute.cs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; - -namespace Microsoft.AspNetCore.Testing -{ - // Skip except on a specific OS and version - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly, AllowMultiple = true)] - public class OSDontSkipConditionAttribute : Attribute, ITestCondition - { - private readonly OperatingSystems _includedOperatingSystem; - private readonly IEnumerable _includedVersions; - private readonly OperatingSystems _osPlatform; - private readonly string _osVersion; - - public OSDontSkipConditionAttribute(OperatingSystems operatingSystem, params string[] versions) : - this( - operatingSystem, - GetCurrentOS(), - GetCurrentOSVersion(), - versions) - { - } - - // to enable unit testing - internal OSDontSkipConditionAttribute( - OperatingSystems operatingSystem, OperatingSystems osPlatform, string osVersion, params string[] versions) - { - _includedOperatingSystem = operatingSystem; - _includedVersions = versions ?? Enumerable.Empty(); - _osPlatform = osPlatform; - _osVersion = osVersion; - } - - public bool IsMet - { - get - { - var currentOSInfo = new OSInfo() - { - OperatingSystem = _osPlatform, - Version = _osVersion, - }; - - var skip = (_includedOperatingSystem & currentOSInfo.OperatingSystem) != currentOSInfo.OperatingSystem; - if (!skip && _includedVersions.Any()) - { - skip = !_includedVersions.Any(inc => _osVersion.StartsWith(inc, StringComparison.OrdinalIgnoreCase)); - } - - // Since a test would be excuted only if 'IsMet' is true, return false if we want to skip - return !skip; - } - } - - public string SkipReason { get; set; } = "Test cannot run on this operating system."; - - static private OperatingSystems GetCurrentOS() - { - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - return OperatingSystems.Windows; - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) - { - return OperatingSystems.Linux; - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) - { - return OperatingSystems.MacOSX; - } - throw new PlatformNotSupportedException(); - } - - static private string GetCurrentOSVersion() - { - // currently not used on other OS's - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - return Environment.OSVersion.Version.ToString(); - } - else - { - return string.Empty; - } - } - - private class OSInfo - { - public OperatingSystems OperatingSystem { get; set; } - - public string Version { get; set; } - } - } -} \ No newline at end of file diff --git a/src/Servers/HttpSys/test/FunctionalTests/OpaqueUpgradeTests.cs b/src/Servers/HttpSys/test/FunctionalTests/OpaqueUpgradeTests.cs index b722f3ab1faa..a2c39a4c47da 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/OpaqueUpgradeTests.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/OpaqueUpgradeTests.cs @@ -6,7 +6,6 @@ using System.Net.Http; using System.Net.Sockets; using System.Text; -using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Features; @@ -18,7 +17,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys public class OpaqueUpgradeTests { [ConditionalFact] - [OSDontSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)] public async Task OpaqueUpgrade_DownLevel_FeatureIsAbsent() { using (Utilities.CreateHttpServer(out var address, httpContext => @@ -44,7 +43,7 @@ public async Task OpaqueUpgrade_DownLevel_FeatureIsAbsent() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task OpaqueUpgrade_SupportKeys_Present() { string address; @@ -71,7 +70,7 @@ public async Task OpaqueUpgrade_SupportKeys_Present() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task OpaqueUpgrade_AfterHeadersSent_Throws() { bool? upgradeThrew = null; @@ -101,7 +100,7 @@ public async Task OpaqueUpgrade_AfterHeadersSent_Throws() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task OpaqueUpgrade_GetUpgrade_Success() { var upgraded = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -123,7 +122,7 @@ public async Task OpaqueUpgrade_GetUpgrade_Success() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task OpaqueUpgrade_GetUpgrade_NotAffectedByMaxRequestBodyLimit() { var upgraded = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -155,7 +154,7 @@ public async Task OpaqueUpgrade_GetUpgrade_NotAffectedByMaxRequestBodyLimit() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task OpaqueUpgrade_WithOnStarting_CallbackCalled() { var callbackCalled = false; @@ -184,7 +183,7 @@ public async Task OpaqueUpgrade_WithOnStarting_CallbackCalled() } [ConditionalTheory] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] // See HTTP_VERB for known verbs [InlineData("UNKNOWN", null)] [InlineData("INVALID", null)] @@ -242,7 +241,7 @@ public async Task OpaqueUpgrade_VariousMethodsUpgradeSendAndReceive_Success(stri } [ConditionalTheory] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] // Http.Sys returns a 411 Length Required if PUT or POST does not specify content-length or chunked. [InlineData("POST", "Content-Length: 10")] [InlineData("POST", "Transfer-Encoding: chunked")] diff --git a/src/Servers/HttpSys/test/FunctionalTests/ResponseCachingTests.cs b/src/Servers/HttpSys/test/FunctionalTests/ResponseCachingTests.cs index bda37a76c53b..47c44ab9382f 100644 --- a/src/Servers/HttpSys/test/FunctionalTests/ResponseCachingTests.cs +++ b/src/Servers/HttpSys/test/FunctionalTests/ResponseCachingTests.cs @@ -66,7 +66,7 @@ public async Task Caching_JustPublic_NotCached() } [ConditionalFact] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win2008R2, WindowsVersions.Win7, SkipReason = "Content type not required for caching on Win7 and Win2008R2.")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "Content type not required for caching on Win7.")] public async Task Caching_WithoutContentType_NotCached() { var requestCount = 1; diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/ClientCertificateTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/ClientCertificateTests.cs index fbd9f7b679c3..b0847f84a1b3 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/ClientCertificateTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/ClientCertificateTests.cs @@ -35,7 +35,7 @@ public static TestMatrix TestVariants [ConditionalTheory] [MemberData(nameof(TestVariants))] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public Task HttpsNoClientCert_NoClientCert(TestVariant variant) { return ClientCertTest(variant, sendClientCert: false); @@ -43,7 +43,7 @@ public Task HttpsNoClientCert_NoClientCert(TestVariant variant) [ConditionalTheory] [MemberData(nameof(TestVariants))] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public Task HttpsClientCert_GetCertInformation(TestVariant variant) { return ClientCertTest(variant, sendClientCert: true); diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/HttpsTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/HttpsTests.cs index 6371da5c16f8..5b2323223a6a 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/HttpsTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/HttpsTests.cs @@ -32,7 +32,7 @@ public static TestMatrix TestVariants [ConditionalTheory] [MemberData(nameof(TestVariants))] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win2008R2)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8)] public async Task HttpsHelloWorld(TestVariant variant) { var port = TestPortHelper.GetNextSSLPort(); @@ -94,7 +94,7 @@ public async Task ServerAddressesIncludesBaseAddress() [ConditionalFact] [RequiresNewHandler] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, WindowsVersions.Win81)] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10)] public async Task CheckProtocolIsHttp2() { var port = TestPortHelper.GetNextSSLPort(); diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/ClientDisconnectTests.cs b/src/Servers/IIS/IIS/test/IIS.Tests/ClientDisconnectTests.cs index b662fd473232..a9b0cef7b6a2 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/ClientDisconnectTests.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/ClientDisconnectTests.cs @@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class ClientDisconnectTests : StrictTestServerTests { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/ConnectionIdFeatureTests.cs b/src/Servers/IIS/IIS/test/IIS.Tests/ConnectionIdFeatureTests.cs index 8efb9601a39a..7847fffccbbd 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/ConnectionIdFeatureTests.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/ConnectionIdFeatureTests.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class ConnectionIdFeatureTests : StrictTestServerTests { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/HttpBodyControlFeatureTests.cs b/src/Servers/IIS/IIS/test/IIS.Tests/HttpBodyControlFeatureTests.cs index 981a3e6d45c6..1700351f6b3b 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/HttpBodyControlFeatureTests.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/HttpBodyControlFeatureTests.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class HttpBodyControlFeatureTests : StrictTestServerTests { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/MaxRequestBodySizeTests.cs b/src/Servers/IIS/IIS/test/IIS.Tests/MaxRequestBodySizeTests.cs index 8bac31d82ccd..1f46ed1b4b48 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/MaxRequestBodySizeTests.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/MaxRequestBodySizeTests.cs @@ -15,7 +15,7 @@ namespace IIS.Tests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class MaxRequestBodySizeTests : LoggedTest { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/ResponseAbortTests.cs b/src/Servers/IIS/IIS/test/IIS.Tests/ResponseAbortTests.cs index 4b59d3129854..c240382137ea 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/ResponseAbortTests.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/ResponseAbortTests.cs @@ -12,7 +12,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class ResponseAbortTests : StrictTestServerTests { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IIS.Tests/TestServerTest.cs b/src/Servers/IIS/IIS/test/IIS.Tests/TestServerTest.cs index e350d679c2e0..55a4ad69957e 100644 --- a/src/Servers/IIS/IIS/test/IIS.Tests/TestServerTest.cs +++ b/src/Servers/IIS/IIS/test/IIS.Tests/TestServerTest.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [SkipIfHostableWebCoreNotAvailable] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, "https://github.com/aspnet/IISIntegration/issues/866")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "https://github.com/aspnet/IISIntegration/issues/866")] public class TestServerTest : StrictTestServerTests { [ConditionalFact] diff --git a/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/InProcess/WebSocketTests.cs b/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/InProcess/WebSocketTests.cs index 1ebc0981bd59..4e75d204c805 100644 --- a/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/InProcess/WebSocketTests.cs +++ b/src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/InProcess/WebSocketTests.cs @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests { [Collection(IISTestSiteCollection.Name)] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win7, SkipReason = "No supported on this platform")] + [MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win8, SkipReason = "No WebSocket supported on Win7")] public class WebSocketsTests { private readonly string _webSocketUri; diff --git a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs index 5a47957cdf2a..b2425f717580 100644 --- a/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs +++ b/src/Servers/Kestrel/Kestrel/test/KestrelConfigurationBuilderTests.cs @@ -320,7 +320,7 @@ public void ConfigureEndpointDevelopmentCertificateGetsIgnoredIfPfxFileDoesNotEx // [InlineData("http2", HttpProtocols.Http2)] // Not supported due to missing ALPN support. https://github.com/dotnet/corefx/issues/33016 [InlineData("http1AndHttp2", HttpProtocols.Http1AndHttp2)] // Gracefully falls back to HTTP/1 [OSSkipCondition(OperatingSystems.Linux)] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win10, WindowsVersions.Win81)] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)] public void DefaultConfigSectionCanSetProtocols_MacAndWin7(string input, HttpProtocols expected) => DefaultConfigSectionCanSetProtocols(input, expected); @@ -389,7 +389,7 @@ private void DefaultConfigSectionCanSetProtocols(string input, HttpProtocols exp // [InlineData("http2", HttpProtocols.Http2)] // Not supported due to missing ALPN support. https://github.com/dotnet/corefx/issues/33016 [InlineData("http1AndHttp2", HttpProtocols.Http1AndHttp2)] // Gracefully falls back to HTTP/1 [OSSkipCondition(OperatingSystems.Linux)] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win10, WindowsVersions.Win81)] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)] public void EndpointConfigSectionCanSetProtocols_MacAndWin7(string input, HttpProtocols expected) => EndpointConfigSectionCanSetProtocols(input, expected); diff --git a/src/Servers/Kestrel/test/FunctionalTests/Http2/HandshakeTests.cs b/src/Servers/Kestrel/test/FunctionalTests/Http2/HandshakeTests.cs index aaf101cced18..1be8a2e1753d 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/Http2/HandshakeTests.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/Http2/HandshakeTests.cs @@ -58,7 +58,7 @@ public void TlsAndHttp2NotSupportedOnMac() [ConditionalFact] [OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)] - [OSSkipCondition(OperatingSystems.Windows, WindowsVersions.Win10, WindowsVersions.Win81)] + [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)] // Win7 SslStream is missing ALPN support. public void TlsAndHttp2NotSupportedOnWin7() {