| 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> |
| 8 |
| 7 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 8 #include "net/quic/crypto/null_encrypter.h" | 10 #include "net/quic/crypto/null_encrypter.h" |
| 9 #include "net/quic/crypto/quic_decrypter.h" | 11 #include "net/quic/crypto/quic_decrypter.h" |
| 10 #include "net/quic/crypto/quic_encrypter.h" | 12 #include "net/quic/crypto/quic_encrypter.h" |
| 11 #include "net/quic/quic_utils.h" | 13 #include "net/quic/quic_utils.h" |
| 12 #include "net/quic/test_tools/mock_random.h" | 14 #include "net/quic/test_tools/mock_random.h" |
| 13 #include "net/quic/test_tools/quic_framer_peer.h" | 15 #include "net/quic/test_tools/quic_framer_peer.h" |
| 14 #include "net/quic/test_tools/quic_packet_creator_peer.h" | 16 #include "net/quic/test_tools/quic_packet_creator_peer.h" |
| 15 #include "net/quic/test_tools/quic_test_utils.h" | 17 #include "net/quic/test_tools/quic_test_utils.h" |
| 16 #include "net/test/gtest_util.h" | 18 #include "net/test/gtest_util.h" |
| (...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 849 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 848 | 850 |
| 849 QuicPacketCreatorPeer::SetSequenceNumber( | 851 QuicPacketCreatorPeer::SetSequenceNumber( |
| 850 &creator_, 64 * 256 * 256 - max_packets_per_fec_group); | 852 &creator_, 64 * 256 * 256 - max_packets_per_fec_group); |
| 851 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize); | 853 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize); |
| 852 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, | 854 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, |
| 853 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 855 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 854 | 856 |
| 855 QuicPacketCreatorPeer::SetSequenceNumber( | 857 QuicPacketCreatorPeer::SetSequenceNumber( |
| 856 &creator_, | 858 &creator_, |
| 857 GG_UINT64_C(64) * 256 * 256 * 256 * 256 - max_packets_per_fec_group); | 859 UINT64_C(64) * 256 * 256 * 256 * 256 - max_packets_per_fec_group); |
| 858 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize); | 860 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize); |
| 859 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, | 861 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, |
| 860 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 862 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 861 } | 863 } |
| 862 | 864 |
| 863 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth) { | 865 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth) { |
| 864 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, | 866 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, |
| 865 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 867 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 866 | 868 |
| 867 creator_.UpdateSequenceNumberLength(1, 10000 / kDefaultMaxPacketSize); | 869 creator_.UpdateSequenceNumberLength(1, 10000 / kDefaultMaxPacketSize); |
| 868 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, | 870 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, |
| 869 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 871 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 870 | 872 |
| 871 creator_.UpdateSequenceNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize); | 873 creator_.UpdateSequenceNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize); |
| 872 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER, | 874 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER, |
| 873 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 875 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 874 | 876 |
| 875 creator_.UpdateSequenceNumberLength( | 877 creator_.UpdateSequenceNumberLength( |
| 876 1, 10000 * 256 * 256 / kDefaultMaxPacketSize); | 878 1, 10000 * 256 * 256 / kDefaultMaxPacketSize); |
| 877 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, | 879 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, |
| 878 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 880 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 879 | 881 |
| 880 creator_.UpdateSequenceNumberLength( | 882 creator_.UpdateSequenceNumberLength( |
| 881 1, GG_UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize); | 883 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize); |
| 882 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, | 884 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, |
| 883 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); | 885 QuicPacketCreatorPeer::NextSequenceNumberLength(&creator_)); |
| 884 } | 886 } |
| 885 | 887 |
| 886 TEST_P(QuicPacketCreatorTest, SerializeFrame) { | 888 TEST_P(QuicPacketCreatorTest, SerializeFrame) { |
| 887 if (!GetParam().version_serialization) { | 889 if (!GetParam().version_serialization) { |
| 888 creator_.StopSendingVersion(); | 890 creator_.StopSendingVersion(); |
| 889 } | 891 } |
| 890 frames_.push_back(QuicFrame(new QuicStreamFrame(0u, false, 0u, IOVector()))); | 892 frames_.push_back(QuicFrame(new QuicStreamFrame(0u, false, 0u, IOVector()))); |
| 891 char buffer[kMaxPacketSize]; | 893 char buffer[kMaxPacketSize]; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 TEST_P(QuicPacketCreatorTest, EntropyFlag) { | 1079 TEST_P(QuicPacketCreatorTest, EntropyFlag) { |
| 1078 frames_.push_back(QuicFrame(new QuicStreamFrame(0u, false, 0u, IOVector()))); | 1080 frames_.push_back(QuicFrame(new QuicStreamFrame(0u, false, 0u, IOVector()))); |
| 1079 | 1081 |
| 1080 char buffer[kMaxPacketSize]; | 1082 char buffer[kMaxPacketSize]; |
| 1081 for (int i = 0; i < 2; ++i) { | 1083 for (int i = 0; i < 2; ++i) { |
| 1082 for (int j = 0; j < 64; ++j) { | 1084 for (int j = 0; j < 64; ++j) { |
| 1083 SerializedPacket serialized = | 1085 SerializedPacket serialized = |
| 1084 creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize); | 1086 creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize); |
| 1085 // Verify both BoolSource and hash algorithm. | 1087 // Verify both BoolSource and hash algorithm. |
| 1086 bool expected_rand_bool = | 1088 bool expected_rand_bool = |
| 1087 (mock_random_.RandUint64() & (GG_UINT64_C(1) << j)) != 0; | 1089 (mock_random_.RandUint64() & (UINT64_C(1) << j)) != 0; |
| 1088 bool observed_rand_bool = | 1090 bool observed_rand_bool = |
| 1089 (serialized.entropy_hash & (1 << ((j+1) % 8))) != 0; | 1091 (serialized.entropy_hash & (1 << ((j+1) % 8))) != 0; |
| 1090 uint8 rest_of_hash = serialized.entropy_hash & ~(1 << ((j+1) % 8)); | 1092 uint8 rest_of_hash = serialized.entropy_hash & ~(1 << ((j+1) % 8)); |
| 1091 EXPECT_EQ(expected_rand_bool, observed_rand_bool); | 1093 EXPECT_EQ(expected_rand_bool, observed_rand_bool); |
| 1092 EXPECT_EQ(0, rest_of_hash); | 1094 EXPECT_EQ(0, rest_of_hash); |
| 1093 delete serialized.packet; | 1095 delete serialized.packet; |
| 1094 } | 1096 } |
| 1095 // After 64 calls, BoolSource will refresh the bucket - make sure it does. | 1097 // After 64 calls, BoolSource will refresh the bucket - make sure it does. |
| 1096 mock_random_.ChangeValue(); | 1098 mock_random_.ChangeValue(); |
| 1097 } | 1099 } |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1172 EXPECT_FALSE(creator_.HasPendingFrames()); | 1174 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1173 | 1175 |
| 1174 // Close the FEC Group. | 1176 // Close the FEC Group. |
| 1175 creator_.ResetFecGroup(); | 1177 creator_.ResetFecGroup(); |
| 1176 EXPECT_FALSE(creator_.IsFecGroupOpen()); | 1178 EXPECT_FALSE(creator_.IsFecGroupOpen()); |
| 1177 } | 1179 } |
| 1178 | 1180 |
| 1179 } // namespace | 1181 } // namespace |
| 1180 } // namespace test | 1182 } // namespace test |
| 1181 } // namespace net | 1183 } // namespace net |
| OLD | NEW |