aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Android.bp60
-rw-r--r--tests/dns_metrics_listener/Android.bp6
-rw-r--r--tests/dns_responder/Android.bp6
-rw-r--r--tests/resolv_callback_unit_test.cpp2
-rw-r--r--tests/resolv_integration_test.cpp10
-rw-r--r--tests/resolv_private_dns_test.cpp25
-rw-r--r--tests/resolv_test_utils.cpp13
-rw-r--r--tests/resolv_test_utils.h1
-rw-r--r--tests/unsolicited_listener/Android.bp1
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"