| Index: net/quic/quic_packet_generator_test.cc
|
| diff --git a/net/quic/quic_packet_generator_test.cc b/net/quic/quic_packet_generator_test.cc
|
| index 133dad576da261f920b825dc9298553100629feb..742e2629bb1552d631d2589cec69d7ec6b9886d1 100644
|
| --- a/net/quic/quic_packet_generator_test.cc
|
| +++ b/net/quic/quic_packet_generator_test.cc
|
| @@ -43,6 +43,7 @@ class MockDelegate : public QuicPacketGenerator::DelegateInterface {
|
| bool(HasRetransmittableData retransmittable,
|
| IsHandshake handshake));
|
| MOCK_METHOD1(PopulateAckFrame, void(QuicAckFrame*));
|
| + MOCK_METHOD0(GetUpdatedAckFrame, const QuicFrame());
|
| MOCK_METHOD1(PopulateStopWaitingFrame, void(QuicStopWaitingFrame*));
|
| MOCK_METHOD1(OnSerializedPacket, void(SerializedPacket* packet));
|
| MOCK_METHOD2(OnUnrecoverableError,
|
| @@ -213,6 +214,7 @@ class QuicPacketGeneratorTest : public ::testing::Test {
|
| QuicPacketCreator* creator_;
|
| SimpleQuicFramer simple_framer_;
|
| vector<SerializedPacket> packets_;
|
| + QuicAckFrame ack_frame_;
|
|
|
| private:
|
| scoped_ptr<char[]> data_array_;
|
| @@ -238,7 +240,12 @@ TEST_F(QuicPacketGeneratorTest, ShouldSendAck_WritableAndShouldNotFlush) {
|
| delegate_.SetCanWriteOnlyNonRetransmittable();
|
| generator_.StartBatchOperations();
|
|
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + }
|
| EXPECT_CALL(debug_delegate, OnFrameAddedToPacket(_)).Times(1);
|
|
|
| generator_.SetShouldSendAck(false);
|
| @@ -248,7 +255,12 @@ TEST_F(QuicPacketGeneratorTest, ShouldSendAck_WritableAndShouldNotFlush) {
|
| TEST_F(QuicPacketGeneratorTest, ShouldSendAck_WritableAndShouldFlush) {
|
| delegate_.SetCanWriteOnlyNonRetransmittable();
|
|
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + }
|
| EXPECT_CALL(delegate_, OnSerializedPacket(_))
|
| .WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
|
|
|
| @@ -268,7 +280,12 @@ TEST_F(QuicPacketGeneratorTest, ShouldSendAck_MultipleCalls) {
|
| delegate_.SetCanWriteAnything();
|
|
|
| // Only one AckFrame should be created.
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_)).Times(1);
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_)).Times(1);
|
| + }
|
| EXPECT_CALL(delegate_, OnSerializedPacket(_))
|
| .Times(1)
|
| .WillOnce(Invoke(this, &QuicPacketGeneratorTest::SavePacket));
|
| @@ -496,7 +513,12 @@ TEST_F(QuicPacketGeneratorTest, NotWritableThenBatchOperations) {
|
| generator_.StartBatchOperations();
|
|
|
| // When the first write operation is invoked, the ack frame will be returned.
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + }
|
|
|
| // Send some data and a control frame
|
| generator_.ConsumeData(3, MakeIOVector("quux"), 7, false, nullptr);
|
| @@ -528,7 +550,12 @@ TEST_F(QuicPacketGeneratorTest, NotWritableThenBatchOperations2) {
|
| generator_.StartBatchOperations();
|
|
|
| // When the first write operation is invoked, the ack frame will be returned.
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + }
|
|
|
| {
|
| InSequence dummy;
|
| @@ -817,7 +844,12 @@ TEST_F(QuicPacketGeneratorTest, DontCrashOnInvalidStopWaiting) {
|
| generator_.StartBatchOperations();
|
|
|
| // Set up frames to write into the creator when control frames are written.
|
| - EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + if (FLAGS_quic_dont_copy_acks) {
|
| + EXPECT_CALL(delegate_, GetUpdatedAckFrame())
|
| + .WillOnce(Return(QuicFrame(&ack_frame_)));
|
| + } else {
|
| + EXPECT_CALL(delegate_, PopulateAckFrame(_));
|
| + }
|
| EXPECT_CALL(delegate_, PopulateStopWaitingFrame(_));
|
| // Generator should have queued control frames, and creator should be empty.
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
|
|