diff options
| author | Luke Huang <huangluke@google.com> | 2020-04-30 11:26:41 +0800 |
|---|---|---|
| committer | Luke Huang <huangluke@google.com> | 2020-05-01 16:47:40 +0800 |
| commit | a893556b4e2e9c3128e0384357487310acb48204 (patch) | |
| tree | 2feb271120d25e7ef23076b44971af461c936022 /ExperimentsTest.cpp | |
| parent | 11df744d25609531e817d1940d177723d5131f6c (diff) | |
Fix default value problem of DnsResolver Experiments#getFlag()
The default value of Experiments::getFlag() doesn't actually work
because Experiments::updateInternal() wil also initial the property as
0. Use INT_MIN as the default value to represent the flag can't be
found.
Bug: 155042187
Test: atest
Change-Id: Icc863b9a9d7b4cefca4dce23933c705a51299095
Diffstat (limited to 'ExperimentsTest.cpp')
| -rw-r--r-- | ExperimentsTest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ExperimentsTest.cpp b/ExperimentsTest.cpp index 47f6a7dc..6b3ad574 100644 --- a/ExperimentsTest.cpp +++ b/ExperimentsTest.cpp @@ -59,6 +59,19 @@ class ExperimentsTest : public ::testing::Test { EXPECT_THAT(mExperiments.mFlagsMapInt, ::testing::ContainerEq(sFakeFlagsMapInt)); } + void expectFlagsMapIntDefault() { + std::lock_guard guard(mExperiments.mMutex); + for (const auto& [key, value] : mExperiments.mFlagsMapInt) { + EXPECT_EQ(value, Experiments::kFlagIntDefault); + } + } + + void expectGetDnsExperimentFlagIntDefault(int value) { + for (const auto& key : Experiments::kExperimentFlagKeyList) { + EXPECT_EQ(mExperiments.getFlag(key, value), value); + } + } + void expectGetDnsExperimentFlagInt() { std::unordered_map<std::string_view, int> tempMap; for (const auto& key : Experiments::kExperimentFlagKeyList) { @@ -78,6 +91,9 @@ class ExperimentsTest : public ::testing::Test { std::lock_guard guard(mExperiments.mMutex); for (const auto& [key, value] : mExperiments.mFlagsMapInt) { std::string flagDump = fmt::format("{}: {}", key, value); + if (value == Experiments::kFlagIntDefault) { + flagDump = fmt::format("{}: UNSET", key); + } SCOPED_TRACE(flagDump); size_t pos = dumpString.find(flagDump, startPos); EXPECT_NE(pos, std::string::npos); @@ -110,6 +126,17 @@ TEST_F(ExperimentsTest, getDnsExperimentFlagInt) { } } +TEST_F(ExperimentsTest, getDnsExperimentFlagIntDefaultValue) { + // Clear the map and make mExperiments initialized with our default int value. + sFakeFlagsMapInt.clear(); + mExperiments.update(); + expectFlagsMapIntDefault(); + std::vector<int> testValues = {100, 50, 30, 5}; + for (int testValue : testValues) { + expectGetDnsExperimentFlagIntDefault(testValue); + } +} + TEST_F(ExperimentsTest, dump) { std::vector<int> testValues = {100, 37, 0, 30}; for (int testValue : testValues) { @@ -117,6 +144,9 @@ TEST_F(ExperimentsTest, dump) { mExperiments.update(); expectDumpOutput(); } + sFakeFlagsMapInt.clear(); + mExperiments.update(); + expectDumpOutput(); } } // namespace android::net |
