| 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 <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "net/quic/crypto/null_encrypter.h" | 10 #include "net/quic/crypto/null_encrypter.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 return params; | 74 return params; |
| 75 } | 75 } |
| 76 | 76 |
| 77 class MockDelegate : public QuicPacketCreator::DelegateInterface { | 77 class MockDelegate : public QuicPacketCreator::DelegateInterface { |
| 78 public: | 78 public: |
| 79 MockDelegate() {} | 79 MockDelegate() {} |
| 80 ~MockDelegate() override {} | 80 ~MockDelegate() override {} |
| 81 | 81 |
| 82 MOCK_METHOD1(OnSerializedPacket, void(SerializedPacket* packet)); | 82 MOCK_METHOD1(OnSerializedPacket, void(SerializedPacket* packet)); |
| 83 MOCK_METHOD0(OnResetFecGroup, void()); | 83 MOCK_METHOD0(OnResetFecGroup, void()); |
| 84 MOCK_METHOD2(CloseConnection, void(QuicErrorCode, bool)); |
| 84 | 85 |
| 85 private: | 86 private: |
| 86 DISALLOW_COPY_AND_ASSIGN(MockDelegate); | 87 DISALLOW_COPY_AND_ASSIGN(MockDelegate); |
| 87 }; | 88 }; |
| 88 | 89 |
| 89 class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> { | 90 class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> { |
| 90 public: | 91 public: |
| 91 void ClearSerializedPacket(SerializedPacket* serialized_packet) { | 92 void ClearSerializedPacket(SerializedPacket* serialized_packet) { |
| 92 if (serialized_packet == nullptr) { | 93 if (serialized_packet == nullptr) { |
| 93 return; | 94 return; |
| (...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 &creator_, kClientDataStreamId1, io_vector, 0u, kOffset, false, &frame); | 876 &creator_, kClientDataStreamId1, io_vector, 0u, kOffset, false, &frame); |
| 876 EXPECT_EQ(capacity - bytes_free, bytes_consumed); | 877 EXPECT_EQ(capacity - bytes_free, bytes_consumed); |
| 877 | 878 |
| 878 ASSERT_TRUE(creator_.AddSavedFrame(frame)); | 879 ASSERT_TRUE(creator_.AddSavedFrame(frame)); |
| 879 // BytesFree() returns bytes available for the next frame. Since stream | 880 // BytesFree() returns bytes available for the next frame. Since stream |
| 880 // frame does not grow for FEC protected packets, this should be the same | 881 // frame does not grow for FEC protected packets, this should be the same |
| 881 // as bytes_free (bound by 0). | 882 // as bytes_free (bound by 0). |
| 882 EXPECT_EQ(0u, creator_.ExpansionOnNewFrame()); | 883 EXPECT_EQ(0u, creator_.ExpansionOnNewFrame()); |
| 883 size_t expected_bytes_free = bytes_free > 0 ? bytes_free : 0; | 884 size_t expected_bytes_free = bytes_free > 0 ? bytes_free : 0; |
| 884 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; | 885 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; |
| 885 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 886 { |
| 886 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 887 InSequence s; |
| 888 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 889 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 890 // Every 6th packet will generate an extra FEC packet. |
| 891 if (delta == -1 || delta == 5) { |
| 892 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 893 .WillOnce( |
| 894 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 895 } |
| 896 } |
| 887 creator_.Flush(); | 897 creator_.Flush(); |
| 888 ASSERT_TRUE(serialized_packet_.packet); | 898 ASSERT_TRUE(serialized_packet_.packet); |
| 889 ClearSerializedPacket(&serialized_packet_); | 899 ClearSerializedPacket(&serialized_packet_); |
| 890 } | 900 } |
| 891 } | 901 } |
| 892 | 902 |
| 893 TEST_P(QuicPacketCreatorTest, CryptoStreamFramePacketPadding) { | 903 TEST_P(QuicPacketCreatorTest, CryptoStreamFramePacketPadding) { |
| 894 // Compute the total overhead for a single frame in packet. | 904 // Compute the total overhead for a single frame in packet. |
| 895 const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP) | 905 const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP) |
| 896 + GetEncryptionOverhead() + GetStreamFrameOverhead(NOT_IN_FEC_GROUP); | 906 + GetEncryptionOverhead() + GetStreamFrameOverhead(NOT_IN_FEC_GROUP); |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1512 creator_.SetCurrentPath(kDefaultPathId, 2, 10000 / kDefaultMaxPacketSize); | 1522 creator_.SetCurrentPath(kDefaultPathId, 2, 10000 / kDefaultMaxPacketSize); |
| 1513 // FEC packet consumes a packet number. | 1523 // FEC packet consumes a packet number. |
| 1514 EXPECT_EQ(64 * 256 - max_packets_per_fec_group, creator_.packet_number()); | 1524 EXPECT_EQ(64 * 256 - max_packets_per_fec_group, creator_.packet_number()); |
| 1515 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | 1525 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, |
| 1516 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1526 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); |
| 1517 } | 1527 } |
| 1518 | 1528 |
| 1519 } // namespace | 1529 } // namespace |
| 1520 } // namespace test | 1530 } // namespace test |
| 1521 } // namespace net | 1531 } // namespace net |
| OLD | NEW |