Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Unified Diff: webrtc/modules/pacing/packet_router_unittest.cc

Issue 2628563003: Propagate packet pacing information to SenTimeHistory (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/pacing/packet_router_unittest.cc
diff --git a/webrtc/modules/pacing/packet_router_unittest.cc b/webrtc/modules/pacing/packet_router_unittest.cc
index a0688ffbbed8aff9eeced7cb3ce10439652772d2..967fdccae0d7b61fdf489c57b69a622fb84a0edc 100644
--- a/webrtc/modules/pacing/packet_router_unittest.cc
+++ b/webrtc/modules/pacing/packet_router_unittest.cc
@@ -21,6 +21,7 @@
using ::testing::_;
using ::testing::AnyNumber;
+using ::testing::Field;
using ::testing::NiceMock;
using ::testing::Return;
@@ -30,6 +31,8 @@ class PacketRouterTest : public ::testing::Test {
public:
PacketRouterTest() : packet_router_(new PacketRouter()) {}
protected:
+ static const int kProbeMinProbes = 5;
+ static const int kProbeMinBytes = 1000;
const std::unique_ptr<PacketRouter> packet_router_;
};
@@ -47,13 +50,15 @@ TEST_F(PacketRouterTest, TimeToSendPacket) {
// Send on the first module by letting rtp_1 be sending with correct ssrc.
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_1, SSRC()).Times(1).WillOnce(Return(kSsrc1));
- EXPECT_CALL(rtp_1, TimeToSendPacket(kSsrc1, sequence_number, timestamp,
- retransmission, 1))
+ EXPECT_CALL(rtp_1, TimeToSendPacket(
+ kSsrc1, sequence_number, timestamp, retransmission,
+ Field(&PacedPacketInfo::probe_cluster_id, 1)))
.Times(1)
.WillOnce(Return(true));
EXPECT_CALL(rtp_2, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc1, sequence_number,
- timestamp, retransmission, 1));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc1, sequence_number, timestamp, retransmission,
+ PacedPacketInfo(1, kProbeMinProbes, kProbeMinBytes)));
// Send on the second module by letting rtp_2 be sending, but not rtp_1.
++sequence_number;
@@ -64,20 +69,23 @@ TEST_F(PacketRouterTest, TimeToSendPacket) {
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_2, SSRC()).Times(1).WillOnce(Return(kSsrc2));
EXPECT_CALL(rtp_1, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_CALL(rtp_2, TimeToSendPacket(kSsrc2, sequence_number, timestamp,
- retransmission, 2))
+ EXPECT_CALL(rtp_2, TimeToSendPacket(
+ kSsrc2, sequence_number, timestamp, retransmission,
+ Field(&PacedPacketInfo::probe_cluster_id, 2)))
.Times(1)
.WillOnce(Return(true));
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc2, sequence_number,
- timestamp, retransmission, 2));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc2, sequence_number, timestamp, retransmission,
+ PacedPacketInfo(2, kProbeMinProbes, kProbeMinBytes)));
// No module is sending, hence no packet should be sent.
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(false));
EXPECT_CALL(rtp_1, TimeToSendPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false));
EXPECT_CALL(rtp_2, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc1, sequence_number,
- timestamp, retransmission, 1));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc1, sequence_number, timestamp, retransmission,
+ PacedPacketInfo(1, kProbeMinProbes, kProbeMinBytes)));
// Add a packet with incorrect ssrc and test it's dropped in the router.
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true));
@@ -86,8 +94,9 @@ TEST_F(PacketRouterTest, TimeToSendPacket) {
EXPECT_CALL(rtp_2, SSRC()).Times(1).WillOnce(Return(kSsrc2));
EXPECT_CALL(rtp_1, TimeToSendPacket(_, _, _, _, _)).Times(0);
EXPECT_CALL(rtp_2, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc1 + kSsrc2, sequence_number,
- timestamp, retransmission, 1));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc1 + kSsrc2, sequence_number, timestamp, retransmission,
+ PacedPacketInfo(1, kProbeMinProbes, kProbeMinBytes)));
packet_router_->RemoveRtpModule(&rtp_1);
@@ -96,9 +105,10 @@ TEST_F(PacketRouterTest, TimeToSendPacket) {
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_2, SSRC()).Times(1).WillOnce(Return(kSsrc2));
EXPECT_CALL(rtp_2, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc1, sequence_number,
- timestamp, retransmission,
- PacketInfo::kNotAProbe));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc1, sequence_number, timestamp, retransmission,
+ PacedPacketInfo(PacedPacketInfo::kNotAProbe, kProbeMinBytes,
+ kProbeMinBytes)));
packet_router_->RemoveRtpModule(&rtp_2);
}
@@ -123,17 +133,22 @@ TEST_F(PacketRouterTest, TimeToSendPadding) {
const size_t sent_padding_bytes = 890;
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_2, HasBweExtensions()).Times(1).WillOnce(Return(true));
- EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, 111))
+ EXPECT_CALL(rtp_2,
+ TimeToSendPadding(requested_padding_bytes,
+ Field(&PacedPacketInfo::probe_cluster_id, 111)))
.Times(1)
.WillOnce(Return(sent_padding_bytes));
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_1, HasBweExtensions()).Times(1).WillOnce(Return(true));
- EXPECT_CALL(rtp_1, TimeToSendPadding(
- requested_padding_bytes - sent_padding_bytes, 111))
+ EXPECT_CALL(rtp_1,
+ TimeToSendPadding(requested_padding_bytes - sent_padding_bytes,
+ Field(&PacedPacketInfo::probe_cluster_id, 111)))
.Times(1)
.WillOnce(Return(requested_padding_bytes - sent_padding_bytes));
EXPECT_EQ(requested_padding_bytes,
- packet_router_->TimeToSendPadding(requested_padding_bytes, 111));
+ packet_router_->TimeToSendPadding(
+ requested_padding_bytes,
+ PacedPacketInfo(111, kProbeMinBytes, kProbeMinBytes)));
// Let only the lower priority module be sending and verify the padding
// request is routed there.
@@ -145,16 +160,21 @@ TEST_F(PacketRouterTest, TimeToSendPadding) {
.Times(1)
.WillOnce(Return(sent_padding_bytes));
EXPECT_EQ(sent_padding_bytes,
- packet_router_->TimeToSendPadding(requested_padding_bytes,
- PacketInfo::kNotAProbe));
+ packet_router_->TimeToSendPadding(
+ requested_padding_bytes,
+ PacedPacketInfo(PacedPacketInfo::kNotAProbe, kProbeMinBytes,
+ kProbeMinBytes)));
// No sending module at all.
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(false));
EXPECT_CALL(rtp_1, TimeToSendPadding(requested_padding_bytes, _)).Times(0);
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false));
EXPECT_CALL(rtp_2, TimeToSendPadding(_, _)).Times(0);
- EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes,
- PacketInfo::kNotAProbe));
+ EXPECT_EQ(0u,
+ packet_router_->TimeToSendPadding(
+ requested_padding_bytes,
+ PacedPacketInfo(PacedPacketInfo::kNotAProbe, kProbeMinBytes,
+ kProbeMinBytes)));
// Only one module has BWE extensions.
EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true));
@@ -166,8 +186,10 @@ TEST_F(PacketRouterTest, TimeToSendPadding) {
.Times(1)
.WillOnce(Return(sent_padding_bytes));
EXPECT_EQ(sent_padding_bytes,
- packet_router_->TimeToSendPadding(requested_padding_bytes,
- PacketInfo::kNotAProbe));
+ packet_router_->TimeToSendPadding(
+ requested_padding_bytes,
+ PacedPacketInfo(PacedPacketInfo::kNotAProbe, kProbeMinBytes,
+ kProbeMinBytes)));
packet_router_->RemoveRtpModule(&rtp_1);
@@ -176,8 +198,11 @@ TEST_F(PacketRouterTest, TimeToSendPadding) {
EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_2, HasBweExtensions()).Times(1).WillOnce(Return(true));
EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)).Times(1);
- EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes,
- PacketInfo::kNotAProbe));
+ EXPECT_EQ(0u,
+ packet_router_->TimeToSendPadding(
+ requested_padding_bytes,
+ PacedPacketInfo(PacedPacketInfo::kNotAProbe, kProbeMinBytes,
+ kProbeMinBytes)));
packet_router_->RemoveRtpModule(&rtp_2);
}
@@ -191,11 +216,15 @@ TEST_F(PacketRouterTest, SenderOnlyFunctionsRespectSendingMedia) {
// Verify that TimeToSendPacket does not end up in a receiver.
EXPECT_CALL(rtp, TimeToSendPacket(_, _, _, _, _)).Times(0);
- EXPECT_TRUE(packet_router_->TimeToSendPacket(kSsrc, 1, 1, false,
- PacketInfo::kNotAProbe));
+ EXPECT_TRUE(packet_router_->TimeToSendPacket(
+ kSsrc, 1, 1, false, PacedPacketInfo(PacedPacketInfo::kNotAProbe,
+ kProbeMinBytes, kProbeMinBytes)));
// Verify that TimeToSendPadding does not end up in a receiver.
EXPECT_CALL(rtp, TimeToSendPadding(_, _)).Times(0);
- EXPECT_EQ(0u, packet_router_->TimeToSendPadding(200, PacketInfo::kNotAProbe));
+ EXPECT_EQ(0u,
+ packet_router_->TimeToSendPadding(
+ 200, PacedPacketInfo(PacedPacketInfo::kNotAProbe,
+ kProbeMinBytes, kProbeMinBytes)));
packet_router_->RemoveRtpModule(&rtp);
}
« no previous file with comments | « webrtc/modules/pacing/packet_router.cc ('k') | webrtc/modules/remote_bitrate_estimator/send_time_history_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698