Skip to content

Commit 7f67c1f

Browse files
authored
Fix flakey HTTP/2 tests (#39588)
1 parent 1ca0709 commit 7f67c1f

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5219,7 +5219,7 @@ await WaitForConnectionErrorAsync<Http2ConnectionErrorException>(
52195219
[Fact]
52205220
public async Task StartConnection_SendPreface_ReturnSettings()
52215221
{
5222-
await InitializeConnectionWithoutPrefaceAsync(_noopApplication);
5222+
InitializeConnectionWithoutPreface(_noopApplication);
52235223

52245224
await SendAsync(Http2Connection.ClientPreface);
52255225

@@ -5234,7 +5234,7 @@ await ExpectAsync(Http2FrameType.SETTINGS,
52345234
[Fact]
52355235
public async Task StartConnection_SendHttp1xRequest_ReturnHttp11Status400()
52365236
{
5237-
await InitializeConnectionWithoutPrefaceAsync(_noopApplication);
5237+
InitializeConnectionWithoutPreface(_noopApplication);
52385238

52395239
await SendAsync(Encoding.ASCII.GetBytes("GET / HTTP/1.1\r\n"));
52405240

@@ -5247,7 +5247,7 @@ public async Task StartConnection_SendHttp1xRequest_ReturnHttp11Status400()
52475247
[Fact]
52485248
public async Task StartConnection_SendHttp1xRequest_ExceedsRequestLineLimit_ProtocolError()
52495249
{
5250-
await InitializeConnectionWithoutPrefaceAsync(_noopApplication);
5250+
InitializeConnectionWithoutPreface(_noopApplication);
52515251

52525252
await SendAsync(Encoding.ASCII.GetBytes($"GET /{new string('a', _connection.Limits.MaxRequestLineSize)} HTTP/1.1\r\n"));
52535253

@@ -5267,7 +5267,7 @@ public async Task StartTlsConnection_SendHttp1xRequest_NoError()
52675267
tlsHandshakeMock.SetupGet(m => m.Protocol).Returns(SslProtocols.Tls12);
52685268
_connection.ConnectionFeatures.Set<ITlsHandshakeFeature>(tlsHandshakeMock.Object);
52695269

5270-
await InitializeConnectionWithoutPrefaceAsync(_noopApplication);
5270+
InitializeConnectionWithoutPreface(_noopApplication);
52715271

52725272
await SendAsync(Encoding.ASCII.GetBytes("GET / HTTP/1.1\r\n"));
52735273

@@ -5277,7 +5277,7 @@ public async Task StartTlsConnection_SendHttp1xRequest_NoError()
52775277
[Fact]
52785278
public async Task StartConnection_SendNothing_NoError()
52795279
{
5280-
await InitializeConnectionWithoutPrefaceAsync(_noopApplication);
5280+
InitializeConnectionWithoutPreface(_noopApplication);
52815281

52825282
await StopConnectionAsync(expectedLastStreamId: 0, ignoreNonGoAwayFrames: false);
52835283
}

src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2TestBase.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ protected void CreateConnection()
470470
_timeoutControl.Initialize(_serviceContext.SystemClock.UtcNow.Ticks);
471471
}
472472

473-
protected async Task InitializeConnectionWithoutPrefaceAsync(RequestDelegate application)
473+
protected void InitializeConnectionWithoutPreface(RequestDelegate application)
474474
{
475475
if (_connection == null)
476476
{
@@ -493,14 +493,15 @@ async Task CompletePipeOnTaskCompletion()
493493
}
494494

495495
_connectionTask = CompletePipeOnTaskCompletion();
496-
497-
// Lose xUnit's AsyncTestSyncContext so middleware always runs inline for better determinism.
498-
await ThreadPoolAwaitable.Instance;
499496
}
500497

501498
protected async Task InitializeConnectionAsync(RequestDelegate application, int expectedSettingsCount = 3, bool expectedWindowUpdate = true)
502499
{
503-
await InitializeConnectionWithoutPrefaceAsync(application);
500+
InitializeConnectionWithoutPreface(application);
501+
502+
// Lose xUnit's AsyncTestSyncContext so middleware always runs inline for better determinism.
503+
await ThreadPoolAwaitable.Instance;
504+
504505
await SendPreambleAsync();
505506
await SendSettingsAsync();
506507

0 commit comments

Comments
 (0)