| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "media/cast/rtp_sender/packet_storage/packet_storage.h" | |
| 6 | |
| 7 #include <vector> | |
| 8 | |
| 9 #include "base/test/simple_test_tick_clock.h" | |
| 10 #include "base/time/time.h" | |
| 11 #include "testing/gmock/include/gmock/gmock.h" | |
| 12 | |
| 13 namespace media { | |
| 14 namespace cast { | |
| 15 | |
| 16 static const int kMaxDeltaStoredMs = 500; | |
| 17 static const base::TimeDelta kDeltaBetweenFrames = | |
| 18 base::TimeDelta::FromMilliseconds(33); | |
| 19 | |
| 20 static const int64 kStartMillisecond = GG_INT64_C(12345678900000); | |
| 21 | |
| 22 class PacketStorageTest : public ::testing::Test { | |
| 23 protected: | |
| 24 PacketStorageTest() : packet_storage_(&testing_clock_, kMaxDeltaStoredMs) { | |
| 25 testing_clock_.Advance( | |
| 26 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | |
| 27 } | |
| 28 | |
| 29 base::SimpleTestTickClock testing_clock_; | |
| 30 PacketStorage packet_storage_; | |
| 31 }; | |
| 32 | |
| 33 TEST_F(PacketStorageTest, TimeOut) { | |
| 34 Packet test_123(100, 123); // 100 insertions of the value 123. | |
| 35 PacketList packets; | |
| 36 for (uint32 frame_id = 0; frame_id < 30; ++frame_id) { | |
| 37 for (uint16 packet_id = 0; packet_id < 10; ++packet_id) { | |
| 38 packet_storage_.StorePacket(frame_id, packet_id, &test_123); | |
| 39 } | |
| 40 testing_clock_.Advance(kDeltaBetweenFrames); | |
| 41 } | |
| 42 | |
| 43 // All packets belonging to the first 14 frames is expected to be expired. | |
| 44 for (uint32 frame_id = 0; frame_id < 14; ++frame_id) { | |
| 45 for (uint16 packet_id = 0; packet_id < 10; ++packet_id) { | |
| 46 Packet packet; | |
| 47 EXPECT_FALSE(packet_storage_.GetPacket(frame_id, packet_id, &packets)); | |
| 48 } | |
| 49 } | |
| 50 // All packets belonging to the next 15 frames is expected to be valid. | |
| 51 for (uint32 frame_id = 14; frame_id < 30; ++frame_id) { | |
| 52 for (uint16 packet_id = 0; packet_id < 10; ++packet_id) { | |
| 53 EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets)); | |
| 54 EXPECT_TRUE(packets.front() == test_123); | |
| 55 } | |
| 56 } | |
| 57 } | |
| 58 | |
| 59 TEST_F(PacketStorageTest, MaxNumberOfPackets) { | |
| 60 Packet test_123(100, 123); // 100 insertions of the value 123. | |
| 61 PacketList packets; | |
| 62 | |
| 63 uint32 frame_id = 0; | |
| 64 for (uint16 packet_id = 0; packet_id <= PacketStorage::kMaxStoredPackets; | |
| 65 ++packet_id) { | |
| 66 packet_storage_.StorePacket(frame_id, packet_id, &test_123); | |
| 67 } | |
| 68 Packet packet; | |
| 69 uint16 packet_id = 0; | |
| 70 EXPECT_FALSE(packet_storage_.GetPacket(frame_id, packet_id, &packets)); | |
| 71 | |
| 72 ++packet_id; | |
| 73 for (; packet_id <= PacketStorage::kMaxStoredPackets; ++packet_id) { | |
| 74 EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets)); | |
| 75 EXPECT_TRUE(packets.back() == test_123); | |
| 76 } | |
| 77 } | |
| 78 | |
| 79 TEST_F(PacketStorageTest, PacketContent) { | |
| 80 Packet test_123(100, 123); // 100 insertions of the value 123. | |
| 81 Packet test_234(200, 234); // 200 insertions of the value 234. | |
| 82 PacketList packets; | |
| 83 | |
| 84 for (uint32 frame_id = 0; frame_id < 10; ++frame_id) { | |
| 85 for (uint16 packet_id = 0; packet_id < 10; ++packet_id) { | |
| 86 // Every other packet. | |
| 87 if (packet_id % 2 == 0) { | |
| 88 packet_storage_.StorePacket(frame_id, packet_id, &test_123); | |
| 89 } else { | |
| 90 packet_storage_.StorePacket(frame_id, packet_id, &test_234); | |
| 91 } | |
| 92 } | |
| 93 testing_clock_.Advance(kDeltaBetweenFrames); | |
| 94 } | |
| 95 for (uint32 frame_id = 0; frame_id < 10; ++frame_id) { | |
| 96 for (uint16 packet_id = 0; packet_id < 10; ++packet_id) { | |
| 97 EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets)); | |
| 98 // Every other packet. | |
| 99 if (packet_id % 2 == 0) { | |
| 100 EXPECT_TRUE(packets.back() == test_123); | |
| 101 } else { | |
| 102 EXPECT_TRUE(packets.back() == test_234); | |
| 103 } | |
| 104 } | |
| 105 } | |
| 106 } | |
| 107 | |
| 108 } // namespace cast | |
| 109 } // namespace media | |
| 110 | |
| OLD | NEW |