Fix rtc_unittests for force-test-env flag Update unittests to use CreateTestEnvironment and CreateTestFieldTrials instead of production versions, and add bypasses to low-level implementation tests, allowing rtc_unittests to pass with the --force-test-environment flag. Bug: webrtc:521534686 Change-Id: I2c70d254a6950db86bdd129ea690c9fc7b4901ef Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/480221 Auto-Submit: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47962}
diff --git a/api/audio_codecs/opus/audio_decoder_opus_unittest.cc b/api/audio_codecs/opus/audio_decoder_opus_unittest.cc index 9343419..a1eb5b8 100644 --- a/api/audio_codecs/opus/audio_decoder_opus_unittest.cc +++ b/api/audio_codecs/opus/audio_decoder_opus_unittest.cc
@@ -16,9 +16,7 @@ #include "api/audio_codecs/audio_format.h" #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" #include "test/create_test_environment.h" -#include "test/create_test_field_trials.h" #include "test/gmock.h" #include "test/gtest.h" @@ -88,8 +86,8 @@ } TEST(AudioDecoderOpusTest, MakeAudioDecoderForcesStereo) { - const Environment env = CreateEnvironment(CreateTestFieldTrialsPtr( - "WebRTC-Audio-OpusDecodeStereoByDefault/Enabled/")); + const Environment env = CreateTestEnvironment( + {.field_trials = "WebRTC-Audio-OpusDecodeStereoByDefault/Enabled/"}); auto decoder = AudioDecoderOpus::MakeAudioDecoder( env, /*config=*/{.num_channels = std::nullopt}); @@ -98,8 +96,8 @@ } TEST(AudioDecoderOpusTest, MakeAudioDecoderCannotForceStereo) { - const Environment env = CreateEnvironment(CreateTestFieldTrialsPtr( - "WebRTC-Audio-OpusDecodeStereoByDefault/Enabled/")); + const Environment env = CreateTestEnvironment( + {.field_trials = "WebRTC-Audio-OpusDecodeStereoByDefault/Enabled/"}); auto decoder = AudioDecoderOpus::MakeAudioDecoder(env, /*config=*/{.num_channels = 1});
diff --git a/api/environment/environment_factory.cc b/api/environment/environment_factory.cc index 1f2f31d..53773dc 100644 --- a/api/environment/environment_factory.cc +++ b/api/environment/environment_factory.cc
@@ -100,7 +100,8 @@ } Environment EnvironmentFactory::CreateWithDefaults() && { - RTC_CHECK(!IsForceTestEnvironmentEnabled() || + RTC_CHECK((field_trials_ != nullptr && field_trials_->IsTest()) || + !IsForceTestEnvironmentEnabled() || IsTestEnvironmentCheckBypassed()) << "Production Environment creation is not allowed in tests. Use " "CreateTestEnvironment.";
diff --git a/api/environment/environment_unittest.cc b/api/environment/environment_unittest.cc index 314283a..df975ad 100644 --- a/api/environment/environment_unittest.cc +++ b/api/environment/environment_unittest.cc
@@ -39,6 +39,12 @@ using ::testing::Not; using ::testing::NotNull; using ::testing::Ref; +using ::testing::Test; + +class EnvironmentTest : public Test { + private: + AutoBypassTestEnvironmentCheck bypass_; +}; class FakeEvent : public RtcEvent { public: @@ -89,7 +95,7 @@ absl::AnyInvocable<void() &&> on_destroyed_; }; -TEST(EnvironmentTest, DefaultEnvironmentHasAllUtilities) { +TEST_F(EnvironmentTest, DefaultEnvironmentHasAllUtilities) { Environment env = EnvironmentFactory().Create(); // Try to use each utility, expect no crashes. @@ -101,7 +107,7 @@ env.field_trials().Lookup("WebRTC-Debugging-RtpDump"); } -TEST(EnvironmentTest, UsesProvidedUtilitiesWithOwnership) { +TEST_F(EnvironmentTest, UsesProvidedUtilitiesWithOwnership) { auto owned_field_trials = std::make_unique<FakeFieldTrials>(); auto owned_task_queue_factory = std::make_unique<FakeTaskQueueFactory>(); auto owned_clock = std::make_unique<SimulatedClock>(Timestamp::Zero()); @@ -122,7 +128,7 @@ EXPECT_THAT(env.event_log(), Ref(event_log)); } -TEST(EnvironmentTest, UsesProvidedUtilitiesWithoutOwnership) { +TEST_F(EnvironmentTest, UsesProvidedUtilitiesWithoutOwnership) { FakeFieldTrials field_trials; FakeTaskQueueFactory task_queue_factory; SimulatedClock clock(Timestamp::Zero()); @@ -137,7 +143,7 @@ EXPECT_THAT(env.event_log(), Ref(event_log)); } -TEST(EnvironmentTest, UsesLastProvidedUtility) { +TEST_F(EnvironmentTest, UsesLastProvidedUtility) { auto owned_field_trials1 = std::make_unique<FakeFieldTrials>(); auto owned_field_trials2 = std::make_unique<FakeFieldTrials>(); FieldTrialsView& field_trials2 = *owned_field_trials2; @@ -159,7 +165,7 @@ // That would use pc_deps.trials when not nullptr, pcf_deps.trials when // pc_deps.trials is nullptr, but pcf_deps.trials is not, and default field // trials when both are nullptr. -TEST(EnvironmentTest, IgnoresProvidedNullptrUtility) { +TEST_F(EnvironmentTest, IgnoresProvidedNullptrUtility) { auto owned_field_trials = std::make_unique<FakeFieldTrials>(); std::unique_ptr<FieldTrialsView> null_field_trials = nullptr; FieldTrialsView& field_trials = *owned_field_trials; @@ -170,7 +176,7 @@ EXPECT_THAT(env.field_trials(), Ref(field_trials)); } -TEST(EnvironmentTest, KeepsUtilityAliveWhileEnvironmentIsAlive) { +TEST_F(EnvironmentTest, KeepsUtilityAliveWhileEnvironmentIsAlive) { bool utility_destroyed = false; auto field_trials = std::make_unique<FakeFieldTrials>( /*on_destroyed=*/[&] { utility_destroyed = true; }); @@ -183,7 +189,7 @@ EXPECT_TRUE(utility_destroyed); } -TEST(EnvironmentTest, KeepsUtilityAliveWhileCopyOfEnvironmentIsAlive) { +TEST_F(EnvironmentTest, KeepsUtilityAliveWhileCopyOfEnvironmentIsAlive) { bool utility_destroyed = false; auto field_trials = std::make_unique<FakeFieldTrials>( /*on_destroyed=*/[&] { utility_destroyed = true; }); @@ -198,7 +204,7 @@ EXPECT_TRUE(utility_destroyed); } -TEST(EnvironmentTest, FactoryCanBeReusedToCreateDifferentEnvironments) { +TEST_F(EnvironmentTest, FactoryCanBeReusedToCreateDifferentEnvironments) { auto owned_task_queue_factory = std::make_unique<FakeTaskQueueFactory>(); auto owned_field_trials1 = std::make_unique<FakeFieldTrials>(); auto owned_field_trials2 = std::make_unique<FakeFieldTrials>(); @@ -222,7 +228,7 @@ EXPECT_THAT(env2.field_trials(), Ref(field_trials2)); } -TEST(EnvironmentTest, FactoryCanCreateNewEnvironmentFromExistingOne) { +TEST_F(EnvironmentTest, FactoryCanCreateNewEnvironmentFromExistingOne) { Environment env1 = CreateEnvironment(std::make_unique<FakeTaskQueueFactory>()); EnvironmentFactory factory(env1); @@ -239,7 +245,8 @@ EXPECT_THAT(env2.field_trials(), Not(Ref(env1.field_trials()))); } -TEST(EnvironmentTest, KeepsOwnershipsWhenCreateNewEnvironmentFromExistingOne) { +TEST_F(EnvironmentTest, + KeepsOwnershipsWhenCreateNewEnvironmentFromExistingOne) { bool utility1_destroyed = false; bool utility2_destroyed = false; std::optional<Environment> env1 = @@ -267,7 +274,7 @@ EXPECT_TRUE(utility2_destroyed); } -TEST(EnvironmentTest, DestroysUtilitiesInReverseProvidedOrder) { +TEST_F(EnvironmentTest, DestroysUtilitiesInReverseProvidedOrder) { std::vector<std::string> destroyed; auto field_trials = std::make_unique<FakeFieldTrials>( /*on_destroyed=*/[&] { destroyed.push_back("field_trials"); }); @@ -282,7 +289,7 @@ EXPECT_THAT(destroyed, ElementsAre("task_queue_factory", "field_trials")); } -TEST(EnvironmentTest, CreateTestEnvironmentWorksWhenForced) { +TEST_F(EnvironmentTest, CreateTestEnvironmentWorksWhenForced) { struct ScopedForce { ScopedForce() { old_value = IsForceTestEnvironmentEnabled(); @@ -308,8 +315,7 @@ SetForceTestEnvironment(true); CreateEnvironment(); }, - "Production Environment creation is not allowed in tests. Use " - "CreateTestEnvironment."); + "is not allowed in tests."); } #endif
diff --git a/api/field_trials.cc b/api/field_trials.cc index c243598..0f86319 100644 --- a/api/field_trials.cc +++ b/api/field_trials.cc
@@ -70,7 +70,8 @@ return absl::WrapUnique(new FieldTrials(std::move(key_value_map))); } -FieldTrials::FieldTrials(absl::string_view s) { +FieldTrials::FieldTrials(absl::string_view s, bool is_test) + : is_test_(is_test) { RTC_CHECK(!IsForceTestEnvironmentEnabled() || IsTestEnvironmentCheckBypassed()) << "FieldTrials constructor is not allowed in tests. Use " @@ -79,11 +80,12 @@ } FieldTrials::FieldTrials(const FieldTrials& other) - : FieldTrialsRegistry(other) { + : FieldTrialsRegistry(other), is_test_(other.is_test_) { key_value_map_ = other.key_value_map_; } -FieldTrials::FieldTrials(FieldTrials&& other) : FieldTrialsRegistry(other) { +FieldTrials::FieldTrials(FieldTrials&& other) + : FieldTrialsRegistry(other), is_test_(other.is_test_) { key_value_map_ = std::move(other.key_value_map_); } @@ -92,6 +94,7 @@ AssertGetValueNotCalled(); FieldTrialsRegistry::operator=(other); key_value_map_ = other.key_value_map_; + is_test_ = other.is_test_; } return *this; } @@ -101,6 +104,7 @@ AssertGetValueNotCalled(); FieldTrialsRegistry::operator=(other); key_value_map_ = std::move(other.key_value_map_); + is_test_ = other.is_test_; } return *this; }
diff --git a/api/field_trials.h b/api/field_trials.h index 696aeee..0818572 100644 --- a/api/field_trials.h +++ b/api/field_trials.h
@@ -50,7 +50,10 @@ // Creates field trials from a string. // It is an error to call the constructor with an invalid field trial string. - explicit FieldTrials(absl::string_view s); + explicit FieldTrials(absl::string_view s) : FieldTrials(s, false) {} + // Setting is_test to true is only intended to be used by + // CreateTestFieldTrials. + FieldTrials(absl::string_view s, bool is_test); FieldTrials(const FieldTrials&); FieldTrials(FieldTrials&&); @@ -87,6 +90,8 @@ #endif } + bool IsTest() const override { return is_test_; } + private: explicit FieldTrials(flat_map<std::string, std::string> key_value_map) : key_value_map_(std::move(key_value_map)) {} @@ -102,6 +107,9 @@ #endif flat_map<std::string, std::string> key_value_map_; + // True if these field trials were created with CreateTestFieldTrials, + // which include trials set on the command line. + bool is_test_ = false; }; template <typename Sink> @@ -114,6 +122,9 @@ // Stringification is intended only for human readable logs, and is not // intended for reusing as `FieldTrials` construction parameter. sink.Append("//"); + if (self.is_test_) { + sink.Append("Test"); + } } }
diff --git a/api/field_trials_unittest.cc b/api/field_trials_unittest.cc index d86451d..03882ec 100644 --- a/api/field_trials_unittest.cc +++ b/api/field_trials_unittest.cc
@@ -28,8 +28,14 @@ using ::testing::IsNull; using ::testing::Not; using ::testing::NotNull; +using ::testing::Test; -TEST(FieldTrialsTest, EmptyStringHasNoEffect) { +class FieldTrialsTest : public Test { + private: + AutoBypassTestEnvironmentCheck bypass_; +}; + +TEST_F(FieldTrialsTest, EmptyStringHasNoEffect) { FieldTrials f(""); f.RegisterKeysForTesting({"MyCoolTrial"}); @@ -37,7 +43,7 @@ EXPECT_FALSE(f.IsDisabled("MyCoolTrial")); } -TEST(FieldTrialsTest, EnabledDisabledMustBeFirstInValue) { +TEST_F(FieldTrialsTest, EnabledDisabledMustBeFirstInValue) { FieldTrials f( "MyCoolTrial/EnabledFoo/" "MyUncoolTrial/DisabledBar/" @@ -49,7 +55,7 @@ EXPECT_FALSE(f.IsEnabled("AnotherTrial")); } -TEST(FieldTrialsTest, FieldTrialsSupportSimultaneousInstances) { +TEST_F(FieldTrialsTest, FieldTrialsSupportSimultaneousInstances) { FieldTrials f1("SomeString/Enabled/"); FieldTrials f2("SomeOtherString/Enabled/"); f1.RegisterKeysForTesting({"SomeString", "SomeOtherString"}); @@ -62,7 +68,7 @@ EXPECT_TRUE(f2.IsEnabled("SomeOtherString")); } -TEST(FieldTrialsTest, CreateAcceptsValidInputs) { +TEST_F(FieldTrialsTest, CreateAcceptsValidInputs) { EXPECT_THAT(FieldTrials::Create(""), NotNull()); EXPECT_THAT(FieldTrials::Create("Audio/Enabled/"), NotNull()); EXPECT_THAT(FieldTrials::Create("Audio/Enabled/Video/Disabled/"), NotNull()); @@ -73,7 +79,7 @@ NotNull()); } -TEST(FieldTrialsTest, CreateRejectsBadInputs) { +TEST_F(FieldTrialsTest, CreateRejectsBadInputs) { // Bad delimiters EXPECT_THAT(FieldTrials::Create("Audio/EnabledVideo/Disabled/"), IsNull()); EXPECT_THAT(FieldTrials::Create("Audio/Enabled//Video/Disabled/"), IsNull()); @@ -97,14 +103,14 @@ IsNull()); } -TEST(FieldTrialsTest, StringfiyMentionsKeysAndValues) { +TEST_F(FieldTrialsTest, StringfiyMentionsKeysAndValues) { // Exact format of the stringification is undefined. EXPECT_THAT(absl::StrCat(FieldTrials("Audio/Enabled/Video/Value/")), AllOf(HasSubstr("Audio"), HasSubstr("Enabled"), HasSubstr("Video"), HasSubstr("Value"))); } -TEST(FieldTrialsTest, MergeCombinesFieldTrials) { +TEST_F(FieldTrialsTest, MergeCombinesFieldTrials) { FieldTrials f("Video/Value1/"); FieldTrials other("Audio/Value2/"); @@ -115,7 +121,7 @@ EXPECT_EQ(f.Lookup("Audio"), "Value2"); } -TEST(FieldTrialsTest, MergeGivesPrecedenceToOther) { +TEST_F(FieldTrialsTest, MergeGivesPrecedenceToOther) { FieldTrials f("Audio/Disabled/Video/Enabled/"); FieldTrials other("Audio/Enabled/"); @@ -125,7 +131,7 @@ EXPECT_EQ(f.Lookup("Audio"), "Enabled"); } -TEST(FieldTrialsTest, MergeDoesntChangeTrialAbsentInOther) { +TEST_F(FieldTrialsTest, MergeDoesntChangeTrialAbsentInOther) { FieldTrials f("Audio/Enabled/Video/Enabled/"); FieldTrials other("Audio/Enabled/"); @@ -135,7 +141,7 @@ EXPECT_EQ(f.Lookup("Video"), "Enabled"); } -TEST(FieldTrialsTest, SetUpdatesTrial) { +TEST_F(FieldTrialsTest, SetUpdatesTrial) { FieldTrials f("Audio/Enabled/Video/Enabled/"); f.Set("Audio", "Disabled"); @@ -144,7 +150,7 @@ EXPECT_EQ(f.Lookup("Audio"), "Disabled"); } -TEST(FieldTrialsTest, SettingEmptyValueRemovesFieldTrial) { +TEST_F(FieldTrialsTest, SettingEmptyValueRemovesFieldTrial) { FieldTrials f("Audio/Enabled/Video/Enabled/"); f.Set("Audio", ""); @@ -160,7 +166,7 @@ EXPECT_EQ(f2.Lookup("Audio"), "Disabled"); } -TEST(FieldTrialsTest, CreateCopy) { +TEST_F(FieldTrialsTest, CreateCopy) { auto f = std::make_unique<FieldTrials>("Audio/Enabled/"); f->RegisterKeysForTesting({"Audio"}); @@ -170,7 +176,7 @@ EXPECT_EQ(copy->Lookup("Audio"), "Enabled"); } -TEST(FieldTrials, Immutable) { +TEST_F(FieldTrialsTest, Immutable) { FieldTrials f("Audio/Enabled/"); f.RegisterKeysForTesting({"Audio"});
diff --git a/api/field_trials_view.h b/api/field_trials_view.h index fef2d75..6c03553 100644 --- a/api/field_trials_view.h +++ b/api/field_trials_view.h
@@ -44,6 +44,10 @@ return absl::StartsWith(Lookup(key), "Disabled"); } + // Returns true if this view is of a registry that is suitable for use + // in a test environment. + virtual bool IsTest() const { return false; } + // Create a copy of this view. // // This method can't be pure virtual, due to downstream projects
diff --git a/api/video_codecs/test/BUILD.gn b/api/video_codecs/test/BUILD.gn index 389a38d..94326b2 100644 --- a/api/video_codecs/test/BUILD.gn +++ b/api/video_codecs/test/BUILD.gn
@@ -74,6 +74,7 @@ "..:video_encoder_factory_template_libvpx_vp9_adapter", "..:video_encoder_factory_template_open_h264_adapter", "../..:mock_video_encoder", + "../../../test:create_test_environment", "../../../test:test_support", "../../environment", "../../environment:environment_factory", @@ -93,6 +94,7 @@ "..:video_decoder_factory_template_libvpx_vp9_adapter", "..:video_decoder_factory_template_open_h264_adapter", "../..:mock_video_decoder", + "../../../test:create_test_environment", "../../../test:test_support", "../../environment", "../../environment:environment_factory",
diff --git a/api/video_codecs/test/video_decoder_factory_template_tests.cc b/api/video_codecs/test/video_decoder_factory_template_tests.cc index 8cae8be..8f427a7 100644 --- a/api/video_codecs/test/video_decoder_factory_template_tests.cc +++ b/api/video_codecs/test/video_decoder_factory_template_tests.cc
@@ -12,7 +12,6 @@ #include <vector> #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" #include "api/test/mock_video_decoder.h" #include "api/video_codecs/sdp_video_format.h" #include "api/video_codecs/video_decoder.h" @@ -21,6 +20,7 @@ #include "api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h" #include "api/video_codecs/video_decoder_factory_template_libvpx_vp9_adapter.h" #include "api/video_codecs/video_decoder_factory_template_open_h264_adapter.h" +#include "test/create_test_environment.h" #include "test/gmock.h" #include "test/gtest.h" @@ -65,7 +65,7 @@ }; TEST(VideoDecoderFactoryTemplate, OneTemplateAdapterCreateDecoder) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<FooDecoderTemplateAdapter> factory; EXPECT_THAT(factory.GetSupportedFormats(), UnorderedElementsAre(kFooSdp)); EXPECT_THAT(factory.Create(env, kFooSdp), NotNull()); @@ -80,7 +80,7 @@ } TEST(VideoDecoderFactoryTemplate, TwoTemplateAdaptersCreateDecoders) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<FooDecoderTemplateAdapter, BarDecoderTemplateAdapter> factory; @@ -94,7 +94,7 @@ } TEST(VideoDecoderFactoryTemplate, LibvpxVp8) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<LibvpxVp8DecoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); ASSERT_THAT(formats, @@ -103,7 +103,7 @@ } TEST(VideoDecoderFactoryTemplate, LibvpxVp9) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<LibvpxVp9DecoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats, Not(IsEmpty())); @@ -115,7 +115,7 @@ // target remove this #ifdef. #if defined(WEBRTC_USE_H264) TEST(VideoDecoderFactoryTemplate, OpenH264) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<OpenH264DecoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats, Not(IsEmpty())); @@ -125,7 +125,7 @@ #endif // defined(WEBRTC_USE_H264) TEST(VideoDecoderFactoryTemplate, Dav1d) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoDecoderFactoryTemplate<Dav1dDecoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats, Not(IsEmpty()));
diff --git a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc index e786291..bcbea0e 100644 --- a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc +++ b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
@@ -15,9 +15,8 @@ #include <optional> #include <string> +#include "absl/strings/string_view.h" #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" -#include "api/field_trials.h" #include "api/video/encoded_image.h" #include "api/video/video_frame.h" #include "api/video/video_frame_type.h" @@ -25,7 +24,7 @@ #include "modules/video_coding/codecs/vp8/include/vp8.h" #include "modules/video_coding/include/video_error_codes.h" #include "rtc_base/checks.h" -#include "test/create_test_field_trials.h" +#include "test/create_test_environment.h" #include "test/gtest.h" namespace webrtc { @@ -35,9 +34,8 @@ VideoDecoderSoftwareFallbackWrapperTest() : VideoDecoderSoftwareFallbackWrapperTest("") {} explicit VideoDecoderSoftwareFallbackWrapperTest( - const std::string& field_trials) - : field_trials_(CreateTestFieldTrials(field_trials)), - env_(CreateEnvironment(&field_trials_)), + absl::string_view field_trials) + : env_(CreateTestEnvironment({.field_trials = field_trials})), fake_decoder_(new CountingFakeDecoder()), fallback_wrapper_(CreateVideoDecoderSoftwareFallbackWrapper( env_, @@ -78,7 +76,6 @@ int release_count_ = 0; int reset_count_ = 0; }; - FieldTrials field_trials_; const Environment env_; // `fake_decoder_` is owned and released by `fallback_wrapper_`. CountingFakeDecoder* fake_decoder_;
diff --git a/api/video_codecs/test/video_encoder_factory_template_tests.cc b/api/video_codecs/test/video_encoder_factory_template_tests.cc index 733ef30..55bfa94 100644 --- a/api/video_codecs/test/video_encoder_factory_template_tests.cc +++ b/api/video_codecs/test/video_encoder_factory_template_tests.cc
@@ -13,7 +13,6 @@ #include <vector> #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" #include "api/test/mock_video_encoder.h" #include "api/video_codecs/scalability_mode.h" #include "api/video_codecs/sdp_video_format.h" @@ -24,6 +23,7 @@ #include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h" #include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h" #include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h" +#include "test/create_test_environment.h" #include "test/gmock.h" #include "test/gtest.h" @@ -81,7 +81,7 @@ }; TEST(VideoEncoderFactoryTemplate, OneTemplateAdapterCreateEncoder) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<FooEncoderTemplateAdapter> factory; EXPECT_THAT(factory.GetSupportedFormats(), UnorderedElementsAre(kFooSdp)); EXPECT_THAT(factory.Create(env, kFooSdp), NotNull()); @@ -109,7 +109,7 @@ } TEST(VideoEncoderFactoryTemplate, TwoTemplateAdaptersCreateEncoders) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<FooEncoderTemplateAdapter, BarEncoderTemplateAdapter> factory; @@ -144,7 +144,7 @@ } TEST(VideoEncoderFactoryTemplate, LibvpxVp8) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<LibvpxVp8EncoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats.size(), 1); @@ -155,7 +155,7 @@ } TEST(VideoEncoderFactoryTemplate, LibvpxVp9) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<LibvpxVp9EncoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats, Not(IsEmpty())); @@ -169,7 +169,7 @@ // target remove this #ifdef. #if defined(WEBRTC_USE_H264) TEST(VideoEncoderFactoryTemplate, OpenH264) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<OpenH264EncoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats, Not(IsEmpty())); @@ -181,7 +181,7 @@ #endif // defined(WEBRTC_USE_H264) TEST(VideoEncoderFactoryTemplate, LibaomAv1) { - const Environment env = CreateEnvironment(); + const Environment env = CreateTestEnvironment(); VideoEncoderFactoryTemplate<LibaomAv1EncoderTemplateAdapter> factory; auto formats = factory.GetSupportedFormats(); EXPECT_THAT(formats.size(), 1);
diff --git a/rtc_base/experiments/BUILD.gn b/rtc_base/experiments/BUILD.gn index 8b9eb62..dd59219 100644 --- a/rtc_base/experiments/BUILD.gn +++ b/rtc_base/experiments/BUILD.gn
@@ -236,6 +236,7 @@ "../../api/units:time_delta", "../../api/video:video_frame", "../../api/video_codecs:video_codecs_api", + "../../test:create_test_field_trials", "../../test:test_support", "//third_party/abseil-cpp/absl/strings:string_view", ]
diff --git a/rtc_base/experiments/balanced_degradation_settings_unittest.cc b/rtc_base/experiments/balanced_degradation_settings_unittest.cc index 9c16174..dbf3778 100644 --- a/rtc_base/experiments/balanced_degradation_settings_unittest.cc +++ b/rtc_base/experiments/balanced_degradation_settings_unittest.cc
@@ -15,6 +15,7 @@ #include "api/field_trials.h" #include "api/video/video_codec_type.h" +#include "test/create_test_field_trials.h" #include "test/gmock.h" #include "test/gtest.h" @@ -60,7 +61,7 @@ } // namespace TEST(BalancedDegradationSettings, GetsDefaultConfigIfNoList) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); BalancedDegradationSettings settings(field_trials); VerifyIsDefault(settings.GetConfigs()); EXPECT_TRUE(settings.CanAdaptUp(kVideoCodecVP8, 1, /*bitrate_bps*/ 1)); @@ -75,7 +76,7 @@ } TEST(BalancedDegradationSettings, GetsConfig) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:11|22|33,fps:5|15|25,other:4|5|6/"); BalancedDegradationSettings settings(field_trials); @@ -117,7 +118,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigForZeroFpsValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:0|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -125,7 +126,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfPixelsDecreases) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|999|3000,fps:5|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -133,7 +134,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfFramerateDecreases) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|4|25/"); BalancedDegradationSettings settings(field_trials); @@ -141,7 +142,7 @@ } TEST(BalancedDegradationSettings, GetsConfigWithSpecificFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_fps:7|8|9,vp9_fps:9|10|11," "h264_fps:11|12|13,av1_fps:1|2|3,generic_fps:13|14|15/"); @@ -184,7 +185,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigForZeroVp8FpsValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:7|15|25,vp8_fps:0|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -192,7 +193,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigForInvalidFpsValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:7|15|25,vp8_fps:10|15|2000/"); BalancedDegradationSettings settings(field_trials); @@ -200,7 +201,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfVp8FramerateDecreases) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:4|5|25,vp8_fps:5|4|25/"); BalancedDegradationSettings settings(field_trials); @@ -208,7 +209,7 @@ } TEST(BalancedDegradationSettings, GetsMinFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -223,7 +224,7 @@ } TEST(BalancedDegradationSettings, GetsVp8MinFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_fps:7|10|12/"); BalancedDegradationSettings settings(field_trials); @@ -238,7 +239,7 @@ } TEST(BalancedDegradationSettings, GetsMaxFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -251,7 +252,7 @@ } TEST(BalancedDegradationSettings, GetsVp8MaxFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_fps:7|10|12/"); BalancedDegradationSettings settings(field_trials); @@ -264,7 +265,7 @@ } TEST(BalancedDegradationSettings, GetsVp9Fps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp9_fps:7|10|12/"); BalancedDegradationSettings settings(field_trials); @@ -273,7 +274,7 @@ } TEST(BalancedDegradationSettings, GetsH264Fps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,h264_fps:8|11|13/"); BalancedDegradationSettings settings(field_trials); @@ -282,7 +283,7 @@ } TEST(BalancedDegradationSettings, GetsGenericFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,generic_fps:9|12|14/"); BalancedDegradationSettings settings(field_trials); @@ -292,7 +293,7 @@ } TEST(BalancedDegradationSettings, GetsUnlimitedForMaxValidFps) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|100,vp8_fps:30|100|100/"); const int kUnlimitedFps = std::numeric_limits<int>::max(); @@ -304,7 +305,7 @@ } TEST(BalancedDegradationSettings, GetsConfigWithBitrate) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:11|22|33,fps:5|15|25,kbps:44|88|99,kbps_res:55|111|222," "vp8_kbps:11|12|13,vp8_kbps_res:14|15|16," @@ -351,7 +352,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfBitrateDecreases) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:11|22|33,fps:5|15|25,kbps:44|43|99/"); BalancedDegradationSettings settings(field_trials); @@ -360,7 +361,7 @@ TEST(BalancedDegradationSettings, GetsDefaultConfigIfBitrateDecreasesWithUnsetValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:11|22|33,fps:5|15|25,kbps:44|0|43/"); BalancedDegradationSettings settings(field_trials); @@ -369,7 +370,7 @@ TEST(BalancedDegradationSettings, CanAdaptUp) { VideoCodecType vp8 = kVideoCodecVP8; - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000|4000,fps:5|15|25|30,kbps:0|80|0|90," "vp9_kbps:40|50|60|70/"); @@ -384,7 +385,7 @@ } TEST(BalancedDegradationSettings, CanAdaptUpWithCodecType) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000|4000,fps:5|15|25|30,vp8_kbps:0|30|40|50," "vp9_kbps:0|60|70|80,h264_kbps:0|55|65|75,av1_kbps:0|77|88|99," @@ -404,7 +405,7 @@ TEST(BalancedDegradationSettings, CanAdaptUpResolution) { VideoCodecType vp8 = kVideoCodecVP8; - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000|4000,fps:5|15|25|30,kbps_res:0|80|0|90," "vp9_kbps_res:40|50|60|70/"); @@ -419,7 +420,7 @@ } TEST(BalancedDegradationSettings, CanAdaptUpResolutionWithCodecType) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000|4000,fps:5|15|25|30,vp8_kbps_res:0|30|40|50," "vp9_kbps_res:0|60|70|80,h264_kbps_res:0|55|65|75," @@ -438,7 +439,7 @@ } TEST(BalancedDegradationSettings, GetsFpsDiff) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,fps_diff:0|-2|3/"); BalancedDegradationSettings settings(field_trials); @@ -452,7 +453,7 @@ } TEST(BalancedDegradationSettings, GetsNoFpsDiffIfValueBelowMinSetting) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,fps_diff:-100|-99|-101/"); // Min valid fps_diff setting: -99. @@ -463,7 +464,7 @@ } TEST(BalancedDegradationSettings, QpThresholdsNotSetByDefault) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25/"); BalancedDegradationSettings settings(field_trials); @@ -475,7 +476,7 @@ } TEST(BalancedDegradationSettings, GetsConfigWithQpThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_qp_low:89|90|88," "vp8_qp_high:90|91|92,vp9_qp_low:27|28|29,vp9_qp_high:120|130|140," @@ -520,7 +521,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfOnlyHasLowThreshold) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_qp_low:89|90|88/"); BalancedDegradationSettings settings(field_trials); @@ -528,7 +529,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfOnlyHasHighThreshold) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25,vp8_qp_high:90|91|92/"); BalancedDegradationSettings settings(field_trials); @@ -536,7 +537,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfLowEqualsHigh) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "vp8_qp_low:89|90|88,vp8_qp_high:90|91|88/"); @@ -545,7 +546,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigIfLowGreaterThanHigh) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "vp8_qp_low:89|90|88,vp8_qp_high:90|91|87/"); @@ -554,7 +555,7 @@ } TEST(BalancedDegradationSettings, GetsDefaultConfigForZeroQpValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "vp8_qp_low:89|0|88,vp8_qp_high:90|91|92/"); @@ -563,7 +564,7 @@ } TEST(BalancedDegradationSettings, GetsVp8QpThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "vp8_qp_low:89|90|88,vp8_qp_high:90|91|92/"); @@ -579,7 +580,7 @@ } TEST(BalancedDegradationSettings, GetsVp9QpThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "vp9_qp_low:55|56|57,vp9_qp_high:155|156|157/"); @@ -591,7 +592,7 @@ } TEST(BalancedDegradationSettings, GetsH264QpThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "h264_qp_low:21|22|23,h264_qp_high:41|43|42/"); @@ -603,7 +604,7 @@ } TEST(BalancedDegradationSettings, GetsGenericQpThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-BalancedDegradationSettings/" "pixels:1000|2000|3000,fps:5|15|25," "generic_qp_low:2|3|4,generic_qp_high:22|23|24/");
diff --git a/rtc_base/experiments/corruption_detection_frame_selector_settings_unittest.cc b/rtc_base/experiments/corruption_detection_frame_selector_settings_unittest.cc index 75e6752..5417893 100644 --- a/rtc_base/experiments/corruption_detection_frame_selector_settings_unittest.cc +++ b/rtc_base/experiments/corruption_detection_frame_selector_settings_unittest.cc
@@ -12,19 +12,21 @@ #include "api/field_trials.h" #include "api/units/time_delta.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { namespace { TEST(CorruptionDetectionFrameSelectorSettingsTest, DisabledByDefault) { - FieldTrials trials(""); + FieldTrials trials = CreateTestFieldTrials(""); CorruptionDetectionFrameSelectorSettings settings(trials); EXPECT_FALSE(settings.is_enabled()); } TEST(CorruptionDetectionFrameSelectorSettingsTest, EnabledWithDefaults) { - FieldTrials trials("WebRTC-CorruptionDetectionFrameSelector/enabled:true/"); + FieldTrials trials = CreateTestFieldTrials( + "WebRTC-CorruptionDetectionFrameSelector/enabled:true/"); CorruptionDetectionFrameSelectorSettings settings(trials); EXPECT_TRUE(settings.is_enabled()); EXPECT_EQ(settings.low_overhead_lower_bound(), TimeDelta::Millis(1)); @@ -35,7 +37,7 @@ } TEST(CorruptionDetectionFrameSelectorSettingsTest, ParsesValues) { - FieldTrials trials( + FieldTrials trials = CreateTestFieldTrials( "WebRTC-CorruptionDetectionFrameSelector/enabled:true," "low_overhead_lower_bound:10ms,low_overhead_upper_bound:100ms," "high_overhead_lower_bound:20ms,high_overhead_upper_bound:200ms/"); @@ -48,7 +50,7 @@ } TEST(CorruptionDetectionFrameSelectorSettingsTest, ValidationLowOverhead) { - FieldTrials trials( + FieldTrials trials = CreateTestFieldTrials( "WebRTC-CorruptionDetectionFrameSelector/enabled:true," "low_overhead_lower_bound:100ms,low_overhead_upper_bound:10ms/"); CorruptionDetectionFrameSelectorSettings settings(trials); @@ -56,7 +58,7 @@ } TEST(CorruptionDetectionFrameSelectorSettingsTest, ValidationHighOverhead) { - FieldTrials trials( + FieldTrials trials = CreateTestFieldTrials( "WebRTC-CorruptionDetectionFrameSelector/enabled:true," "high_overhead_lower_bound:100ms,high_overhead_upper_bound:10ms/"); CorruptionDetectionFrameSelectorSettings settings(trials); @@ -65,7 +67,7 @@ TEST(CorruptionDetectionFrameSelectorSettingsTest, ParsesAsynchronousEvaluation) { - FieldTrials trials( + FieldTrials trials = CreateTestFieldTrials( "WebRTC-CorruptionDetectionFrameSelector/asynchronous_evaluation:true/"); CorruptionDetectionFrameSelectorSettings settings(trials); EXPECT_TRUE(settings.use_asynchronous_evaluation());
diff --git a/rtc_base/experiments/encoder_info_settings_unittest.cc b/rtc_base/experiments/encoder_info_settings_unittest.cc index 2fa3a98..ecacfef 100644 --- a/rtc_base/experiments/encoder_info_settings_unittest.cc +++ b/rtc_base/experiments/encoder_info_settings_unittest.cc
@@ -15,6 +15,7 @@ #include "api/field_trials.h" #include "api/video_codecs/video_encoder.h" +#include "test/create_test_field_trials.h" #include "test/gmock.h" #include "test/gtest.h" @@ -22,7 +23,7 @@ TEST(SimulcastEncoderAdapterSettingsTest, NoValuesWithoutFieldTrial) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); SimulcastEncoderAdapterEncoderInfoSettings settings(field_trials); EXPECT_EQ(std::nullopt, settings.requested_resolution_alignment()); @@ -31,7 +32,7 @@ } TEST(SimulcastEncoderAdapterSettingsTest, NoValueForInvalidAlignment) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride/" "requested_resolution_alignment:0/"); @@ -40,7 +41,7 @@ } TEST(SimulcastEncoderAdapterSettingsTest, GetResolutionAlignment) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride/" "requested_resolution_alignment:2/"); @@ -51,7 +52,7 @@ } TEST(SimulcastEncoderAdapterSettingsTest, GetApplyAlignment) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride/" "requested_resolution_alignment:3," "apply_alignment_to_all_simulcast_layers/"); @@ -63,7 +64,7 @@ } TEST(SimulcastEncoderAdapterSettingsTest, GetResolutionBitrateLimits) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride/" "frame_size_pixels:123," "min_start_bitrate_bps:11000," @@ -79,7 +80,7 @@ } TEST(SimulcastEncoderAdapterSettingsTest, GetResolutionBitrateLimitsWithList) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride/" "frame_size_pixels:123|456|789," "min_start_bitrate_bps:11000|22000|33000," @@ -96,7 +97,7 @@ } TEST(EncoderSettingsTest, CommonSettingsUsedIfEncoderNameUnspecified) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-VP8-GetEncoderInfoOverride/requested_resolution_alignment:2/" "WebRTC-GetEncoderInfoOverride/requested_resolution_alignment:3/");
diff --git a/rtc_base/experiments/encoder_speed_experiment_unittest.cc b/rtc_base/experiments/encoder_speed_experiment_unittest.cc index ed0edb0..373e9df 100644 --- a/rtc_base/experiments/encoder_speed_experiment_unittest.cc +++ b/rtc_base/experiments/encoder_speed_experiment_unittest.cc
@@ -13,31 +13,34 @@ #include "api/field_trials.h" #include "api/video/video_codec_type.h" #include "api/video_codecs/video_codec.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { namespace { TEST(EncoderSpeedExperimentTest, EnabledByDefault) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EncoderSpeedExperiment config(field_trials); EXPECT_TRUE(config.IsDynamicSpeedEnabled()); } TEST(EncoderSpeedExperimentTest, DynamicSpeedEnabled) { - FieldTrials field_trials("WebRTC-EncoderSpeed/dynamic_speed:true/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-EncoderSpeed/dynamic_speed:true/"); EncoderSpeedExperiment config(field_trials); EXPECT_TRUE(config.IsDynamicSpeedEnabled()); } TEST(EncoderSpeedExperimentTest, DynamicSpeedExplicitlyDisabled) { - FieldTrials field_trials("WebRTC-EncoderSpeed/dynamic_speed:false/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-EncoderSpeed/dynamic_speed:false/"); EncoderSpeedExperiment config(field_trials); EXPECT_FALSE(config.IsDynamicSpeedEnabled()); } TEST(EncoderSpeedExperimentTest, DefaultComplexity) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EncoderSpeedExperiment config(field_trials); // New defaults for AV1. @@ -57,7 +60,7 @@ } TEST(EncoderSpeedExperimentTest, PerCodecComplexity) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-EncoderSpeed/" "dynamic_speed:true,av1_camera:high,av1_screenshare:low,vp8_camera:max/"); @@ -84,7 +87,7 @@ } TEST(EncoderSpeedExperimentTest, PerCodecComplexityDynamicSpeedDisabled) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-EncoderSpeed/" "dynamic_speed:false,av1_camera:high,av1_screenshare:low/"); @@ -99,7 +102,7 @@ } TEST(EncoderSpeedExperimentTest, InvalidCodecComplexityValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-EncoderSpeed/" "dynamic_speed:true,vp8_camera:invalid,vp8_screenshare:max/"); @@ -112,7 +115,8 @@ } TEST(EncoderSpeedExperimentTest, InvalidDynamicSpeedValue) { - FieldTrials field_trials("WebRTC-EncoderSpeed/dynamic_speed:invalid/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-EncoderSpeed/dynamic_speed:invalid/"); EncoderSpeedExperiment config(field_trials); EXPECT_TRUE(config.IsDynamicSpeedEnabled()); // Should default to true } @@ -120,7 +124,7 @@ TEST(EncoderSpeedExperimentTest, Vp9LowComplexityFallbackEnabled) { for (std::string trial : {"WebRTC-EncoderSpeed/dynamic_speed:true/", "WebRTC-EncoderSpeed/dynamic_speed:false/"}) { - FieldTrials field_trials(trial); + FieldTrials field_trials = CreateTestFieldTrials(trial); EncoderSpeedExperiment config(field_trials, /*use_low_complexity_for_vp9=*/true); @@ -145,7 +149,7 @@ "dynamic_speed:false,vp9_camera:high,vp9_screenshare:max/", "WebRTC-EncoderSpeed/" "dynamic_speed:true,vp9_camera:high,vp9_screenshare:max/"}) { - FieldTrials field_trials(trial); + FieldTrials field_trials = CreateTestFieldTrials(trial); EncoderSpeedExperiment config(field_trials, /*use_low_complexity_for_vp9=*/true); @@ -158,7 +162,8 @@ } TEST(EncoderSpeedExperimentTest, Vp9LowComplexityFallbackDisabled) { - FieldTrials field_trials("WebRTC-EncoderSpeed/dynamic_speed:true/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-EncoderSpeed/dynamic_speed:true/"); EncoderSpeedExperiment config(field_trials, /*use_low_complexity_for_vp9=*/false);
diff --git a/rtc_base/experiments/field_trial_parser_unittest.cc b/rtc_base/experiments/field_trial_parser_unittest.cc index 0fc4882..c188615 100644 --- a/rtc_base/experiments/field_trial_parser_unittest.cc +++ b/rtc_base/experiments/field_trial_parser_unittest.cc
@@ -15,6 +15,7 @@ #include "absl/strings/string_view.h" #include "api/field_trials.h" #include "api/field_trials_view.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { @@ -59,7 +60,7 @@ } TEST(FieldTrialParserTest, InitializesFromFieldTrial) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-OtherExperiment/Disabled/" "WebRTC-DummyExperiment/Enabled,f:-1.7,r:2,s:10,p:1,h:x7c/" "WebRTC-AnotherExperiment/Enabled,f:-3.1,otherstuff:beef/");
diff --git a/rtc_base/experiments/keyframe_interval_settings_unittest.cc b/rtc_base/experiments/keyframe_interval_settings_unittest.cc index 4bef351..150d655 100644 --- a/rtc_base/experiments/keyframe_interval_settings_unittest.cc +++ b/rtc_base/experiments/keyframe_interval_settings_unittest.cc
@@ -11,6 +11,7 @@ #include "rtc_base/experiments/keyframe_interval_settings.h" #include "api/field_trials.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { @@ -18,17 +19,17 @@ TEST(KeyframeIntervalSettingsTest, ParsesMinKeyframeSendIntervalMs) { - EXPECT_FALSE( - KeyframeIntervalSettings(FieldTrials("")).MinKeyframeSendIntervalMs()); + EXPECT_FALSE(KeyframeIntervalSettings(CreateTestFieldTrials("")) + .MinKeyframeSendIntervalMs()); - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-KeyframeInterval/min_keyframe_send_interval_ms:100/"); EXPECT_EQ(KeyframeIntervalSettings(field_trials).MinKeyframeSendIntervalMs(), 100); } TEST(KeyframeIntervalSettingsTest, DoesNotParseIncorrectValues) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-KeyframeInterval/min_keyframe_send_interval_ms:a/"); EXPECT_FALSE( KeyframeIntervalSettings(field_trials).MinKeyframeSendIntervalMs());
diff --git a/rtc_base/experiments/min_video_bitrate_experiment_unittest.cc b/rtc_base/experiments/min_video_bitrate_experiment_unittest.cc index d9cb770..a624f79 100644 --- a/rtc_base/experiments/min_video_bitrate_experiment_unittest.cc +++ b/rtc_base/experiments/min_video_bitrate_experiment_unittest.cc
@@ -15,6 +15,7 @@ #include "api/field_trials.h" #include "api/units/data_rate.h" #include "api/video/video_codec_type.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { @@ -22,7 +23,7 @@ TEST(GetExperimentalMinVideoBitrateTest, NulloptForAllCodecsIfFieldTrialUndefined) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EXPECT_EQ(GetExperimentalMinVideoBitrate(field_trials, kVideoCodecGeneric), std::nullopt); @@ -36,7 +37,8 @@ TEST(GetExperimentalMinVideoBitrateTest, NulloptForAllCodecsIfFieldTrialDisabled) { - FieldTrials field_trials("WebRTC-Video-MinVideoBitrate/Disabled,br:123kbps/"); + FieldTrials field_trials = CreateTestFieldTrials( + "WebRTC-Video-MinVideoBitrate/Disabled,br:123kbps/"); EXPECT_EQ(GetExperimentalMinVideoBitrate(field_trials, kVideoCodecGeneric), std::nullopt); @@ -49,7 +51,8 @@ } TEST(GetExperimentalMinVideoBitrateTest, BrForAllCodecsIfDefined) { - FieldTrials field_trials("WebRTC-Video-MinVideoBitrate/Enabled,br:123kbps/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-MinVideoBitrate/Enabled,br:123kbps/"); EXPECT_EQ(GetExperimentalMinVideoBitrate(field_trials, kVideoCodecGeneric), DataRate::KilobitsPerSec(123)); @@ -62,7 +65,7 @@ } TEST(GetExperimentalMinVideoBitrateTest, BrTrumpsSpecificCodecConfigs) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-MinVideoBitrate/" "Enabled,br:123kbps,vp8_br:100kbps,vp9_br:200kbps,h264_br:300kbps/"); @@ -78,7 +81,7 @@ TEST(GetExperimentalMinVideoBitrateTest, SpecificCodecConfigsIgnoredIfExpDisabled) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-MinVideoBitrate/" "Disabled,vp8_br:100kbps,vp9_br:200kbps,h264_br:300kbps/"); @@ -93,7 +96,7 @@ } TEST(GetExperimentalMinVideoBitrateTest, SpecificCodecConfigsUsedIfExpEnabled) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-MinVideoBitrate/" "Enabled,vp8_br:100kbps,vp9_br:200kbps,h264_br:300kbps/"); @@ -109,7 +112,7 @@ TEST(GetExperimentalMinVideoBitrateTest, Vp8BitrateValueTakenFromFallbackIfAvailable) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-MinVideoBitrate/" "Enabled,vp8_br:100kbps,vp9_br:200kbps,h264_br:300kbps/" "WebRTC-VP8-Forced-Fallback-Encoder-v2/" @@ -121,7 +124,7 @@ TEST(GetExperimentalMinVideoBitrateTest, NonVp8BitrateValuesTakenFromMinVideoBitrate) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-MinVideoBitrate/" "Enabled,vp8_br:100kbps,vp9_br:200kbps,h264_br:300kbps/" "WebRTC-VP8-Forced-Fallback-Encoder-v2/"
diff --git a/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc b/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc index 65f8fbd..f9d650f 100644 --- a/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc +++ b/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc
@@ -11,31 +11,35 @@ #include "rtc_base/experiments/normalize_simulcast_size_experiment.h" #include "api/field_trials.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { TEST(NormalizeSimulcastSizeExperimentTest, GetExponent) { - FieldTrials field_trials("WebRTC-NormalizeSimulcastResolution/Enabled-2/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-NormalizeSimulcastResolution/Enabled-2/"); EXPECT_EQ(2, NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); } TEST(NormalizeSimulcastSizeExperimentTest, GetExponentWithTwoParameters) { - FieldTrials field_trials("WebRTC-NormalizeSimulcastResolution/Enabled-3-4/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-NormalizeSimulcastResolution/Enabled-3-4/"); EXPECT_EQ(3, NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); } TEST(NormalizeSimulcastSizeExperimentTest, GetExponentFailsIfNotEnabled) { - FieldTrials field_trials("WebRTC-NormalizeSimulcastResolution/Disabled/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-NormalizeSimulcastResolution/Disabled/"); EXPECT_FALSE( NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); } TEST(NormalizeSimulcastSizeExperimentTest, GetExponentFailsForInvalidFieldTrial) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-NormalizeSimulcastResolution/Enabled-invalid/"); EXPECT_FALSE( NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); @@ -44,7 +48,8 @@ TEST(NormalizeSimulcastSizeExperimentTest, GetExponentFailsForNegativeOutOfBoundValue) { // Supported range: [0, 5]. - FieldTrials field_trials("WebRTC-NormalizeSimulcastResolution/Enabled--1/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-NormalizeSimulcastResolution/Enabled--1/"); EXPECT_FALSE( NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); } @@ -52,7 +57,8 @@ TEST(NormalizeSimulcastSizeExperimentTest, GetExponentFailsForPositiveOutOfBoundValue) { // Supported range: [0, 5]. - FieldTrials field_trials("WebRTC-NormalizeSimulcastResolution/Enabled-6/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-NormalizeSimulcastResolution/Enabled-6/"); EXPECT_FALSE( NormalizeSimulcastSizeExperiment::GetBase2Exponent(field_trials)); }
diff --git a/rtc_base/experiments/psnr_experiment_unittest.cc b/rtc_base/experiments/psnr_experiment_unittest.cc index 4e278b9..c84b962 100644 --- a/rtc_base/experiments/psnr_experiment_unittest.cc +++ b/rtc_base/experiments/psnr_experiment_unittest.cc
@@ -10,26 +10,28 @@ #include "api/field_trials.h" #include "api/units/time_delta.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { namespace { TEST(PsnrExperimentTest, DisabledByDefault) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); PsnrExperiment config(field_trials); EXPECT_FALSE(config.IsEnabled()); } TEST(PsnrExperimentTest, Enabled) { - FieldTrials field_trials("WebRTC-Video-CalculatePsnr/Enabled/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-CalculatePsnr/Enabled/"); PsnrExperiment config(field_trials); EXPECT_TRUE(config.IsEnabled()); EXPECT_EQ(config.SamplingInterval(), TimeDelta::Millis(1000)); } TEST(PsnrExperimentTest, EnabledWithCustomSampling) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-CalculatePsnr/Enabled,sampling_interval:2500ms/"); PsnrExperiment config(field_trials); EXPECT_TRUE(config.IsEnabled()); @@ -37,7 +39,7 @@ } TEST(PsnrExperimentTest, EnabledWithInvalidSampling) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-CalculatePsnr/Enabled,sampling_interval:0ms/"); PsnrExperiment config(field_trials); EXPECT_TRUE(config.IsEnabled()); @@ -45,14 +47,14 @@ } TEST(PsnrExperimentTest, DisabledWithParams) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-CalculatePsnr/Disabled,sampling_interval:500ms/"); PsnrExperiment config(field_trials); EXPECT_FALSE(config.IsEnabled()); } TEST(PsnrExperimentTest, EnabledWithNegativeSampling) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-CalculatePsnr/Enabled,sampling_interval:-100ms/"); PsnrExperiment config(field_trials); EXPECT_TRUE(config.IsEnabled()); @@ -60,7 +62,8 @@ } TEST(PsnrExperimentTest, ExplicitlyDisabled) { - FieldTrials field_trials("WebRTC-Video-CalculatePsnr/Disabled/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-CalculatePsnr/Disabled/"); PsnrExperiment config(field_trials); EXPECT_FALSE(config.IsEnabled()); }
diff --git a/rtc_base/experiments/quality_scaler_settings_unittest.cc b/rtc_base/experiments/quality_scaler_settings_unittest.cc index 3963308..3aa8ca1 100644 --- a/rtc_base/experiments/quality_scaler_settings_unittest.cc +++ b/rtc_base/experiments/quality_scaler_settings_unittest.cc
@@ -11,13 +11,14 @@ #include "rtc_base/experiments/quality_scaler_settings.h" #include "api/field_trials.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { namespace { TEST(QualityScalerSettingsTest, ValuesNotSetByDefault) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); const auto settings = QualityScalerSettings(field_trials); EXPECT_FALSE(settings.MinFrames()); EXPECT_FALSE(settings.InitialScaleFactor()); @@ -27,38 +28,38 @@ } TEST(QualityScalerSettingsTest, ParseMinFrames) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/min_frames:100/"); EXPECT_EQ(100, QualityScalerSettings(field_trials).MinFrames()); } TEST(QualityScalerSettingsTest, ParseInitialScaleFactor) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/initial_scale_factor:1.5/"); EXPECT_EQ(1.5, QualityScalerSettings(field_trials).InitialScaleFactor()); } TEST(QualityScalerSettingsTest, ParseScaleFactor) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/scale_factor:1.1/"); EXPECT_EQ(1.1, QualityScalerSettings(field_trials).ScaleFactor()); } TEST(QualityScalerSettingsTest, ParseInitialBitrateInterval) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/initial_bitrate_interval_ms:1000/"); EXPECT_EQ(1000, QualityScalerSettings(field_trials).InitialBitrateIntervalMs()); } TEST(QualityScalerSettingsTest, ParseInitialBitrateFactor) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/initial_bitrate_factor:0.75/"); EXPECT_EQ(0.75, QualityScalerSettings(field_trials).InitialBitrateFactor()); } TEST(QualityScalerSettingsTest, ParseAll) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/" "min_frames:100,initial_scale_factor:1.5,scale_factor:0.9," "initial_bitrate_interval_ms:5500,initial_bitrate_factor:0.7/"); @@ -71,7 +72,7 @@ } TEST(QualityScalerSettingsTest, DoesNotParseIncorrectValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/" "min_frames:a,initial_scale_factor:b,scale_factor:c," "initial_bitrate_interval_ms:d,initial_bitrate_factor:e/"); @@ -84,7 +85,7 @@ } TEST(QualityScalerSettingsTest, DoesNotReturnTooSmallValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScalerSettings/" "min_frames:0,initial_scale_factor:0.0,scale_factor:0.0," "initial_bitrate_interval_ms:-1,initial_bitrate_factor:0.0/");
diff --git a/rtc_base/experiments/quality_scaling_experiment_unittest.cc b/rtc_base/experiments/quality_scaling_experiment_unittest.cc index acd7d00..0c7ee9f 100644 --- a/rtc_base/experiments/quality_scaling_experiment_unittest.cc +++ b/rtc_base/experiments/quality_scaling_experiment_unittest.cc
@@ -12,6 +12,7 @@ #include "api/field_trials.h" #include "api/video/video_codec_type.h" +#include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { @@ -42,18 +43,19 @@ #if !defined(WEBRTC_IOS) // TODO(bugs.webrtc.org/12401): investigate why QualityScaler kicks in on iOS. TEST(QualityScalingExperimentTest, DefaultEnabledWithoutFieldTrial) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EXPECT_TRUE(QualityScalingExperiment::Enabled(field_trials)); } #else TEST(QualityScalingExperimentTest, DefaultDisabledWithoutFieldTrialIOS) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EXPECT_FALSE(QualityScalingExperiment::Enabled(field_trials)); } #endif TEST(QualityScalingExperimentTest, EnabledWithFieldTrial) { - FieldTrials field_trials("WebRTC-Video-QualityScaling/Enabled/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-QualityScaling/Enabled/"); EXPECT_TRUE(QualityScalingExperiment::Enabled(field_trials)); } @@ -69,7 +71,7 @@ .alpha_high = 0.9f, .alpha_low = 0.99f, .drop = 1}; - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,7,8,0.9,0.99,1/"); const auto settings = QualityScalingExperiment::ParseSettings(field_trials); EXPECT_TRUE(settings); @@ -79,24 +81,25 @@ #if !defined(WEBRTC_IOS) // TODO(bugs.webrtc.org/12401): investigate why QualityScaler kicks in on iOS. TEST(QualityScalingExperimentTest, ParseSettingsUsesDefaultsWithoutFieldTrial) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); // Uses some default hard coded values. EXPECT_TRUE(QualityScalingExperiment::ParseSettings(field_trials)); } #else TEST(QualityScalingExperimentTest, ParseSettingsFailsWithoutFieldTrial) { - FieldTrials field_trials(""); + FieldTrials field_trials = CreateTestFieldTrials(""); EXPECT_FALSE(QualityScalingExperiment::ParseSettings(field_trials)); } #endif TEST(QualityScalingExperimentTest, ParseSettingsFailsWithInvalidFieldTrial) { - FieldTrials field_trials("WebRTC-Video-QualityScaling/Enabled-invalid/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-QualityScaling/Enabled-invalid/"); EXPECT_FALSE(QualityScalingExperiment::ParseSettings(field_trials)); } TEST(QualityScalingExperimentTest, GetConfig) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,7,8,0.9,0.99,0/"); const auto config = QualityScalingExperiment::GetConfig(field_trials); EXPECT_EQ(0.9f, config.alpha_high); @@ -105,7 +108,8 @@ } TEST(QualityScalingExperimentTest, GetsDefaultConfigForInvalidFieldTrial) { - FieldTrials field_trials("WebRTC-Video-QualityScaling/Enabled-invalid/"); + FieldTrials field_trials = + CreateTestFieldTrials("WebRTC-Video-QualityScaling/Enabled-invalid/"); const auto config = QualityScalingExperiment::GetConfig(field_trials); ExpectEqualConfig(config, QualityScalingExperiment::Config()); } @@ -113,14 +117,14 @@ TEST(QualityScalingExperimentTest, GetsDefaultAlphaForInvalidValue) { QualityScalingExperiment::Config expected_config; expected_config.use_all_drop_reasons = true; - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,7,8,0.99,0.9,1/"); const auto config = QualityScalingExperiment::GetConfig(field_trials); ExpectEqualConfig(config, expected_config); } TEST(QualityScalingExperimentTest, GetVp8Thresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,0,0,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecVP8, field_trials); @@ -130,7 +134,7 @@ } TEST(QualityScalingExperimentTest, GetThresholdsFailsForInvalidVp8Value) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-0,0,3,4,5,6,7,8,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecVP8, field_trials); @@ -138,7 +142,7 @@ } TEST(QualityScalingExperimentTest, GetVp9Thresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,0,0,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecVP9, field_trials); @@ -148,7 +152,7 @@ } TEST(QualityScalingExperimentTest, GetThresholdsFailsForInvalidVp9Value) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,0,0,5,6,7,8,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecVP9, field_trials); @@ -156,7 +160,7 @@ } TEST(QualityScalingExperimentTest, GetH264Thresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,0,0,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecH264, field_trials); @@ -166,7 +170,7 @@ } TEST(QualityScalingExperimentTest, GetThresholdsFailsForInvalidH264Value) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,0,0,7,8,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds(kVideoCodecH264, field_trials); @@ -174,7 +178,7 @@ } TEST(QualityScalingExperimentTest, GetGenericThresholds) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,0,0,7,8,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds( kVideoCodecGeneric, field_trials); @@ -184,7 +188,7 @@ } TEST(QualityScalingExperimentTest, GetThresholdsFailsForInvalidGenericValue) { - FieldTrials field_trials( + FieldTrials field_trials = CreateTestFieldTrials( "WebRTC-Video-QualityScaling/Enabled-1,2,3,4,5,6,0,0,0.9,0.99,1/"); const auto thresholds = QualityScalingExperiment::GetQpThresholds( kVideoCodecGeneric, field_trials);
diff --git a/rtc_base/experiments/rate_control_settings_unittest.cc b/rtc_base/experiments/rate_control_settings_unittest.cc index 5f730b4..0b11249 100644 --- a/rtc_base/experiments/rate_control_settings_unittest.cc +++ b/rtc_base/experiments/rate_control_settings_unittest.cc
@@ -11,7 +11,7 @@ #include "rtc_base/experiments/rate_control_settings.h" #include "absl/strings/string_view.h" -#include "api/field_trials.h" +#include "test/create_test_field_trials.h" #include "test/gmock.h" #include "test/gtest.h" @@ -23,7 +23,7 @@ using ::testing::Optional; RateControlSettings ParseFrom(absl::string_view field_trials) { - return RateControlSettings(FieldTrials(field_trials)); + return RateControlSettings(CreateTestFieldTrials(field_trials)); } TEST(RateControlSettingsTest, CongestionWindow) {
diff --git a/rtc_base/network_unittest.cc b/rtc_base/network_unittest.cc index 66db0ae..bd997a8 100644 --- a/rtc_base/network_unittest.cc +++ b/rtc_base/network_unittest.cc
@@ -24,7 +24,6 @@ #include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" #include "api/field_trials.h" #include "api/sequence_checker.h" #include "rtc_base/checks.h" @@ -37,6 +36,7 @@ #include "rtc_base/network_monitor_factory.h" #include "rtc_base/physical_socket_server.h" #include "rtc_base/socket_address.h" +#include "test/create_test_environment.h" #include "test/create_test_field_trials.h" #include "test/gmock.h" #include "test/gtest.h" @@ -329,8 +329,7 @@ #endif // defined(WEBRTC_POSIX) protected: - const FieldTrials field_trials_ = CreateTestFieldTrials(); - const Environment env_ = CreateEnvironment(&field_trials_); + const Environment env_ = CreateTestEnvironment(); test::RunLoop main_thread_; bool callback_called_ = false; }; @@ -1421,7 +1420,8 @@ std::string ipv6_address = "2607:fc20:f340:1dc8:214:22ff:fe01:2345"; std::string ipv6_mask = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"; PhysicalSocketServer socket_server; - BasicNetworkManager manager(CreateEnvironment(&field_trials), &socket_server); + BasicNetworkManager manager( + CreateTestEnvironment({.field_trials = &field_trials}), &socket_server); manager.StartUpdating(); // IPSec interface; name is in form "ipsec<index>".
diff --git a/test/create_test_field_trials.cc b/test/create_test_field_trials.cc index 59524ca..e0341cf 100644 --- a/test/create_test_field_trials.cc +++ b/test/create_test_field_trials.cc
@@ -28,7 +28,8 @@ FieldTrials CreateTestFieldTrials(absl::string_view s) { AutoBypassTestEnvironmentCheck bypass; - FieldTrials result(absl::GetFlag(FLAGS_force_fieldtrials)); + FieldTrials result(absl::GetFlag(FLAGS_force_fieldtrials), + /* is_test= */ true); result.Merge(FieldTrials(s)); return result; }
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn index 5705b73..e991dc4 100644 --- a/test/network/BUILD.gn +++ b/test/network/BUILD.gn
@@ -185,6 +185,7 @@ deps = [ ":emulated_network", ":simulated_network", + "../:create_test_environment", "../../api:create_network_emulation_manager", "../../api:network_emulation_manager_api", "../../api:rtp_header_extension_id",
diff --git a/test/network/feedback_generator.cc b/test/network/feedback_generator.cc index ee7a97b..f2190be 100644 --- a/test/network/feedback_generator.cc +++ b/test/network/feedback_generator.cc
@@ -16,7 +16,6 @@ #include "absl/memory/memory.h" #include "api/environment/environment.h" -#include "api/environment/environment_factory.h" #include "api/rtc_event_log/rtc_event_log.h" #include "api/rtc_event_log/rtc_event_log_factory.h" #include "api/rtp_header_extension_id.h" @@ -37,6 +36,7 @@ #include "modules/rtp_rtcp/source/rtp_header_extensions.h" #include "modules/rtp_rtcp/source/rtp_packet_to_send.h" #include "rtc_base/checks.h" +#include "test/create_test_environment.h" #include "test/network/network_emulation.h" #include "test/network/simulated_network.h" namespace webrtc { @@ -44,10 +44,9 @@ namespace { Environment GetEnvironment(NetworkEmulationManager& net) { - EnvironmentFactory factory; - factory.Set(net.time_controller()->GetClock()); - factory.Set(net.time_controller()->GetTaskQueueFactory()); - return factory.Create(); + return CreateTestEnvironment({ + .time = net.time_controller(), + }); } EmulatedRoute* CreateRoute(NetworkEmulationManager& net,