| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_packet_creator.h" | 5 #include "net/quic/quic_packet_creator.h" |
| 6 | 6 |
| 7 #include <cstdint> | 7 #include <cstdint> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 TEST_P(QuicPacketCreatorTest, ReserializeCryptoFrameWithForwardSecurity) { | 446 TEST_P(QuicPacketCreatorTest, ReserializeCryptoFrameWithForwardSecurity) { |
| 447 QuicStreamFrame* stream_frame = | 447 QuicStreamFrame* stream_frame = |
| 448 new QuicStreamFrame(kCryptoStreamId, /*fin=*/false, 0u, StringPiece()); | 448 new QuicStreamFrame(kCryptoStreamId, /*fin=*/false, 0u, StringPiece()); |
| 449 QuicFrames frames; | 449 QuicFrames frames; |
| 450 frames.push_back(QuicFrame(stream_frame)); | 450 frames.push_back(QuicFrame(stream_frame)); |
| 451 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE); | 451 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE); |
| 452 char buffer[kMaxPacketSize]; | 452 char buffer[kMaxPacketSize]; |
| 453 PendingRetransmission retransmission(CreateRetransmission( | 453 PendingRetransmission retransmission(CreateRetransmission( |
| 454 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, | 454 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, |
| 455 ENCRYPTION_NONE, | 455 ENCRYPTION_NONE, |
| 456 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); | 456 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_))); |
| 457 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 457 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 458 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 458 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 459 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); | 459 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); |
| 460 EXPECT_EQ(ENCRYPTION_NONE, serialized_packet_.encryption_level); | 460 EXPECT_EQ(ENCRYPTION_NONE, serialized_packet_.encryption_level); |
| 461 delete stream_frame; | 461 delete stream_frame; |
| 462 } | 462 } |
| 463 | 463 |
| 464 TEST_P(QuicPacketCreatorTest, ReserializeFrameWithForwardSecurity) { | 464 TEST_P(QuicPacketCreatorTest, ReserializeFrameWithForwardSecurity) { |
| 465 QuicStreamFrame* stream_frame = | 465 QuicStreamFrame* stream_frame = |
| 466 new QuicStreamFrame(0u, /*fin=*/false, 0u, StringPiece()); | 466 new QuicStreamFrame(0u, /*fin=*/false, 0u, StringPiece()); |
| 467 QuicFrames frames; | 467 QuicFrames frames; |
| 468 frames.push_back(QuicFrame(stream_frame)); | 468 frames.push_back(QuicFrame(stream_frame)); |
| 469 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE); | 469 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE); |
| 470 char buffer[kMaxPacketSize]; | 470 char buffer[kMaxPacketSize]; |
| 471 PendingRetransmission retransmission(CreateRetransmission( | 471 PendingRetransmission retransmission(CreateRetransmission( |
| 472 frames, false /* has_crypto_handshake */, 0 /* no padding */, | 472 frames, false /* has_crypto_handshake */, 0 /* no padding */, |
| 473 ENCRYPTION_NONE, | 473 ENCRYPTION_NONE, |
| 474 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); | 474 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_))); |
| 475 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 475 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 476 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 476 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 477 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); | 477 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); |
| 478 EXPECT_EQ(ENCRYPTION_FORWARD_SECURE, serialized_packet_.encryption_level); | 478 EXPECT_EQ(ENCRYPTION_FORWARD_SECURE, serialized_packet_.encryption_level); |
| 479 delete stream_frame; | 479 delete stream_frame; |
| 480 } | 480 } |
| 481 | 481 |
| 482 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPadding) { | 482 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPadding) { |
| 483 QuicFrame frame; | 483 QuicFrame frame; |
| 484 QuicIOVector io_vector(MakeIOVector("fake handshake message data")); | 484 QuicIOVector io_vector(MakeIOVector("fake handshake message data")); |
| 485 QuicPacketCreatorPeer::CreateStreamFrame(&creator_, kCryptoStreamId, | 485 QuicPacketCreatorPeer::CreateStreamFrame(&creator_, kCryptoStreamId, |
| 486 io_vector, 0u, 0u, false, &frame); | 486 io_vector, 0u, 0u, false, &frame); |
| 487 QuicFrames frames; | 487 QuicFrames frames; |
| 488 frames.push_back(frame); | 488 frames.push_back(frame); |
| 489 char buffer[kMaxPacketSize]; | 489 char buffer[kMaxPacketSize]; |
| 490 PendingRetransmission retransmission(CreateRetransmission( | 490 PendingRetransmission retransmission(CreateRetransmission( |
| 491 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, | 491 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, |
| 492 ENCRYPTION_NONE, | 492 ENCRYPTION_NONE, |
| 493 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); | 493 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_))); |
| 494 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 494 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 495 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 495 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 496 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); | 496 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); |
| 497 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); | 497 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); |
| 498 delete frame.stream_frame; | 498 delete frame.stream_frame; |
| 499 } | 499 } |
| 500 | 500 |
| 501 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithSpecifiedPadding) { | 501 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithSpecifiedPadding) { |
| 502 QuicFrame frame; | 502 QuicFrame frame; |
| 503 QuicIOVector io_vector(MakeIOVector("fake message data")); | 503 QuicIOVector io_vector(MakeIOVector("fake message data")); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 520 packet_size = serialized_packet_.encrypted_length; | 520 packet_size = serialized_packet_.encrypted_length; |
| 521 } | 521 } |
| 522 | 522 |
| 523 const int kNumPaddingBytes2 = 44; | 523 const int kNumPaddingBytes2 = 44; |
| 524 QuicFrames frames; | 524 QuicFrames frames; |
| 525 frames.push_back(frame); | 525 frames.push_back(frame); |
| 526 char buffer[kMaxPacketSize]; | 526 char buffer[kMaxPacketSize]; |
| 527 PendingRetransmission retransmission(CreateRetransmission( | 527 PendingRetransmission retransmission(CreateRetransmission( |
| 528 frames, false /* has_crypto_handshake */, | 528 frames, false /* has_crypto_handshake */, |
| 529 kNumPaddingBytes2 /* padding bytes */, ENCRYPTION_NONE, | 529 kNumPaddingBytes2 /* padding bytes */, ENCRYPTION_NONE, |
| 530 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); | 530 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_))); |
| 531 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 531 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 532 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 532 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 533 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); | 533 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); |
| 534 | 534 |
| 535 EXPECT_EQ(packet_size + kNumPaddingBytes2 - kNumPaddingBytes1, | 535 EXPECT_EQ(packet_size + kNumPaddingBytes2 - kNumPaddingBytes1, |
| 536 serialized_packet_.encrypted_length); | 536 serialized_packet_.encrypted_length); |
| 537 delete frame.stream_frame; | 537 delete frame.stream_frame; |
| 538 } | 538 } |
| 539 | 539 |
| 540 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) { | 540 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) { |
| 541 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + | 541 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + |
| 542 GetEncryptionOverhead() + GetStreamFrameOverhead(); | 542 GetEncryptionOverhead() + GetStreamFrameOverhead(); |
| 543 size_t capacity = kDefaultMaxPacketSize - overhead; | 543 size_t capacity = kDefaultMaxPacketSize - overhead; |
| 544 for (int delta = -5; delta <= 0; ++delta) { | 544 for (int delta = -5; delta <= 0; ++delta) { |
| 545 string data(capacity + delta, 'A'); | 545 string data(capacity + delta, 'A'); |
| 546 size_t bytes_free = 0 - delta; | 546 size_t bytes_free = 0 - delta; |
| 547 | 547 |
| 548 QuicFrame frame; | 548 QuicFrame frame; |
| 549 QuicIOVector io_vector(MakeIOVector(data)); | 549 QuicIOVector io_vector(MakeIOVector(data)); |
| 550 UniqueStreamBuffer stream_buffer; | 550 UniqueStreamBuffer stream_buffer; |
| 551 QuicPacketCreatorPeer::CreateStreamFrame( | 551 QuicPacketCreatorPeer::CreateStreamFrame( |
| 552 &creator_, kCryptoStreamId, io_vector, 0, kOffset, false, &frame); | 552 &creator_, kCryptoStreamId, io_vector, 0, kOffset, false, &frame); |
| 553 QuicFrames frames; | 553 QuicFrames frames; |
| 554 frames.push_back(frame); | 554 frames.push_back(frame); |
| 555 char buffer[kMaxPacketSize]; | 555 char buffer[kMaxPacketSize]; |
| 556 PendingRetransmission retransmission(CreateRetransmission( | 556 PendingRetransmission retransmission(CreateRetransmission( |
| 557 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, | 557 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, |
| 558 ENCRYPTION_NONE, | 558 ENCRYPTION_NONE, |
| 559 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); | 559 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_))); |
| 560 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 560 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 561 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 561 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 562 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); | 562 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); |
| 563 | 563 |
| 564 // If there is not enough space in the packet to fit a padding frame | 564 // If there is not enough space in the packet to fit a padding frame |
| 565 // (1 byte) and to expand the stream frame (another 2 bytes) the packet | 565 // (1 byte) and to expand the stream frame (another 2 bytes) the packet |
| 566 // will not be padded. | 566 // will not be padded. |
| 567 if (bytes_free < 3) { | 567 if (bytes_free < 3) { |
| 568 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, | 568 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, |
| 569 serialized_packet_.encrypted_length); | 569 serialized_packet_.encrypted_length); |
| (...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1068 } | 1068 } |
| 1069 | 1069 |
| 1070 delete frames_[0].stream_frame; | 1070 delete frames_[0].stream_frame; |
| 1071 } | 1071 } |
| 1072 | 1072 |
| 1073 TEST_P(QuicPacketCreatorTest, SetCurrentPath) { | 1073 TEST_P(QuicPacketCreatorTest, SetCurrentPath) { |
| 1074 // Current path is the default path. | 1074 // Current path is the default path. |
| 1075 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1075 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1076 EXPECT_EQ(0u, creator_.packet_number()); | 1076 EXPECT_EQ(0u, creator_.packet_number()); |
| 1077 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1077 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1078 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1078 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1079 // Add a stream frame to the creator. | 1079 // Add a stream frame to the creator. |
| 1080 QuicFrame frame; | 1080 QuicFrame frame; |
| 1081 QuicIOVector io_vector(MakeIOVector("test")); | 1081 QuicIOVector io_vector(MakeIOVector("test")); |
| 1082 ASSERT_TRUE( | 1082 ASSERT_TRUE( |
| 1083 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); | 1083 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); |
| 1084 ASSERT_TRUE(frame.stream_frame); | 1084 ASSERT_TRUE(frame.stream_frame); |
| 1085 size_t consumed = frame.stream_frame->data_length; | 1085 size_t consumed = frame.stream_frame->data_length; |
| 1086 EXPECT_EQ(4u, consumed); | 1086 EXPECT_EQ(4u, consumed); |
| 1087 EXPECT_TRUE(creator_.HasPendingFrames()); | 1087 EXPECT_TRUE(creator_.HasPendingFrames()); |
| 1088 EXPECT_EQ(0u, creator_.packet_number()); | 1088 EXPECT_EQ(0u, creator_.packet_number()); |
| 1089 | 1089 |
| 1090 // Change current path. | 1090 // Change current path. |
| 1091 QuicPathId kPathId1 = 1; | 1091 QuicPathId kPathId1 = 1; |
| 1092 EXPECT_DFATAL(creator_.SetCurrentPath(kPathId1, 1, 0), | 1092 EXPECT_DFATAL(creator_.SetCurrentPath(kPathId1, 1, 0), |
| 1093 "Unable to change paths when a packet is under construction"); | 1093 "Unable to change paths when a packet is under construction"); |
| 1094 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 1094 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 1095 .Times(1) | 1095 .Times(1) |
| 1096 .WillRepeatedly( | 1096 .WillRepeatedly( |
| 1097 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); | 1097 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 1098 creator_.Flush(); | 1098 creator_.Flush(); |
| 1099 EXPECT_FALSE(creator_.HasPendingFrames()); | 1099 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1100 creator_.SetCurrentPath(kPathId1, 1, 0); | 1100 creator_.SetCurrentPath(kPathId1, 1, 0); |
| 1101 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1101 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1102 EXPECT_FALSE(creator_.HasPendingFrames()); | 1102 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1103 EXPECT_EQ(0u, creator_.packet_number()); | 1103 EXPECT_EQ(0u, creator_.packet_number()); |
| 1104 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1104 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1105 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1105 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1106 | 1106 |
| 1107 // Change current path back. | 1107 // Change current path back. |
| 1108 creator_.SetCurrentPath(kDefaultPathId, 2, 1); | 1108 creator_.SetCurrentPath(kDefaultPathId, 2, 1); |
| 1109 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1109 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1110 EXPECT_EQ(1u, creator_.packet_number()); | 1110 EXPECT_EQ(1u, creator_.packet_number()); |
| 1111 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1111 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1112 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1112 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1113 // Add a stream frame to the creator. | 1113 // Add a stream frame to the creator. |
| 1114 ASSERT_TRUE( | 1114 ASSERT_TRUE( |
| 1115 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); | 1115 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); |
| 1116 ASSERT_TRUE(frame.stream_frame); | 1116 ASSERT_TRUE(frame.stream_frame); |
| 1117 consumed = frame.stream_frame->data_length; | 1117 consumed = frame.stream_frame->data_length; |
| 1118 EXPECT_EQ(4u, consumed); | 1118 EXPECT_EQ(4u, consumed); |
| 1119 EXPECT_TRUE(creator_.HasPendingFrames()); | 1119 EXPECT_TRUE(creator_.HasPendingFrames()); |
| 1120 | 1120 |
| 1121 // Does not change current path. | 1121 // Does not change current path. |
| 1122 creator_.SetCurrentPath(kDefaultPathId, 2, 0); | 1122 creator_.SetCurrentPath(kDefaultPathId, 2, 0); |
| 1123 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1123 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1124 EXPECT_TRUE(creator_.HasPendingFrames()); | 1124 EXPECT_TRUE(creator_.HasPendingFrames()); |
| 1125 EXPECT_EQ(1u, creator_.packet_number()); | 1125 EXPECT_EQ(1u, creator_.packet_number()); |
| 1126 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1126 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1127 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1127 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1128 } | 1128 } |
| 1129 | 1129 |
| 1130 TEST_P(QuicPacketCreatorTest, | 1130 TEST_P(QuicPacketCreatorTest, |
| 1131 SetCurrentPathAndUpdatePacketSequenceNumberLength) { | 1131 SetCurrentPathAndUpdatePacketSequenceNumberLength) { |
| 1132 // Current path is the default path. | 1132 // Current path is the default path. |
| 1133 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1133 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1134 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1134 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1135 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1136 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1135 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1137 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); |
| 1136 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2); | 1138 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2); |
| 1137 // Add a stream frame to the creator and send the packet. | 1139 // Add a stream frame to the creator and send the packet. |
| 1138 QuicFrame frame; | 1140 QuicFrame frame; |
| 1139 QuicIOVector io_vector(MakeIOVector("test")); | 1141 QuicIOVector io_vector(MakeIOVector("test")); |
| 1140 ASSERT_TRUE( | 1142 ASSERT_TRUE( |
| 1141 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); | 1143 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); |
| 1142 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 1144 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 1143 .Times(1) | 1145 .Times(1) |
| 1144 .WillRepeatedly( | 1146 .WillRepeatedly( |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1187 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id); | 1189 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id); |
| 1188 DeleteSerializedPacket(); | 1190 DeleteSerializedPacket(); |
| 1189 | 1191 |
| 1190 // Change to path 1. | 1192 // Change to path 1. |
| 1191 QuicPathId kPathId1 = 1; | 1193 QuicPathId kPathId1 = 1; |
| 1192 creator_.SetCurrentPath(kPathId1, 1, 0); | 1194 creator_.SetCurrentPath(kPathId1, 1, 0); |
| 1193 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1195 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1194 EXPECT_FALSE(creator_.HasPendingFrames()); | 1196 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1195 EXPECT_EQ(0u, creator_.packet_number()); | 1197 EXPECT_EQ(0u, creator_.packet_number()); |
| 1196 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1198 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1197 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1199 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); |
| 1198 | 1200 |
| 1199 // Add a stream frame to the creator and flush the packet. | 1201 // Add a stream frame to the creator and flush the packet. |
| 1200 ASSERT_TRUE( | 1202 ASSERT_TRUE( |
| 1201 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); | 1203 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); |
| 1202 ASSERT_TRUE(frame.stream_frame); | 1204 ASSERT_TRUE(frame.stream_frame); |
| 1203 consumed = frame.stream_frame->data_length; | 1205 consumed = frame.stream_frame->data_length; |
| 1204 EXPECT_EQ(4u, consumed); | 1206 EXPECT_EQ(4u, consumed); |
| 1205 EXPECT_TRUE(creator_.HasPendingFrames()); | 1207 EXPECT_TRUE(creator_.HasPendingFrames()); |
| 1206 creator_.Flush(); | 1208 creator_.Flush(); |
| 1207 // Verify serialized data packet's path id. | 1209 // Verify serialized data packet's path id. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1233 EXPECT_CALL(delegate_, | 1235 EXPECT_CALL(delegate_, |
| 1234 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _)); | 1236 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _)); |
| 1235 EXPECT_DFATAL( | 1237 EXPECT_DFATAL( |
| 1236 creator_.ConsumeData(1u, data_iovec, 0u, 0u, false, false, &frame), | 1238 creator_.ConsumeData(1u, data_iovec, 0u, 0u, false, false, &frame), |
| 1237 "Client hello won't fit in a single packet."); | 1239 "Client hello won't fit in a single packet."); |
| 1238 } | 1240 } |
| 1239 | 1241 |
| 1240 } // namespace | 1242 } // namespace |
| 1241 } // namespace test | 1243 } // namespace test |
| 1242 } // namespace net | 1244 } // namespace net |
| OLD | NEW |