| Index: content/browser/renderer_host/p2p/socket_host_udp_unittest.cc
|
| diff --git a/content/browser/renderer_host/p2p/socket_host_udp_unittest.cc b/content/browser/renderer_host/p2p/socket_host_udp_unittest.cc
|
| index 5d67a24fc3327563c21773cc973ae8ba7084e7b0..bcde983836fa3f654786b1c1aa33b90719877be5 100644
|
| --- a/content/browser/renderer_host/p2p/socket_host_udp_unittest.cc
|
| +++ b/content/browser/renderer_host/p2p/socket_host_udp_unittest.cc
|
| @@ -373,4 +373,40 @@ TEST_F(P2PSocketHostUdpTest, ThrottleAfterLimitAfterReceive) {
|
| ASSERT_EQ(sent_packets_.size(), 4U);
|
| }
|
|
|
| +TEST_F(P2PSocketHostUdpTest, PackUnpackCallRecord) {
|
| + uint64 packet_id_result;
|
| + uint64 ticks_diff;
|
| + uint64 random_prefix = 0xabcd1234uLL << 32;
|
| + ASSERT_EQ(random_prefix & ((1uLL << 32) - 1), 0uL);
|
| +
|
| + uint64 packet_id = 12;
|
| + uint64 ticks_now = 12345;
|
| + uint64 call_record =
|
| + P2PSocketHostUdp::PackCallRecord(random_prefix + packet_id, ticks_now);
|
| + EXPECT_EQ(call_record, (ticks_now << 32) + packet_id);
|
| +
|
| + // Increment the tick by 2.
|
| + P2PSocketHostUdp::UnpackCallRecord(call_record,
|
| + random_prefix,
|
| + ticks_now + 2,
|
| + &packet_id_result,
|
| + &ticks_diff);
|
| + EXPECT_EQ(packet_id_result, random_prefix + packet_id);
|
| + EXPECT_EQ(ticks_diff, 2uL);
|
| +
|
| + // Try a large packet id and the tick is rounding over 2^32.
|
| + packet_id = 0xffffffff;
|
| + ticks_now = 0xffffff00;
|
| + call_record =
|
| + P2PSocketHostUdp::PackCallRecord(random_prefix + packet_id, ticks_now);
|
| + EXPECT_EQ(call_record, (ticks_now << 32) + 0xffffffff);
|
| + P2PSocketHostUdp::UnpackCallRecord(call_record,
|
| + random_prefix,
|
| + ticks_now + 0x150,
|
| + &packet_id_result,
|
| + &ticks_diff);
|
| + EXPECT_EQ(packet_id_result, random_prefix + packet_id);
|
| + EXPECT_EQ(ticks_diff, 0x150uL);
|
| +}
|
| +
|
| } // namespace content
|
|
|