public async Task ConnectionShouldIgnoreUnsolicitedPingAcks() { var inPipe = new BufferedPipe(1024); var outPipe = new BufferedPipe(1024); var http2Con = await ConnectionUtils.BuildEstablishedConnection( true, inPipe, outPipe, loggerProvider); // Write ping ACK var pingData = new byte[8]; for (var i = 0; i < pingData.Length; i++) { pingData[i] = (byte)i; } await inPipe.WritePing(pingData, true); // Expect no reaction await outPipe.AssertReadTimeout(); }
public async Task ConnectionShouldAcceptSettingsAckAndNotGoAway() { var inPipe = new BufferedPipe(1024); var outPipe = new BufferedPipe(1024); var http2Con = BuildConnection(true, Settings.Default, inPipe, outPipe); await ClientPreface.WriteAsync(inPipe); await inPipe.WriteSettings(Settings.Default); // Wait for remote settings await outPipe.ReadAndDiscardSettings(); // Wait for ack to our settings await outPipe.AssertSettingsAck(); // Acknowledge remote settings await inPipe.WriteSettingsAck(); // And expect that no GoAway follows - which means a timeout happens on read await outPipe.AssertReadTimeout(); }