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) {