| Index: net/quic/quic_packet_creator_test.cc
|
| diff --git a/net/quic/quic_packet_creator_test.cc b/net/quic/quic_packet_creator_test.cc
|
| index e8dd174b97ddaa8ffd8bbaf7d0e21d8ca79cd356..7b3881997a0d51a0f96b5d3250b8d051cfa7703b 100644
|
| --- a/net/quic/quic_packet_creator_test.cc
|
| +++ b/net/quic/quic_packet_creator_test.cc
|
| @@ -8,8 +8,8 @@
|
| #include "net/quic/crypto/null_encrypter.h"
|
| #include "net/quic/crypto/quic_decrypter.h"
|
| #include "net/quic/crypto/quic_encrypter.h"
|
| -#include "net/quic/crypto/quic_random.h"
|
| #include "net/quic/quic_utils.h"
|
| +#include "net/quic/test_tools/mock_random.h"
|
| #include "net/quic/test_tools/quic_packet_creator_peer.h"
|
| #include "net/quic/test_tools/quic_test_utils.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| @@ -35,7 +35,7 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<bool> {
|
| sequence_number_(0),
|
| guid_(2),
|
| data_("foo"),
|
| - creator_(guid_, &client_framer_, QuicRandom::GetInstance(), false) {
|
| + creator_(guid_, &client_framer_, &mock_random_, false) {
|
| client_framer_.set_visitor(&framer_visitor_);
|
| server_framer_.set_visitor(&framer_visitor_);
|
| }
|
| @@ -97,6 +97,7 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<bool> {
|
| QuicPacketSequenceNumber sequence_number_;
|
| QuicGuid guid_;
|
| string data_;
|
| + MockRandom mock_random_;
|
| QuicPacketCreator creator_;
|
| };
|
|
|
| @@ -625,6 +626,29 @@ TEST_P(QuicPacketCreatorTest, AddFrameAndSerialize) {
|
| creator_.BytesFree());
|
| }
|
|
|
| +TEST_F(QuicPacketCreatorTest, EntropyFlag) {
|
| + frames_.push_back(QuicFrame(new QuicStreamFrame(0u, false, 0u, IOVector())));
|
| +
|
| + for (int i = 0; i < 2; ++i) {
|
| + for (int j = 0; j < 64; ++j) {
|
| + SerializedPacket serialized = creator_.SerializeAllFrames(frames_);
|
| + // Verify both BoolSource and hash algorithm.
|
| + bool expected_rand_bool =
|
| + (mock_random_.RandUint64() & (GG_UINT64_C(1) << j)) != 0;
|
| + bool observed_rand_bool =
|
| + (serialized.entropy_hash & (1 << ((j+1) % 8))) != 0;
|
| + uint8 rest_of_hash = serialized.entropy_hash & ~(1 << ((j+1) % 8));
|
| + EXPECT_EQ(expected_rand_bool, observed_rand_bool);
|
| + EXPECT_EQ(0, rest_of_hash);
|
| + delete serialized.packet;
|
| + }
|
| + // After 64 calls, BoolSource will refresh the bucket - make sure it does.
|
| + mock_random_.ChangeValue();
|
| + }
|
| +
|
| + delete frames_[0].stream_frame;
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace net
|
|
|