@@ -147,6 +147,7 @@ await ExpectAsync(Http2FrameType.PING,
147
147
}
148
148
149
149
[ Fact ]
150
+ [ QuarantinedTest ]
150
151
public async Task PING_NoKeepAliveTimeout_DoesNotResetKeepAliveTimeout ( )
151
152
{
152
153
var mockSystemClock = _serviceContext . MockSystemClock ;
@@ -156,13 +157,14 @@ public async Task PING_NoKeepAliveTimeout_DoesNotResetKeepAliveTimeout()
156
157
157
158
CreateConnection ( ) ;
158
159
159
- await InitializeConnectionAsync ( _noopApplication ) ;
160
+ await InitializeConnectionAsync ( _echoApplication ) ;
160
161
161
162
// Connection starts and sets keep alive timeout
162
163
_mockTimeoutControl . Verify ( c => c . SetTimeout ( It . IsAny < long > ( ) , TimeoutReason . KeepAlive ) , Times . Once ) ;
163
164
_mockTimeoutControl . Verify ( c => c . ResetTimeout ( It . IsAny < long > ( ) , TimeoutReason . KeepAlive ) , Times . Never ) ;
164
165
_mockTimeoutControl . Verify ( c => c . CancelTimeout ( ) , Times . Never ) ;
165
166
167
+ // Stream will stay open because it is waiting for request body to end
166
168
await StartStreamAsync ( 1 , _browserRequestHeaders , endStream : false ) ;
167
169
168
170
// Starting a stream cancels the keep alive timeout
@@ -176,6 +178,17 @@ await ExpectAsync(Http2FrameType.PING,
176
178
177
179
// Server doesn't reset keep alive timeout because it isn't running
178
180
_mockTimeoutControl . Verify ( c => c . ResetTimeout ( It . IsAny < long > ( ) , TimeoutReason . KeepAlive ) , Times . Never ) ;
181
+
182
+ // End stream
183
+ await SendDataAsync ( 1 , _helloWorldBytes , endStream : true ) ;
184
+ await ExpectAsync ( Http2FrameType . HEADERS ,
185
+ withLength : 32 ,
186
+ withFlags : ( byte ) Http2HeadersFrameFlags . END_HEADERS ,
187
+ withStreamId : 1 ) ;
188
+ await ExpectAsync ( Http2FrameType . DATA ,
189
+ withLength : _helloWorldBytes . Length ,
190
+ withFlags : ( byte ) Http2DataFrameFlags . NONE ,
191
+ withStreamId : 1 ) ;
179
192
}
180
193
181
194
[ Fact ]
0 commit comments