diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Android.bp | 15 | ||||
-rw-r--r-- | tests/resolv_cache_unit_test.cpp | 3 | ||||
-rw-r--r-- | tests/resolv_integration_test.cpp | 64 |
3 files changed, 41 insertions, 41 deletions
diff --git a/tests/Android.bp b/tests/Android.bp index 72fb008b..9d8f1e7f 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -271,6 +271,7 @@ cc_test { "libstatslog_resolv", "libstatspush_compat", "libsysutils", + "libutils", "resolv_stats_test_utils", "server_configurable_flags", "stats_proto", @@ -377,6 +378,18 @@ cc_defaults { "server_configurable_flags", "stats_proto", ], + target: { + android: { + shared_libs: [ + "libutils", + ], + }, + host: { + static_libs: [ + "libutils", + ], + }, + }, fuzz_config: { cc: [ "cken@google.com", @@ -421,14 +434,12 @@ cc_fuzz { shared_libs: [ "libbinder_ndk", "libbinder", - "libutils", ], }, host: { static_libs: [ "libbinder_ndk", "libbinder", - "libutils", ], }, darwin: { diff --git a/tests/resolv_cache_unit_test.cpp b/tests/resolv_cache_unit_test.cpp index 9667d131..defd2da6 100644 --- a/tests/resolv_cache_unit_test.cpp +++ b/tests/resolv_cache_unit_test.cpp @@ -630,9 +630,6 @@ class ResolvCacheParameterizedTest : public ResolvCacheTest, INSTANTIATE_TEST_SUITE_P(MaxCacheEntries, ResolvCacheParameterizedTest, testing::Values(MAX_ENTRIES_LOWER_BOUND - 1, MAX_ENTRIES_UPPER_BOUND + 1), [](const testing::TestParamInfo<int>& info) { - if (info.param < 0) { // '-' is an invalid character in test name - return "negative_" + std::to_string(abs(info.param)); - } return std::to_string(info.param); }); diff --git a/tests/resolv_integration_test.cpp b/tests/resolv_integration_test.cpp index 8623e153..ff62da45 100644 --- a/tests/resolv_integration_test.cpp +++ b/tests/resolv_integration_test.cpp @@ -4099,54 +4099,46 @@ TEST_F(ResolverTest, GetHostByName2_Dns64QuerySpecialUseIPv4Addresses) { TEST_F(ResolverTest, PrefixDiscoveryBypassTls) { constexpr char listen_addr[] = "::1"; - constexpr char cleartext_port[] = "53"; - constexpr char tls_port[] = "853"; constexpr char dns64_name[] = "ipv4only.arpa."; const std::vector<std::string> servers = {listen_addr}; test::DNSResponder dns(listen_addr); StartDns(dns, {{dns64_name, ns_type::ns_t_aaaa, "64:ff9b::192.0.0.170"}}); - test::DnsTlsFrontend tls(listen_addr, tls_port, listen_addr, cleartext_port); + test::DnsTlsFrontend tls(listen_addr, "853", listen_addr, "53"); ASSERT_TRUE(tls.startServer()); - // Setup OPPORTUNISTIC mode and wait for the validation complete. - ASSERT_TRUE(mDnsClient.SetResolversFromParcel( - ResolverParams::Builder().setDnsServers(servers).setDotServers(servers).build())); - EXPECT_TRUE(WaitForPrivateDnsValidation(tls.listen_address(), true)); - EXPECT_TRUE(tls.waitForQueries(1)); - tls.clearQueries(); - - // Start NAT64 prefix discovery and wait for it complete. - EXPECT_TRUE(mDnsClient.resolvService()->startPrefix64Discovery(TEST_NETID).isOk()); - EXPECT_TRUE(WaitForNat64Prefix(EXPECT_FOUND)); + for (const std::string_view dnsMode : {"OPPORTUNISTIC", "STRICT"}) { + SCOPED_TRACE(fmt::format("testConfig: [{}]", dnsMode)); + auto builder = ResolverParams::Builder().setDnsServers(servers).setDotServers(servers); + if (dnsMode == "STRICT") { + builder.setPrivateDnsProvider(kDefaultPrivateDnsHostName); + } + ASSERT_TRUE(mDnsClient.SetResolversFromParcel(builder.build())); + EXPECT_TRUE(WaitForPrivateDnsValidation(tls.listen_address(), true)); + EXPECT_TRUE(tls.waitForQueries(1)); + tls.clearQueries(); - // Verify it bypassed TLS even though there's a TLS server available. - EXPECT_EQ(0, tls.queries()) << dns.dumpQueries(); - EXPECT_EQ(1U, GetNumQueries(dns, dns64_name)) << dns.dumpQueries(); + // Start NAT64 prefix discovery. + EXPECT_TRUE(mDnsClient.resolvService()->startPrefix64Discovery(TEST_NETID).isOk()); + EXPECT_TRUE(WaitForNat64Prefix(EXPECT_FOUND)); - // Restart the testing network to reset the cache. - mDnsClient.TearDown(); - mDnsClient.SetUp(); - dns.clearQueries(); + // Verify that the DNS query for the NAT64 prefix bypassed private DNS. + EXPECT_EQ(0, tls.queries()) << dns.dumpQueries(); + EXPECT_EQ(1U, GetNumQueries(dns, dns64_name)) << dns.dumpQueries(); - // Setup STRICT mode and wait for the validation complete. - ASSERT_TRUE(mDnsClient.SetResolversFromParcel( - ResolverParams::Builder() - .setDnsServers(servers) - .setDotServers(servers) - .setPrivateDnsProvider(kDefaultPrivateDnsHostName) - .build())); - EXPECT_TRUE(WaitForPrivateDnsValidation(tls.listen_address(), true)); - EXPECT_TRUE(tls.waitForQueries(1)); - tls.clearQueries(); + // Stop the prefix discovery to make DnsResolver send the prefix-removed event + // earlier. Without this, DnsResolver still sends the event once the network + // is destroyed; however, it will fail the next test if the test unexpectedly + // receives the event that it doesn't want. + EXPECT_TRUE(mDnsClient.resolvService()->stopPrefix64Discovery(TEST_NETID).isOk()); + EXPECT_TRUE(WaitForNat64Prefix(EXPECT_NOT_FOUND)); - // Start NAT64 prefix discovery and wait for it to complete. - EXPECT_TRUE(mDnsClient.resolvService()->startPrefix64Discovery(TEST_NETID).isOk()); - EXPECT_TRUE(WaitForNat64Prefix(EXPECT_FOUND)); + dns.clearQueries(); + EXPECT_TRUE(mDnsClient.resolvService()->flushNetworkCache(TEST_NETID).isOk()); + } - // Verify it bypassed TLS despite STRICT mode. - EXPECT_EQ(0, tls.queries()) << dns.dumpQueries(); - EXPECT_EQ(1U, GetNumQueries(dns, dns64_name)) << dns.dumpQueries(); + EXPECT_EQ(0, sDnsMetricsListener->getUnexpectedNat64PrefixUpdates()); + EXPECT_EQ(0, sUnsolicitedEventListener->getUnexpectedNat64PrefixUpdates()); } TEST_F(ResolverTest, SetAndClearNat64Prefix) { |