Make resolver timeout configurable via setResolverConfiguration()
This is infrastructure for tests simulating unresponsive nameservers.
With the default timeout of 5 seconds, with 4 retries per lookup, makes
this sort of tests impractical.
Change-Id: I2a2315507a4725744de6caa46121d83af13b59d1
Test: netd_unit_test --gtest_filter='ResolverTest.*'
diff --git a/tests/benchmarks/dns_benchmark.cpp b/tests/benchmarks/dns_benchmark.cpp
index f412176..7edd77a 100644
--- a/tests/benchmarks/dns_benchmark.cpp
+++ b/tests/benchmarks/dns_benchmark.cpp
@@ -97,7 +97,7 @@
dns.SetupDNSServers(MAXNS, mappings, &mDns, &servers);
- const std::vector<int> mDefaultParams_Binder = { 300, 25, 8, 8 };
+ const std::vector<int> mDefaultParams_Binder = {300, 25, 8, 8, 100};
dns.SetResolversForNetwork(servers, domains, mDefaultParams_Binder);
}
}
diff --git a/tests/netd_test.cpp b/tests/netd_test.cpp
index 5d09346..b586c45 100644
--- a/tests/netd_test.cpp
+++ b/tests/netd_test.cpp
@@ -173,7 +173,8 @@
.min_samples = static_cast<uint8_t>(
params32[INetd::RESOLVER_PARAMS_MIN_SAMPLES]),
.max_samples = static_cast<uint8_t>(
- params32[INetd::RESOLVER_PARAMS_MAX_SAMPLES])
+ params32[INetd::RESOLVER_PARAMS_MAX_SAMPLES]),
+ .base_timeout_msec = params32[INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC],
};
return ResolverStats::decodeAll(stats32, stats);
}
@@ -271,7 +272,12 @@
const std::vector<std::string> mDefaultSearchDomains = { "example.com" };
// <sample validity in s> <success threshold in percent> <min samples> <max samples>
const std::string mDefaultParams = "300 25 8 8";
- const std::vector<int> mDefaultParams_Binder = { 300, 25, 8, 8 };
+ const std::vector<int> mDefaultParams_Binder = {
+ 300, // SAMPLE_VALIDITY
+ 25, // SUCCESS_THRESHOLD
+ 8, 8, // {MIN,MAX}_SAMPLES
+ 100, // BASE_TIMEOUT_MSEC
+ };
};
TEST_F(ResolverTest, GetHostByName) {
@@ -311,7 +317,8 @@
INetd::RESOLVER_PARAMS_SAMPLE_VALIDITY,
INetd::RESOLVER_PARAMS_SUCCESS_THRESHOLD,
INetd::RESOLVER_PARAMS_MIN_SAMPLES,
- INetd::RESOLVER_PARAMS_MAX_SAMPLES
+ INetd::RESOLVER_PARAMS_MAX_SAMPLES,
+ INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC,
};
int size = static_cast<int>(params_offsets.size());
EXPECT_EQ(size, INetd::RESOLVER_PARAMS_COUNT);
@@ -362,6 +369,8 @@
res_params.success_threshold);
EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_MIN_SAMPLES], res_params.min_samples);
EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_MAX_SAMPLES], res_params.max_samples);
+ EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC],
+ res_params.base_timeout_msec);
EXPECT_EQ(servers.size(), res_stats.size());
EXPECT_TRUE(UnorderedCompareArray(res_servers, servers));
@@ -676,6 +685,8 @@
res_params.success_threshold);
EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_MIN_SAMPLES], res_params.min_samples);
EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_MAX_SAMPLES], res_params.max_samples);
+ EXPECT_EQ(mDefaultParams_Binder[INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC],
+ res_params.base_timeout_msec);
}
TEST_F(ResolverTest, SearchPathChange) {