diff options
| author | George Zacharia <george.zcharia@gmail.com> | 2024-07-04 12:11:39 +0530 |
|---|---|---|
| committer | George Zacharia <george.zcharia@gmail.com> | 2024-07-04 12:11:39 +0530 |
| commit | 5d39b58c917af54cc5364cb54a91a2fbb35c0684 (patch) | |
| tree | 785644acbdb68cb56f5935928fd3ccd8cc5602cc /tests | |
| parent | 31fe821335034ba4fb29953fe77395c804e51a33 (diff) | |
| parent | fe72ac15ad7f0428e662415458cc51e03746e33e (diff) | |
Merge tag 'android-14.0.0_r50' of https://android.googlesource.com/platform/packages/modules/DnsResolver into u14.0HEADu14.0
Android 14.0.0 Release 50 (AP2A.240605.024)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Android.bp | 60 | ||||
| -rw-r--r-- | tests/dns_metrics_listener/Android.bp | 6 | ||||
| -rw-r--r-- | tests/dns_responder/Android.bp | 6 | ||||
| -rw-r--r-- | tests/resolv_callback_unit_test.cpp | 2 | ||||
| -rw-r--r-- | tests/resolv_integration_test.cpp | 10 | ||||
| -rw-r--r-- | tests/resolv_private_dns_test.cpp | 25 | ||||
| -rw-r--r-- | tests/resolv_test_utils.cpp | 13 | ||||
| -rw-r--r-- | tests/resolv_test_utils.h | 1 | ||||
| -rw-r--r-- | tests/unsolicited_listener/Android.bp | 1 |
9 files changed, 98 insertions, 26 deletions
diff --git a/tests/Android.bp b/tests/Android.bp index b1266037..7cb4a2a4 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_core_networking", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "packages_modules_DnsResolver_license" @@ -9,7 +10,10 @@ package { cc_test_library { name: "libnetd_test_resolv_utils", - defaults: ["netd_defaults", "resolv_test_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + ], srcs: [ "resolv_test_utils.cpp", ], @@ -64,9 +68,9 @@ genrule { srcs: ["testdata/*.pbtxt"], // convert .pbtxt to .pb files; zip them as a single pb.zip. cmd: "mkdir $(genDir)/pb && for fname in $(in); " + - "do $(location resolv_gold_test_pbtxt2pb_host) --in_file=$$fname " + - "--out_dir=$(genDir)/pb; done && " + - "$(location soong_zip) -o $(out) -C $(genDir)/pb -D $(genDir)/pb", + "do $(location resolv_gold_test_pbtxt2pb_host) --in_file=$$fname " + + "--out_dir=$(genDir)/pb; done && " + + "$(location soong_zip) -o $(out) -C $(genDir)/pb -D $(genDir)/pb", out: ["testdata/pb.zip"], } @@ -85,14 +89,20 @@ cc_library_static { cc_test { name: "resolv_gold_test", - test_suites: ["general-tests", "mts-dnsresolver"], + test_suites: [ + "general-tests", + "mts-dnsresolver", + ], isolated: false, require_root: true, // b/151392634, this is a workaround because MTS // can not handle the test with testdata correctly. // TODO: Remove the xml after MTS fixing the problem. test_config: "resolv_gold_test_config.xml", - defaults: ["netd_defaults", "resolv_test_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + ], data: [":resolv_gold_test_pbtxt2pb"], srcs: [ "resolv_gold_test.cpp", @@ -136,12 +146,19 @@ cc_test { cc_test { name: "resolv_stress_test", - test_suites: ["general-tests", "mts-dnsresolver"], + test_suites: [ + "general-tests", + "mts-dnsresolver", + ], isolated: false, // This won't work with test_config // require_root: true, // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device. - defaults: ["netd_defaults", "resolv_test_defaults", "resolv_test_mts_coverage_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + "resolv_test_mts_coverage_defaults", + ], srcs: [ "resolv_stress_test.cpp", ], @@ -165,11 +182,17 @@ cc_test { cc_test { name: "resolv_integration_test", - test_suites: ["general-tests", "mts-dnsresolver"], + test_suites: [ + "general-tests", + "mts-dnsresolver", + ], isolated: false, require_root: true, test_config_template: ":resolv_test_config_template", - defaults: ["netd_defaults", "resolv_test_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + ], tidy: false, // cuts test build time by > 1m30s srcs: [ "dns_responder/dns_responder.cpp", @@ -228,7 +251,7 @@ cc_test { // after the build process. host_required: [ "net-tests-utils-host-common", - ] + ], } cc_test { @@ -262,6 +285,7 @@ cc_test { "netd_aidl_interface-lateststable-ndk", "netd_event_listener_interface-lateststable-ndk", "libcrypto_static", + "libconnectivity_native_test_utils", "libcutils", "libdoh_ffi_for_test", "libgmock", @@ -274,7 +298,6 @@ cc_test { "libstatslog_resolv", "libstatspush_compat", "libsysutils", - "libutils", "resolv_stats_test_utils", "server_configurable_flags", "stats_proto", @@ -284,9 +307,12 @@ cc_test { cc_test_library { name: "resolv_stats_test_utils", srcs: [ - "resolv_stats_test_utils.cpp" + "resolv_stats_test_utils.cpp", + ], + defaults: [ + "netd_defaults", + "resolv_test_defaults", ], - defaults: ["netd_defaults", "resolv_test_defaults"], export_include_dirs: ["."], static_libs: [ "libgmock", @@ -394,11 +420,11 @@ cc_defaults { }, }, fuzz_config: { - cc: [ + cc: [ "cken@google.com", "kfcchen@google.com", - ], - componentid: 31808, // Android > Android OS & Apps > Systems > core networking + ], + componentid: 31808, // Android > Android OS & Apps > Systems > core networking }, } diff --git a/tests/dns_metrics_listener/Android.bp b/tests/dns_metrics_listener/Android.bp index 339f63cf..91fdf8d5 100644 --- a/tests/dns_metrics_listener/Android.bp +++ b/tests/dns_metrics_listener/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_core_networking", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "packages_modules_DnsResolver_license" @@ -9,7 +10,10 @@ package { cc_test_library { name: "libnetd_test_metrics_listener", - defaults: ["netd_defaults", "resolv_test_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + ], srcs: [ "base_metrics_listener.cpp", "dns_metrics_listener.cpp", diff --git a/tests/dns_responder/Android.bp b/tests/dns_responder/Android.bp index f69db964..3d63b689 100644 --- a/tests/dns_responder/Android.bp +++ b/tests/dns_responder/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_core_networking", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "packages_modules_DnsResolver_license" @@ -9,7 +10,10 @@ package { cc_test_library { name: "libnetd_test_dnsresponder_ndk", - defaults: ["netd_defaults", "resolv_test_defaults"], + defaults: [ + "netd_defaults", + "resolv_test_defaults", + ], shared_libs: [ "libbinder_ndk", "libnetd_client", diff --git a/tests/resolv_callback_unit_test.cpp b/tests/resolv_callback_unit_test.cpp index 6814697e..391951b9 100644 --- a/tests/resolv_callback_unit_test.cpp +++ b/tests/resolv_callback_unit_test.cpp @@ -108,6 +108,7 @@ class CallbackTest : public NetNativeTestBase { initDnsResolverCallbacks(); // Create cache for test android::net::gDnsResolv->resolverCtrl.createNetworkCache(TEST_NETID); + AllowNetworkInBackground(TEST_UID, true); } void TearDown() override { @@ -116,6 +117,7 @@ class CallbackTest : public NetNativeTestBase { resetDnsResolverCallbacks(); // Delete cache for test android::net::gDnsResolv->resolverCtrl.destroyNetworkCache(TEST_NETID); + AllowNetworkInBackground(TEST_UID, false); } int SetResolvers() { diff --git a/tests/resolv_integration_test.cpp b/tests/resolv_integration_test.cpp index ef2bf1e5..a7cc7a8b 100644 --- a/tests/resolv_integration_test.cpp +++ b/tests/resolv_integration_test.cpp @@ -221,8 +221,14 @@ class ResolverTest : public NetNativeTestBase { // Start the binder thread pool for listening DNS metrics events and receiving death // recipient. ABinderProcess_startThreadPool(); + AllowNetworkInBackground(TEST_UID, true); + AllowNetworkInBackground(TEST_UID2, true); + } + static void TearDownTestSuite() { + AIBinder_DeathRecipient_delete(sResolvDeathRecipient); + AllowNetworkInBackground(TEST_UID, false); + AllowNetworkInBackground(TEST_UID2, false); } - static void TearDownTestSuite() { AIBinder_DeathRecipient_delete(sResolvDeathRecipient); } protected: void SetUp() { @@ -4833,7 +4839,7 @@ TEST_F(ResolverTest, ConnectTlsServerTimeout_ConcurrentQueries) { // DOT_SERVER_UNRESPONSIVE_TIME_MS, DoT queries should timeout. TEST_F(ResolverTest, QueryTlsServerTimeout) { constexpr int DOT_SERVER_UNRESPONSIVE_TIME_MS = 2000; - constexpr int TIMING_TOLERANCE_MS = 200; + constexpr int TIMING_TOLERANCE_MS = 500; constexpr char hostname1[] = "query1.example.com."; const std::vector<DnsRecord> records = { {hostname1, ns_type::ns_t_a, "1.2.3.4"}, diff --git a/tests/resolv_private_dns_test.cpp b/tests/resolv_private_dns_test.cpp index c9b8f46c..1f5a2328 100644 --- a/tests/resolv_private_dns_test.cpp +++ b/tests/resolv_private_dns_test.cpp @@ -541,6 +541,13 @@ TEST_P(TransportParameterizedTest, BlockDnsQuery) { dot_backend.addMapping(r.host_name, r.type, r.addr); doh_backend.addMapping(r.host_name, r.type, r.addr); + // TODO: Remove the flags and fix the test. + // These two flags are not necessary for this test case because the test does not expect DNS + // queries to be sent by DNS resolver. However, We should still set these two flags so that we + // don't forget to set them when writing similar tests in the future by referring to this one. + ScopedSystemProperties sp1(kDotAsyncHandshakeFlag, "0"); + ScopedSystemProperties sp2(kDotMaxretriesFlag, "3"); + auto parcel = DnsResponderClient::GetDefaultResolverParamsParcel(); ASSERT_TRUE(mDnsClient.SetResolversFromParcel(parcel)); @@ -575,14 +582,14 @@ TEST_P(TransportParameterizedTest, BlockDnsQuery) { // DataSaver information is only meaningful after V. // TODO: Add 'else' to check that DNS queries are not blocked before V. if (android::modules::sdklevel::IsAtLeastV()) { - expectQueriesAreBlocked(); + EXPECT_NO_FAILURE(expectQueriesAreBlocked()); } } else { // Block network access by setting UID firewall rules. ScopeBlockedUIDRule scopeBlockUidRule(mDnsClient.netdService(), TEST_UID); - expectQueriesAreBlocked(); + EXPECT_NO_FAILURE(expectQueriesAreBlocked()); } - expectQueries(0 /* dns */, 0 /* dot */, 0 /* doh */); + EXPECT_NO_FAILURE(expectQueries(0 /* dns */, 0 /* dot */, 0 /* doh */)); } } @@ -601,6 +608,13 @@ TEST_P(TransportParameterizedTest, BlockDnsQuery_FlaggedOff) { doh_backend.addMapping(r.host_name, r.type, r.addr); ScopedSystemProperties sp1(kFailFastOnUidNetworkBlockingFlag, "0"); + // TODO: Remove the flags and fix the test. + // Context: Fake DoT server closes SSL connection after replying to each query. But a single DNS + // API can send two queries for A and AAAA. One of them will failed in MTS because the current + // setting pushed by server is no retry. + ScopedSystemProperties sp2(kDotAsyncHandshakeFlag, "0"); + ScopedSystemProperties sp3(kDotMaxretriesFlag, "3"); + resetNetwork(); auto parcel = DnsResponderClient::GetDefaultResolverParamsParcel(); @@ -642,11 +656,12 @@ TEST_P(TransportParameterizedTest, BlockDnsQuery_FlaggedOff) { if (testParamHasDoh()) { EXPECT_NO_FAILURE(expectQueries(0 /* dns */, 0 /* dot */, 2 /* doh */)); - dot.clearQueries(); + doh.clearQueries(); } else { EXPECT_NO_FAILURE(expectQueries(0 /* dns */, 2 /* dot */, 0 /* doh */)); - doh.clearQueries(); + dot.clearQueries(); } + flushCache(); } } diff --git a/tests/resolv_test_utils.cpp b/tests/resolv_test_utils.cpp index 4b09b213..a1a9e4e6 100644 --- a/tests/resolv_test_utils.cpp +++ b/tests/resolv_test_utils.cpp @@ -21,6 +21,7 @@ #include <android-base/chrono_utils.h> #include <android-base/logging.h> +#include <firewall.h> using android::netdutils::ScopedAddrinfo; @@ -230,6 +231,18 @@ void RemoveMdnsRoute() { EXPECT_EQ(0, ForkAndRun(args_v6)); } +void AllowNetworkInBackground(int uid, bool allow) { + if (android::modules::sdklevel::IsAtLeastV()) { + // Background networking is always allowed on earlier versions. + Firewall* firewall = Firewall::getInstance(); + if (allow) { + firewall->addRule(uid, BACKGROUND_MATCH); + } else { + firewall->removeRule(uid, BACKGROUND_MATCH); + } + } +} + bool is64bitAbi() { return android::base::GetProperty("ro.product.cpu.abi", "").find("64") != std::string::npos; } diff --git a/tests/resolv_test_utils.h b/tests/resolv_test_utils.h index e3f744ce..7dc1c994 100644 --- a/tests/resolv_test_utils.h +++ b/tests/resolv_test_utils.h @@ -431,6 +431,7 @@ android::netdutils::ScopedAddrinfo safe_getaddrinfo(const char* node, const char void SetMdnsRoute(); void RemoveMdnsRoute(); +void AllowNetworkInBackground(int uid, bool allow); #define SKIP_IF_BEFORE_T \ do { \ diff --git a/tests/unsolicited_listener/Android.bp b/tests/unsolicited_listener/Android.bp index f68fc7bd..22688e2c 100644 --- a/tests/unsolicited_listener/Android.bp +++ b/tests/unsolicited_listener/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_core_networking", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "packages_modules_DnsResolver_license" |
