From 783660f25228f103eaf2442ce82708cd343b7bac Mon Sep 17 00:00:00 2001 From: wfurt Date: Thu, 12 Nov 2020 13:58:28 -0800 Subject: [PATCH 1/2] increase timeout on WebRequest timeout test --- src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs index e4b24c96b5c3ce..3958eb0b95a5ae 100644 --- a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs +++ b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs @@ -511,12 +511,12 @@ public void TimeOut_SetThenGet_ValuesMatch(Uri remoteServer) } [Fact] - public async Task Timeout_SetTenMillisecondsOnLoopback_ThrowsWebException() + public async Task Timeout_Set30MillisecondsOnLoopback_ThrowsWebException() { await LoopbackServer.CreateServerAsync((server, url) => { HttpWebRequest request = WebRequest.CreateHttp(url); - request.Timeout = 10; // ms. + request.Timeout = 30; // ms. var sw = Stopwatch.StartNew(); WebException exception = Assert.Throws(() => request.GetResponse()); From 8df5253352e32b571924eeecbb7fa4b28566ed3f Mon Sep 17 00:00:00 2001 From: wfurt Date: Thu, 11 Feb 2021 19:52:21 -0800 Subject: [PATCH 2/2] enable SslStream_ClientCertificate_SendsChain on macOS --- .../SslStreamNetworkStreamTest.cs | 3 +- .../tests/FunctionalTests/TestHelper.cs | 30 +++++++------------ 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs index 445b68a67dcade..6a42b1bf8c29af 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs @@ -350,13 +350,12 @@ public async Task SslStream_UntrustedCaWithCustomCallback_Throws(bool customCall } [Fact] - [ActiveIssue("https://github.com/dotnet/runtime/issues/46837", TestPlatforms.OSX)] public async Task SslStream_ClientCertificate_SendsChain() { List streams = new List(); TestHelper.CleanupCertificates("SslStream_ClinetCertificate_SendsChain"); (X509Certificate2 clientCertificate, X509Certificate2Collection clientChain) = TestHelper.GenerateCertificates("SslStream_ClinetCertificate_SendsChain", serverCertificate: false); - using (X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.CurrentUser)) + using (X509Store store = new X509Store(PlatformDetection.IsOSXLike ? StoreName.My : StoreName.CertificateAuthority, StoreLocation.CurrentUser)) { // add chain certificate so we can construct chain since there is no way how to pass intermediates directly. store.Open(OpenFlags.ReadWrite); diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs index 22ae213cf45347..afcd4e17425bfc 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs @@ -83,38 +83,30 @@ internal static (NetworkStream ClientStream, NetworkStream ServerStream) GetConn internal static void CleanupCertificates(string testName) { - string caName = $"O={testName}"; - try - { - using (X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine)) + string name = $"O={testName}"; + X509Store[] stores = new X509Store[] { - store.Open(OpenFlags.ReadWrite); - foreach (X509Certificate2 cert in store.Certificates) - { - if (cert.Subject.Contains(caName)) - { - store.Remove(cert); - } - } - } - } - catch { }; + new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine), + new X509Store(StoreName.CertificateAuthority, StoreLocation.CurrentUser), + new X509Store(StoreName.My, StoreLocation.CurrentUser) + }; - try + foreach (X509Store store in stores) { - using (X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.CurrentUser)) + try { store.Open(OpenFlags.ReadWrite); foreach (X509Certificate2 cert in store.Certificates) { - if (cert.Subject.Contains(caName)) + if (cert.Subject.Contains(name)) { store.Remove(cert); } } } + catch { }; + store.Dispose(); } - catch { }; } internal static (X509Certificate2 certificate, X509Certificate2Collection) GenerateCertificates(string targetName, [CallerMemberName] string? testName = null, bool longChain = false, bool serverCertificate = true)