TransportFeedbackPacketLossTrackerTest cosmetic modification
BUG=webrtc:7058
Review-Url: https://codereview.webrtc.org/2751653006
Cr-Original-Commit-Position: refs/heads/master@{#17320}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 6a64bd96bf8cdf795487cd4433415b7f85061927
diff --git a/voice_engine/transport_feedback_packet_loss_tracker_unittest.cc b/voice_engine/transport_feedback_packet_loss_tracker_unittest.cc
index 3bd580c..cca1ff2 100644
--- a/voice_engine/transport_feedback_packet_loss_tracker_unittest.cc
+++ b/voice_engine/transport_feedback_packet_loss_tracker_unittest.cc
@@ -23,6 +23,9 @@
namespace {
+constexpr int64_t kDefaultSendIntervalMs = 10;
+constexpr int64_t kDefaultMaxWindowSizeMs = 500 * kDefaultSendIntervalMs;
+
class TransportFeedbackPacketLossTrackerTest
: public ::testing::TestWithParam<uint16_t> {
using TransportFeedback = webrtc::rtcp::TransportFeedback;
@@ -141,7 +144,7 @@
// Sanity check on an empty window.
TEST_P(TransportFeedbackPacketLossTrackerTest, EmptyWindow) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 5);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 5);
// PLR and RPLR reported as unknown before reception of first feedback.
ValidatePacketLossStatistics(tracker,
@@ -151,7 +154,7 @@
// A feedback received for an empty window has no effect.
TEST_P(TransportFeedbackPacketLossTrackerTest, EmptyWindowFeedback) {
- TransportFeedbackPacketLossTracker tracker(5000, 3, 2);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 3, 2);
// Feedback doesn't correspond to any packets - ignored.
AddTransportFeedbackAndValidate(&tracker, base_, {true, false, true});
@@ -160,19 +163,19 @@
rtc::Optional<float>());
// After the packets are transmitted, acking them would have an effect.
- SendPackets(&tracker, base_, 3, 10);
+ SendPackets(&tracker, base_, 3, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_, {true, false, true});
ValidatePacketLossStatistics(tracker, 1.0f / 3.0f, 0.5f);
}
// Sanity check on partially filled window.
TEST_P(TransportFeedbackPacketLossTrackerTest, PartiallyFilledWindow) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
// PLR unknown before minimum window size reached.
// RPLR unknown before minimum pairs reached.
// Expected window contents: [] -> [1001].
- SendPackets(&tracker, base_, 3, 10);
+ SendPackets(&tracker, base_, 3, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_, {true, false, false, true});
ValidatePacketLossStatistics(tracker,
rtc::Optional<float>(),
@@ -181,12 +184,12 @@
// Sanity check on minimum filled window - PLR known, RPLR unknown.
TEST_P(TransportFeedbackPacketLossTrackerTest, PlrMinimumFilledWindow) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 5);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 5);
// PLR correctly calculated after minimum window size reached.
// RPLR not necessarily known at that time (not if min-pairs not reached).
// Expected window contents: [] -> [10011].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{true, false, false, true, true});
ValidatePacketLossStatistics(tracker,
@@ -196,12 +199,12 @@
// Sanity check on minimum filled window - PLR unknown, RPLR known.
TEST_P(TransportFeedbackPacketLossTrackerTest, RplrMinimumFilledWindow) {
- TransportFeedbackPacketLossTracker tracker(5000, 6, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 6, 4);
// RPLR correctly calculated after minimum pairs reached.
// PLR not necessarily known at that time (not if min window not reached).
// Expected window contents: [] -> [10011].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{true, false, false, true, true});
ValidatePacketLossStatistics(tracker,
@@ -212,7 +215,7 @@
// If packets are sent close enough together that the clock reading for both
// is the same, that's handled properly.
TEST_P(TransportFeedbackPacketLossTrackerTest, SameSentTime) {
- TransportFeedbackPacketLossTracker tracker(5000, 3, 2);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 3, 2);
// Expected window contents: [] -> [101].
SendPackets(&tracker, base_, 3, 0); // Note: time interval = 0ms.
@@ -223,9 +226,9 @@
// Additional reports update PLR and RPLR.
TEST_P(TransportFeedbackPacketLossTrackerTest, ExtendWindow) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 5);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 5);
- SendPackets(&tracker, base_, 25, 10);
+ SendPackets(&tracker, base_, 25, kDefaultSendIntervalMs);
// Expected window contents: [] -> [10011].
AddTransportFeedbackAndValidate(&tracker, base_,
@@ -247,13 +250,11 @@
// Correct calculation with different packet lengths.
TEST_P(TransportFeedbackPacketLossTrackerTest, DifferentSentIntervals) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
- int64_t now_ms = 0;
int64_t frames[] = {20, 60, 120, 20, 60};
for (size_t i = 0; i < sizeof(frames) / sizeof(frames[0]); i++) {
- tracker.OnPacketAdded(static_cast<uint16_t>(base_ + i), now_ms);
- now_ms += frames[i];
+ SendPackets(&tracker, {static_cast<uint16_t>(base_ + i)}, frames[i]);
}
// Expected window contents: [] -> [10011].
@@ -266,11 +267,11 @@
// window size. The oldest packets get shifted out of window to make room
// for the newer ones.
TEST_P(TransportFeedbackPacketLossTrackerTest, MaxWindowSize) {
- TransportFeedbackPacketLossTracker tracker(40, 5, 1);
+ TransportFeedbackPacketLossTracker tracker(4 * kDefaultSendIntervalMs, 5, 1);
- SendPackets(&tracker, base_, 6, 10, true);
+ SendPackets(&tracker, base_, 6, kDefaultSendIntervalMs, true);
- // Up to the maximum time-span retained (first + 4 * 10ms).
+ // Up to the maximum time-span retained (first + 4 * kDefaultSendIntervalMs).
// Expected window contents: [] -> [01001].
AddTransportFeedbackAndValidate(&tracker, base_,
{false, true, false, false, true});
@@ -285,10 +286,10 @@
// All packets received.
TEST_P(TransportFeedbackPacketLossTrackerTest, AllReceived) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
// Expected window contents: [] -> [11111].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{true, true, true, true, true});
ValidatePacketLossStatistics(tracker, 0.0f, 0.0f);
@@ -296,12 +297,12 @@
// All packets lost.
TEST_P(TransportFeedbackPacketLossTrackerTest, AllLost) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
// Note: The last packet in the feedback does not belong to the stream.
// It's only there because we're not allowed to end a feedback with a loss.
// Expected window contents: [] -> [00000].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{false, false, false, false, false, true});
ValidatePacketLossStatistics(tracker, 1.0f, 0.0f);
@@ -309,9 +310,9 @@
// Repeated reports are ignored.
TEST_P(TransportFeedbackPacketLossTrackerTest, ReportRepetition) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
// Expected window contents: [] -> [10011].
AddTransportFeedbackAndValidate(&tracker, base_,
@@ -327,9 +328,9 @@
// Report overlap.
TEST_P(TransportFeedbackPacketLossTrackerTest, ReportOverlap) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 1);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 1);
- SendPackets(&tracker, base_, 15, 10);
+ SendPackets(&tracker, base_, 15, kDefaultSendIntervalMs);
// Expected window contents: [] -> [10011].
AddTransportFeedbackAndValidate(&tracker, base_,
@@ -344,7 +345,7 @@
// Report conflict.
TEST_P(TransportFeedbackPacketLossTrackerTest, ReportConflict) {
- TransportFeedbackPacketLossTracker tracker(5000, 5, 4);
+ TransportFeedbackPacketLossTracker tracker(kDefaultMaxWindowSizeMs, 5, 4);
SendPackets(&tracker, base_, 15, 10);
@@ -361,9 +362,10 @@
// Skipped packets treated as unknown (not lost).
TEST_P(TransportFeedbackPacketLossTrackerTest, SkippedPackets) {
- TransportFeedbackPacketLossTracker tracker(200 * 10, 5, 1);
+ TransportFeedbackPacketLossTracker tracker(200 * kDefaultSendIntervalMs, 5,
+ 1);
- SendPackets(&tracker, base_, 200, 10);
+ SendPackets(&tracker, base_, 200, kDefaultSendIntervalMs);
// Expected window contents: [] -> [10011].
AddTransportFeedbackAndValidate(&tracker, base_,
@@ -416,9 +418,10 @@
// Inserting feedback into the middle of a window works correctly - can
// complete two pairs.
TEST_P(TransportFeedbackPacketLossTrackerTest, InsertionCompletesTwoPairs) {
- TransportFeedbackPacketLossTracker tracker(1500, 5, 1);
+ TransportFeedbackPacketLossTracker tracker(150 * kDefaultSendIntervalMs, 5,
+ 1);
- SendPackets(&tracker, base_, 15, 10);
+ SendPackets(&tracker, base_, 15, kDefaultSendIntervalMs);
// Expected window contents: [] -> [10111].
AddTransportFeedbackAndValidate(&tracker, base_,
@@ -439,7 +442,7 @@
// Sequence number gaps are not gaps in reception. However, gaps in reception
// are still possible, if a packet which WAS sent on the stream is not acked.
TEST_P(TransportFeedbackPacketLossTrackerTest, SanityGapsInSequenceNumbers) {
- TransportFeedbackPacketLossTracker tracker(500, 5, 1);
+ TransportFeedbackPacketLossTracker tracker(50 * kDefaultSendIntervalMs, 5, 1);
SendPackets(&tracker,
{static_cast<uint16_t>(base_),
@@ -447,7 +450,7 @@
static_cast<uint16_t>(base_ + 4),
static_cast<uint16_t>(base_ + 6),
static_cast<uint16_t>(base_ + 8)},
- 10);
+ kDefaultSendIntervalMs);
// Gaps in sequence numbers not considered as gaps in window, because only
// those sequence numbers which were associated with the stream count.
@@ -468,7 +471,7 @@
{static_cast<uint16_t>(base_ + 10),
static_cast<uint16_t>(base_ + 12),
static_cast<uint16_t>(base_ + 14)},
- 10);
+ kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_ + 11,
{false, false, false, true, true});
ValidatePacketLossStatistics(tracker, 2.0f / 7.0f, 2.0f / 5.0f);
@@ -537,17 +540,18 @@
}
TEST_P(TransportFeedbackPacketLossTrackerTest, RepeatedSeqNumResetsWindow) {
- TransportFeedbackPacketLossTracker tracker(500, 2, 1);
+ TransportFeedbackPacketLossTracker tracker(50 * kDefaultSendIntervalMs, 2, 1);
// Baseline - window has acked messages.
// Expected window contents: [] -> [01101].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{false, true, true, false, true});
ValidatePacketLossStatistics(tracker, 2.0f / 5.0f, 2.0f / 4.0f);
// A reset occurs.
- SendPackets(&tracker, static_cast<uint16_t>(base_ + 2), 1, 10);
+ SendPackets(&tracker, {static_cast<uint16_t>(base_ + 2)},
+ kDefaultSendIntervalMs);
ValidatePacketLossStatistics(tracker,
rtc::Optional<float>(),
rtc::Optional<float>());
@@ -557,17 +561,18 @@
// away from the newest packet acked/unacked packet.
TEST_P(TransportFeedbackPacketLossTrackerTest,
SendAfterLongSuspensionResetsWindow) {
- TransportFeedbackPacketLossTracker tracker(500, 2, 1);
+ TransportFeedbackPacketLossTracker tracker(50 * kDefaultSendIntervalMs, 2, 1);
// Baseline - window has acked messages.
// Expected window contents: [] -> [01101].
- SendPackets(&tracker, base_, 5, 10);
+ SendPackets(&tracker, base_, 5, kDefaultSendIntervalMs);
AddTransportFeedbackAndValidate(&tracker, base_,
{false, true, true, false, true});
ValidatePacketLossStatistics(tracker, 2.0f / 5.0f, 2.0f / 4.0f);
// A reset occurs.
- SendPackets(&tracker, static_cast<uint16_t>(base_ + 5 + 0x8000), 1, 10);
+ SendPackets(&tracker, {static_cast<uint16_t>(base_ + 5 + 0x8000)},
+ kDefaultSendIntervalMs);
ValidatePacketLossStatistics(tracker,
rtc::Optional<float>(),
rtc::Optional<float>());