webrtc/media/engine/unhandled_packets_buffer_unittest.cc
Jonas Olsson a4d873786f Format almost everything.
This CL was generated by running

git ls-files | grep -P "(\.h|\.cc)$" | grep -v 'sdk/' | grep -v 'rtc_base/ssl_' | \
grep -v 'fake_rtc_certificate_generator.h' | grep -v 'modules/audio_device/win/' | \
grep -v 'system_wrappers/source/clock.cc' | grep -v 'rtc_base/trace_event.h' | \
grep -v 'modules/audio_coding/codecs/ilbc/' | grep -v 'screen_capturer_mac.h' | \
grep -v 'spl_inl_mips.h' | grep -v 'data_size_unittest.cc' | grep -v 'timestamp_unittest.cc' \
| xargs clang-format -i ; git cl format

Most of these changes are clang-format grouping and reordering includes
differently.

Bug: webrtc:9340
Change-Id: Ic83ddbc169bfacd21883e381b5181c3dd4fe8a63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144051
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28505}
2019-07-08 13:45:15 +00:00

171 lines
5.3 KiB
C++

/*
* Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "media/engine/unhandled_packets_buffer.h"
#include <memory>
#include "absl/memory/memory.h"
#include "test/gmock.h"
#include "test/gtest.h"
using ::testing::_;
namespace {
rtc::CopyOnWriteBuffer Create(int n) {
return rtc::CopyOnWriteBuffer(std::to_string(n));
}
constexpr int64_t kPacketTimeUs = 122;
} // namespace
namespace cricket {
TEST(UnhandledPacketsBuffer, NoPackets) {
UnhandledPacketsBuffer buff;
buff.AddPacket(2, kPacketTimeUs, Create(3));
std::vector<uint32_t> ssrcs = {3};
std::vector<rtc::CopyOnWriteBuffer> packets;
buff.BackfillPackets(ssrcs, [&packets](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
packets.push_back(packet);
});
EXPECT_EQ(0u, packets.size());
}
TEST(UnhandledPacketsBuffer, OnePacket) {
UnhandledPacketsBuffer buff;
buff.AddPacket(2, kPacketTimeUs, Create(3));
std::vector<uint32_t> ssrcs = {2};
std::vector<rtc::CopyOnWriteBuffer> packets;
buff.BackfillPackets(ssrcs, [&packets](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
packets.push_back(packet);
});
ASSERT_EQ(1u, packets.size());
EXPECT_EQ(Create(3), packets[0]);
}
TEST(UnhandledPacketsBuffer, TwoPacketsTwoSsrcs) {
UnhandledPacketsBuffer buff;
buff.AddPacket(2, kPacketTimeUs, Create(3));
buff.AddPacket(3, kPacketTimeUs, Create(4));
std::vector<uint32_t> ssrcs = {2, 3};
std::vector<rtc::CopyOnWriteBuffer> packets;
buff.BackfillPackets(ssrcs, [&packets](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
packets.push_back(packet);
});
ASSERT_EQ(2u, packets.size());
EXPECT_EQ(Create(3), packets[0]);
EXPECT_EQ(Create(4), packets[1]);
}
TEST(UnhandledPacketsBuffer, TwoPacketsTwoSsrcsOneMatch) {
UnhandledPacketsBuffer buff;
buff.AddPacket(2, kPacketTimeUs, Create(3));
buff.AddPacket(3, kPacketTimeUs, Create(4));
std::vector<uint32_t> ssrcs = {3};
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 3u);
EXPECT_EQ(Create(4), packet);
});
std::vector<uint32_t> ssrcs_again = {2};
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 2u);
EXPECT_EQ(Create(3), packet);
});
}
TEST(UnhandledPacketsBuffer, Full) {
const size_t cnt = UnhandledPacketsBuffer::kMaxStashedPackets;
UnhandledPacketsBuffer buff;
for (size_t i = 0; i < cnt; i++) {
buff.AddPacket(2, kPacketTimeUs, Create(i));
}
std::vector<uint32_t> ssrcs = {2};
std::vector<rtc::CopyOnWriteBuffer> packets;
buff.BackfillPackets(ssrcs, [&packets](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
packets.push_back(packet);
});
ASSERT_EQ(cnt, packets.size());
for (size_t i = 0; i < cnt; i++) {
EXPECT_EQ(Create(i), packets[i]);
}
// Add a packet after backfill and check that it comes back.
buff.AddPacket(23, kPacketTimeUs, Create(1001));
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 23u);
EXPECT_EQ(Create(1001), packet);
});
}
TEST(UnhandledPacketsBuffer, Wrap) {
UnhandledPacketsBuffer buff;
size_t cnt = UnhandledPacketsBuffer::kMaxStashedPackets + 10;
for (size_t i = 0; i < cnt; i++) {
buff.AddPacket(2, kPacketTimeUs, Create(i));
}
std::vector<uint32_t> ssrcs = {2};
std::vector<rtc::CopyOnWriteBuffer> packets;
buff.BackfillPackets(ssrcs, [&packets](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
packets.push_back(packet);
});
for (size_t i = 0; i < packets.size(); i++) {
EXPECT_EQ(Create(i + 10), packets[i]);
}
// Add a packet after backfill and check that it comes back.
buff.AddPacket(23, kPacketTimeUs, Create(1001));
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 23u);
EXPECT_EQ(Create(1001), packet);
});
}
TEST(UnhandledPacketsBuffer, Interleaved) {
UnhandledPacketsBuffer buff;
buff.AddPacket(2, kPacketTimeUs, Create(2));
buff.AddPacket(3, kPacketTimeUs, Create(3));
std::vector<uint32_t> ssrcs = {2};
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 2u);
EXPECT_EQ(Create(2), packet);
});
buff.AddPacket(4, kPacketTimeUs, Create(4));
ssrcs = {3};
buff.BackfillPackets(ssrcs, [](uint32_t ssrc, int64_t packet_time_us,
rtc::CopyOnWriteBuffer packet) {
EXPECT_EQ(ssrc, 3u);
EXPECT_EQ(Create(3), packet);
});
}
} // namespace cricket