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