Reset global state before testing FieldTrials
Calling InitFieldTrialsFromString modifies a global variable so we must make sure that state is reset between test runs. Bug: webrtc:10335, webrtc:14336 Change-Id: Ia9839dd16a330ed3220ed470c28c541fc1cc0678 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271022 Commit-Queue: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Auto-Submit: Emil Lundmark <lndmrk@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37731}
This commit is contained in:
parent
382a1528ef
commit
61deb0be81
@ -25,14 +25,23 @@ namespace webrtc {
|
||||
namespace {
|
||||
|
||||
using ::testing::NotNull;
|
||||
using ::webrtc::field_trial::InitFieldTrialsFromString;
|
||||
|
||||
TEST(FieldTrialsTest, EmptyStringHasNoEffect) {
|
||||
class FieldTrialsTest : public testing::Test {
|
||||
protected:
|
||||
FieldTrialsTest() {
|
||||
// Make sure global state is consistent between test runs.
|
||||
InitFieldTrialsFromString(nullptr);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(FieldTrialsTest, EmptyStringHasNoEffect) {
|
||||
FieldTrials f("");
|
||||
EXPECT_FALSE(f.IsEnabled("MyCoolTrial"));
|
||||
EXPECT_FALSE(f.IsDisabled("MyCoolTrial"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, EnabledDisabledMustBeFirstInValue) {
|
||||
TEST_F(FieldTrialsTest, EnabledDisabledMustBeFirstInValue) {
|
||||
FieldTrials f(
|
||||
"MyCoolTrial/EnabledFoo/"
|
||||
"MyUncoolTrial/DisabledBar/"
|
||||
@ -42,23 +51,23 @@ TEST(FieldTrialsTest, EnabledDisabledMustBeFirstInValue) {
|
||||
EXPECT_FALSE(f.IsEnabled("AnotherTrial"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, FieldTrialsDoesNotReadGlobalString) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialsDoesNotReadGlobalString) {
|
||||
static constexpr char s[] = "MyCoolTrial/Enabled/MyUncoolTrial/Disabled/";
|
||||
webrtc::field_trial::InitFieldTrialsFromString(s);
|
||||
InitFieldTrialsFromString(s);
|
||||
FieldTrials f("");
|
||||
EXPECT_FALSE(f.IsEnabled("MyCoolTrial"));
|
||||
EXPECT_FALSE(f.IsDisabled("MyUncoolTrial"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, FieldTrialsWritesGlobalString) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialsWritesGlobalString) {
|
||||
FieldTrials f("MyCoolTrial/Enabled/MyUncoolTrial/Disabled/");
|
||||
EXPECT_TRUE(webrtc::field_trial::IsEnabled("MyCoolTrial"));
|
||||
EXPECT_TRUE(webrtc::field_trial::IsDisabled("MyUncoolTrial"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, FieldTrialsRestoresGlobalStringAfterDestruction) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialsRestoresGlobalStringAfterDestruction) {
|
||||
static constexpr char s[] = "SomeString/Enabled/";
|
||||
webrtc::field_trial::InitFieldTrialsFromString(s);
|
||||
InitFieldTrialsFromString(s);
|
||||
{
|
||||
FieldTrials f("SomeOtherString/Enabled/");
|
||||
EXPECT_STREQ(webrtc::field_trial::GetFieldTrialString(),
|
||||
@ -68,19 +77,19 @@ TEST(FieldTrialsTest, FieldTrialsRestoresGlobalStringAfterDestruction) {
|
||||
}
|
||||
|
||||
#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
|
||||
TEST(FieldTrialsTest, FieldTrialsDoesNotSupportSimultaneousInstances) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialsDoesNotSupportSimultaneousInstances) {
|
||||
FieldTrials f("SomeString/Enabled/");
|
||||
RTC_EXPECT_DEATH(FieldTrials("SomeOtherString/Enabled/").Lookup("Whatever"),
|
||||
"Only one instance");
|
||||
}
|
||||
#endif // GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
|
||||
|
||||
TEST(FieldTrialsTest, FieldTrialsSupportsSeparateInstances) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialsSupportsSeparateInstances) {
|
||||
{ FieldTrials f("SomeString/Enabled/"); }
|
||||
{ FieldTrials f("SomeOtherString/Enabled/"); }
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, NonGlobalFieldTrialsInstanceDoesNotModifyGlobalString) {
|
||||
TEST_F(FieldTrialsTest, NonGlobalFieldTrialsInstanceDoesNotModifyGlobalString) {
|
||||
std::unique_ptr<FieldTrials> f =
|
||||
FieldTrials::CreateNoGlobal("SomeString/Enabled/");
|
||||
ASSERT_THAT(f, NotNull());
|
||||
@ -88,7 +97,7 @@ TEST(FieldTrialsTest, NonGlobalFieldTrialsInstanceDoesNotModifyGlobalString) {
|
||||
EXPECT_FALSE(webrtc::field_trial::IsEnabled("SomeString"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, NonGlobalFieldTrialsSupportSimultaneousInstances) {
|
||||
TEST_F(FieldTrialsTest, NonGlobalFieldTrialsSupportSimultaneousInstances) {
|
||||
std::unique_ptr<FieldTrials> f1 =
|
||||
FieldTrials::CreateNoGlobal("SomeString/Enabled/");
|
||||
std::unique_ptr<FieldTrials> f2 =
|
||||
@ -103,7 +112,7 @@ TEST(FieldTrialsTest, NonGlobalFieldTrialsSupportSimultaneousInstances) {
|
||||
EXPECT_TRUE(f2->IsEnabled("SomeOtherString"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, GlobalAndNonGlobalFieldTrialsAreDisjoint) {
|
||||
TEST_F(FieldTrialsTest, GlobalAndNonGlobalFieldTrialsAreDisjoint) {
|
||||
FieldTrials f1("SomeString/Enabled/");
|
||||
std::unique_ptr<FieldTrials> f2 =
|
||||
FieldTrials::CreateNoGlobal("SomeOtherString/Enabled/");
|
||||
@ -116,9 +125,9 @@ TEST(FieldTrialsTest, GlobalAndNonGlobalFieldTrialsAreDisjoint) {
|
||||
EXPECT_TRUE(f2->IsEnabled("SomeOtherString"));
|
||||
}
|
||||
|
||||
TEST(FieldTrialsTest, FieldTrialBasedConfigReadsGlobalString) {
|
||||
TEST_F(FieldTrialsTest, FieldTrialBasedConfigReadsGlobalString) {
|
||||
static constexpr char s[] = "MyCoolTrial/Enabled/MyUncoolTrial/Disabled/";
|
||||
webrtc::field_trial::InitFieldTrialsFromString(s);
|
||||
InitFieldTrialsFromString(s);
|
||||
FieldTrialBasedConfig f;
|
||||
EXPECT_TRUE(f.IsEnabled("MyCoolTrial"));
|
||||
EXPECT_TRUE(f.IsDisabled("MyUncoolTrial"));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user