AgcManagerDirect: improve AgcMinMicLevelExperimentEnabled50 test

Also test the field trial with valid parameter and non-empty suffix.

Bug: webrtc:7494
Change-Id: I3d871b41dd71c951ac56e180b3c09cda4c3627d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251441
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36031}
This commit is contained in:
Alessio Bazzica 2022-02-11 10:46:15 +01:00 committed by WebRTC LUCI CQ
parent 8968bcae8d
commit feac97bb25

View file

@ -128,13 +128,15 @@ void CallPreProcessAudioBuffer(int num_calls,
} }
} }
std::string GetAgcMinMicLevelExperimentFieldTrial(int enabled_value) { std::string GetAgcMinMicLevelExperimentFieldTrial(
int enabled_value,
const std::string& suffix = "") {
RTC_DCHECK_GE(enabled_value, 0); RTC_DCHECK_GE(enabled_value, 0);
RTC_DCHECK_LE(enabled_value, 255); RTC_DCHECK_LE(enabled_value, 255);
char field_trial_buffer[64]; char field_trial_buffer[64];
rtc::SimpleStringBuilder builder(field_trial_buffer); rtc::SimpleStringBuilder builder(field_trial_buffer);
builder << "WebRTC-Audio-AgcMinMicLevelExperiment/Enabled-" << enabled_value builder << "WebRTC-Audio-AgcMinMicLevelExperiment/Enabled-" << enabled_value
<< "/"; << suffix << "/";
return builder.str(); return builder.str();
} }
@ -883,13 +885,16 @@ TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperiment) {
} }
TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperimentDisabled) { TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperimentDisabled) {
for (const std::string& field_trial_suffix : {"", "_20220210"}) {
test::ScopedFieldTrials field_trial( test::ScopedFieldTrials field_trial(
"WebRTC-Audio-AgcMinMicLevelExperiment/Disabled/"); "WebRTC-Audio-AgcMinMicLevelExperiment/Disabled" + field_trial_suffix +
"/");
std::unique_ptr<AgcManagerDirect> manager = std::unique_ptr<AgcManagerDirect> manager =
CreateAgcManagerDirect(kInitialVolume, kClippedLevelStep, CreateAgcManagerDirect(kInitialVolume, kClippedLevelStep,
kClippedRatioThreshold, kClippedWaitFrames); kClippedRatioThreshold, kClippedWaitFrames);
EXPECT_EQ(manager->channel_agcs_[0]->min_mic_level(), kMinMicLevel); EXPECT_EQ(manager->channel_agcs_[0]->min_mic_level(), kMinMicLevel);
EXPECT_EQ(manager->channel_agcs_[0]->startup_min_level(), kInitialVolume); EXPECT_EQ(manager->channel_agcs_[0]->startup_min_level(), kInitialVolume);
}
} }
// Checks that a field-trial parameter outside of the valid range [0,255] is // Checks that a field-trial parameter outside of the valid range [0,255] is
@ -921,13 +926,16 @@ TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperimentOutOfRangeBelow) {
// changed. // changed.
TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperimentEnabled50) { TEST(AgcManagerDirectStandaloneTest, AgcMinMicLevelExperimentEnabled50) {
constexpr int kMinMicLevelOverride = 50; constexpr int kMinMicLevelOverride = 50;
test::ScopedFieldTrials field_trial( for (const std::string& field_trial_suffix : {"", "_20220210"}) {
GetAgcMinMicLevelExperimentFieldTrial(kMinMicLevelOverride)); SCOPED_TRACE(field_trial_suffix);
test::ScopedFieldTrials field_trial(GetAgcMinMicLevelExperimentFieldTrial(
kMinMicLevelOverride, field_trial_suffix));
std::unique_ptr<AgcManagerDirect> manager = std::unique_ptr<AgcManagerDirect> manager =
CreateAgcManagerDirect(kInitialVolume, kClippedLevelStep, CreateAgcManagerDirect(kInitialVolume, kClippedLevelStep,
kClippedRatioThreshold, kClippedWaitFrames); kClippedRatioThreshold, kClippedWaitFrames);
EXPECT_EQ(manager->channel_agcs_[0]->min_mic_level(), kMinMicLevelOverride); EXPECT_EQ(manager->channel_agcs_[0]->min_mic_level(), kMinMicLevelOverride);
EXPECT_EQ(manager->channel_agcs_[0]->startup_min_level(), kInitialVolume); EXPECT_EQ(manager->channel_agcs_[0]->startup_min_level(), kInitialVolume);
}
} }
// Checks that, when the "WebRTC-Audio-AgcMinMicLevelExperiment" field trial is // Checks that, when the "WebRTC-Audio-AgcMinMicLevelExperiment" field trial is