Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable frequently failing tests #101439

Merged
merged 2 commits into from
Apr 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,15 @@ private string GetCookieValue(HttpRequestData request)
return cookieHeaderValue;
}

[Fact]
[ConditionalFact]
[SkipOnPlatform(TestPlatforms.Browser, "CookieContainer is not supported on Browser")]
public async Task GetAsync_SetCookieContainerAndCookieHeader_BothCookiesSent()
{
if (UseVersion == HttpVersion30)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will work as well, but what I've seen, we usually override the failing test in the H3 implementation class and put the ActiveIssue attribute on that.

{
throw new SkipTestException("https://github.com/dotnet/runtime/issues/101377");
}

await LoopbackServerFactory.CreateServerAsync(async (server, url) =>
{
HttpClientHandler handler = CreateHttpClientHandler();
Expand Down Expand Up @@ -313,7 +318,7 @@ public async Task GetAsyncWithRedirect_SetCookieContainer_CorrectCookiesSent()
using (HttpClient client = CreateHttpClient(handler))
{
client.DefaultRequestHeaders.ConnectionClose = true; // to avoid issues with connection pooling
await client.GetAsync(url1);
await client.GetAsync(url1);
}
},
async server =>
Expand Down
49 changes: 27 additions & 22 deletions src/libraries/Common/tests/System/Net/Http/HttpClientHandlerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ public async Task GetAsync_IPv6AddressInHostHeader_CorrectlyFormatted(string hos
public static IEnumerable<object[]> SecureAndNonSecure_IPBasedUri_MemberData() =>
from address in new[] { IPAddress.Loopback, IPAddress.IPv6Loopback }
from useSsl in BoolValues
// we could not create SslStream in browser, [ActiveIssue("https://github.com/dotnet/runtime/issues/37669", TestPlatforms.Browser)]
// we could not create SslStream in browser, [ActiveIssue("https://github.com/dotnet/runtime/issues/37669", TestPlatforms.Browser)]
where PlatformDetection.IsNotBrowser || !useSsl
select new object[] { address, useSsl };

Expand Down Expand Up @@ -877,8 +877,8 @@ public async Task GetAsync_InvalidChunkTerminator_ThrowsHttpRequestException()
"\r\n" +
"5\r\n" +
"hello" + // missing \r\n terminator
//"5\r\n" +
//"world" + // missing \r\n terminator
//"5\r\n" +
//"world" + // missing \r\n terminator
"0\r\n" +
"\r\n"));
}
Expand Down Expand Up @@ -982,7 +982,7 @@ public async Task SendAsync_ReadFromSlowStreamingServer_PartialDataReturned()
});
}

