blob: 25329bbe0790550c15ff27adf1e3726ff2f810ae [file]
/*
* Copyright 2026 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 "rtc_base/experiments/retransmit_flushed_packets_settings.h"
#include "api/field_trials.h"
#include "test/create_test_field_trials.h"
#include "test/gtest.h"
namespace webrtc {
namespace {
TEST(RetransmitFlushedPacketsSettingsTest, DisabledByDefault) {
FieldTrials trials = CreateTestFieldTrials("");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_FALSE(settings.is_enabled());
EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 2.0);
}
TEST(RetransmitFlushedPacketsSettingsTest, DisabledExplicitly) {
FieldTrials trials =
CreateTestFieldTrials("WebRTC-RetransmitFlushedPackets/Disabled/");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_FALSE(settings.is_enabled());
}
TEST(RetransmitFlushedPacketsSettingsTest, EnabledDefaultMultiplier) {
FieldTrials trials =
CreateTestFieldTrials("WebRTC-RetransmitFlushedPackets/Enabled/");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_TRUE(settings.is_enabled());
EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 2.0);
}
TEST(RetransmitFlushedPacketsSettingsTest, EnabledWithCustomMultiplier) {
FieldTrials trials = CreateTestFieldTrials(
"WebRTC-RetransmitFlushedPackets/Enabled,rtt_multiplier:3.5/");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_TRUE(settings.is_enabled());
EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 3.5);
}
TEST(RetransmitFlushedPacketsSettingsTest, EnabledViaParameter) {
FieldTrials trials = CreateTestFieldTrials(
"WebRTC-RetransmitFlushedPackets/enabled:true,rtt_multiplier:1.5/");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_TRUE(settings.is_enabled());
EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 1.5);
}
TEST(RetransmitFlushedPacketsSettingsTest, NegativeMultiplierClampedToZero) {
FieldTrials trials = CreateTestFieldTrials(
"WebRTC-RetransmitFlushedPackets/Enabled,rtt_multiplier:-1.0/");
RetransmitFlushedPacketsSettings settings(trials);
EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 0.0);
}
} // namespace
} // namespace webrtc