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 |