[Theory]
[ConditionalTheory]
[InlineData(true, true, true)]
[InlineData(true, true, false)]
[InlineData(true, false, false)]
Expand All @@ -992,6 +992,11 @@ public async Task SendAsync_ReadFromSlowStreamingServer_PartialDataReturned()
[ActiveIssue("https://github.com/dotnet/runtime/issues/65429", typeof(PlatformDetection), nameof(PlatformDetection.IsNodeJS))]
public async Task ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream(bool? chunked, bool enableWasmStreaming, bool slowChunks)
{
if (UseVersion == HttpVersion30)
{
throw new SkipTestException("https://github.com/dotnet/runtime/issues/91757");
}

if (IsWinHttpHandler && UseVersion >= HttpVersion20.Value)
{
return;
Expand Down Expand Up @@ -1091,7 +1096,7 @@ public async Task ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream(boo
if (PlatformDetection.IsBrowser)
{
#if !NETFRAMEWORK
if(slowChunks)
if (slowChunks)
{
Assert.Equal(1, await responseStream.ReadAsync(new Memory<byte>(buffer2)));
Assert.Equal((byte)'h', buffer2[0]);
Expand Down Expand Up @@ -1201,7 +1206,7 @@ public async Task ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream(boo
{
case true:
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Transfer-Encoding", "chunked") }, isFinal: false);
if(PlatformDetection.IsBrowser && slowChunks)
if (PlatformDetection.IsBrowser && slowChunks)
{
await connection.SendResponseBodyAsync("1\r\nh\r\n", false);
await tcs.Task;
Expand All @@ -1216,12 +1221,12 @@ public async Task ReadAsStreamAsync_HandlerProducesWellBehavedResponseStream(boo
break;

case false:
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Content-Length", "11")}, content: "hello world");
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Content-Length", "11") }, content: "hello world");
break;

case null:
// This inject Content-Length header with null value to hint Loopback code to not include one automatically.
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Content-Length", null)}, isFinal: false);
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Content-Length", null) }, isFinal: false);
await connection.SendResponseBodyAsync("hello world");
break;
}
Expand Down Expand Up @@ -1450,10 +1455,10 @@ public async Task Dispose_DisposingHandlerCancelsActiveOperationsWithoutResponse
Task serverTask3 = server3.AcceptConnectionAsync(async connection3 =>
{
await connection3.ReadRequestDataAsync();
await connection3.SendResponseAsync(HttpStatusCode.OK, new HttpHeaderData[] { new HttpHeaderData("Content-Length", "20") }, isFinal : false);
await connection3.SendResponseBodyAsync("1234567890", isFinal : false);
await connection3.SendResponseAsync(HttpStatusCode.OK, new HttpHeaderData[] { new HttpHeaderData("Content-Length", "20") }, isFinal: false);
await connection3.SendResponseBodyAsync("1234567890", isFinal: false);
await unblockServers.Task;
await connection3.SendResponseBodyAsync("1234567890", isFinal : true);
await connection3.SendResponseBodyAsync("1234567890", isFinal: true);
});

// Make three requests
Expand Down Expand Up @@ -1527,7 +1532,7 @@ public async Task GetAsync_UnicodeHostName_SuccessStatusCodeInResponse()
}
}

#region Post Methods Tests
#region Post Methods Tests

[Fact]
[SkipOnPlatform(TestPlatforms.Browser, "ExpectContinue not supported on Browser")]
Expand Down Expand Up @@ -1571,13 +1576,13 @@ public async Task GetAsync_ExpectContinueTrue_NoContent_StillSendsHeader()

public static IEnumerable<object[]> Interim1xxStatusCode()
{
yield return new object[] { (HttpStatusCode) 100 }; // 100 Continue.
yield return new object[] { (HttpStatusCode)100 }; // 100 Continue.
// 101 SwitchingProtocols will be treated as a final status code.
yield return new object[] { (HttpStatusCode) 102 }; // 102 Processing.
yield return new object[] { (HttpStatusCode) 103 }; // 103 EarlyHints.
yield return new object[] { (HttpStatusCode) 150 };
yield return new object[] { (HttpStatusCode) 180 };
yield return new object[] { (HttpStatusCode) 199 };
yield return new object[] { (HttpStatusCode)102 }; // 102 Processing.
yield return new object[] { (HttpStatusCode)103 }; // 103 EarlyHints.
yield return new object[] { (HttpStatusCode)150 };
yield return new object[] { (HttpStatusCode)180 };
yield return new object[] { (HttpStatusCode)199 };
}

[Theory]
Expand Down Expand Up @@ -1638,7 +1643,7 @@ public async Task SendAsync_1xxResponsesWithHeaders_InterimResponsesHeadersIgnor
new HttpHeaderData("Content-type", "text/xml"),
new HttpHeaderData("Set-Cookie", SetCookieIgnored1)}, isFinal: false);

await connection.SendResponseAsync(responseStatusCode, headers: new HttpHeaderData[] {
await connection.SendResponseAsync(responseStatusCode, headers: new HttpHeaderData[] {
new HttpHeaderData("Cookie", "ignore_cookie=choco2"),
new HttpHeaderData("Content-type", "text/plain"),
new HttpHeaderData("Set-Cookie", SetCookieIgnored2)}, isFinal: false);
Expand Down Expand Up @@ -1742,7 +1747,7 @@ public async Task SendAsync_MultipleExpected100Responses_ReceivesCorrectResponse
{
await connection.ReadRequestDataAsync(readBody: false);
// Send multiple 100-Continue responses.
for (int count = 0 ; count < 4; count++)
for (int count = 0; count < 4; count++)
{
await connection.SendResponseAsync(HttpStatusCode.Continue, isFinal: false);
}
Expand Down Expand Up @@ -1846,7 +1851,7 @@ public async Task SendAsync_No100ContinueReceived_RequestBodySentEventually()
{
await connection.ReadRequestDataAsync(readBody: false);

await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] {new HttpHeaderData("Content-Length", $"{ResponseString.Length}")}, isFinal : false);
await connection.SendResponseAsync(HttpStatusCode.OK, headers: new HttpHeaderData[] { new HttpHeaderData("Content-Length", $"{ResponseString.Length}") }, isFinal: false);

byte[] body = await connection.ReadRequestBodyAsync();
Assert.Equal(RequestString, Encoding.ASCII.GetString(body));
Expand Down Expand Up @@ -2127,7 +2132,7 @@ public async Task SendRequest_UriPathHasReservedChars_ServerReceivedExpectedPath
}
});
}
#endregion
#endregion

[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowserDomSupported))]
public async Task GetAsync_InvalidUrl_ExpectedExceptionThrown()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
using System.Net.Test.Common;
using System.Net.Quic;

using Microsoft.DotNet.XUnitExtensions;

namespace System.Net.Http.Functional.Tests
{
public abstract class HttpClientHandler_AltSvc_Test : HttpClientHandlerTestBase
Expand Down Expand Up @@ -71,9 +73,14 @@ fromVersion.Major switch
{ HttpVersion.Version20, false }
};

[Fact]
[ConditionalFact]
public async Task AltSvc_ConnectionFrame_UpgradeFrom20_Success()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this one is always about H/2 -> H/3 upgrade, so this should be just [ActiveIssue]

{
if (UseVersion == HttpVersion30)
{
throw new SkipTestException("https://github.com/dotnet/runtime/issues/101376");
}

using Http2LoopbackServer firstServer = Http2LoopbackServer.CreateServer();
using Http3LoopbackServer secondServer = CreateHttp3LoopbackServer();
using HttpClient client = CreateHttpClient(HttpVersion.Version20);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
using Xunit;
using Xunit.Abstractions;

using Microsoft.DotNet.XUnitExtensions;

namespace System.Net.Http.Functional.Tests
{
using Configuration = System.Net.Test.Common.Configuration;
Expand Down Expand Up @@ -283,12 +285,17 @@ public async Task GetAsync_MissingExpires_ReturnNull()
});
}

[Theory]
[ConditionalTheory]
[InlineData("Thu, 01 Dec 1994 16:00:00 GMT", true)]
[InlineData("-1", false)]
[InlineData("0", false)]
public async Task SendAsync_Expires_Success(string value, bool isValid)
{
if (UseVersion == HttpVersion30)
{
throw new SkipTestException("https://github.com/dotnet/runtime/issues/91757");
}

await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
{
using (HttpClient client = CreateHttpClient())
Expand Down
Loading