Tethering downstreams do not have NetworkAgents, and although they have
a netid of 99, Networks with netId 99 are not usable by apps for most
connectivity APIs.
Recent refactoring in NsdService adds the Network of a found service
into its NsdServiceInfo, and uses that network to resolve the service.
In that case the Network has netId 99 and resolving the service fails.
Avoid that problem by:
- Keeping the Network field null when a service is found on a tethering
downstream; this avoids giving apps a confusing and unusable Network
with netId 99
- Using the interface index found during discovery to resolve the
service, if the app uses the NsdServiceInfo that was obtained from
discovery to resolve. If not, all interfaces will be used to resolve,
as per legacy APIs.
Bug: 233979892
Test: atest NsdServiceTest
Also manual test with 2 devices connected via hotspot
Change-Id: Idd176153b67ccbd1d4f1b1fd66dafaa2f3a9e27a
173 lines
6 KiB
Text
173 lines
6 KiB
Text
//########################################################################
|
|
// Build FrameworksNetTests package
|
|
//########################################################################
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
// Whether to enable the FrameworksNetTests. Set to false in the branches that might have older
|
|
// frameworks/base since FrameworksNetTests includes the test for classes that are not in
|
|
// connectivity module.
|
|
enable_frameworks_net_tests = true
|
|
// Placeholder
|
|
// This is a placeholder comment to minimize merge conflicts, as enable_frameworks_net_tests
|
|
// may have different values depending on the branch
|
|
// Placeholder
|
|
|
|
java_defaults {
|
|
name: "FrameworksNetTests-jni-defaults",
|
|
jni_libs: [
|
|
"ld-android",
|
|
"libandroid_net_frameworktests_util_jni",
|
|
"libbase",
|
|
"libbinder",
|
|
"libbpf_bcc",
|
|
"libc++",
|
|
"libcrypto",
|
|
"libcutils",
|
|
"libdl_android",
|
|
"libhidl-gen-utils",
|
|
"libhidlbase",
|
|
"libjsoncpp",
|
|
"liblog",
|
|
"liblzma",
|
|
"libnativehelper",
|
|
"libnetdutils",
|
|
"libnetworkstats",
|
|
"libnetworkstatsfactorytestjni",
|
|
"libpackagelistparser",
|
|
"libpcre2",
|
|
"libselinux",
|
|
"libtinyxml2",
|
|
"libui",
|
|
"libunwindstack",
|
|
"libutils",
|
|
"libutilscallstack",
|
|
"libvndksupport",
|
|
"libziparchive",
|
|
"libz",
|
|
"netd_aidl_interface-V5-cpp",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "non-connectivity-module-test",
|
|
srcs: [
|
|
"java/android/app/usage/*.java",
|
|
"java/android/net/EthernetNetworkUpdateRequestTest.java",
|
|
"java/android/net/Ikev2VpnProfileTest.java",
|
|
"java/android/net/IpMemoryStoreTest.java",
|
|
"java/android/net/IpSecAlgorithmTest.java",
|
|
"java/android/net/IpSecConfigTest.java",
|
|
"java/android/net/IpSecManagerTest.java",
|
|
"java/android/net/IpSecTransformTest.java",
|
|
"java/android/net/KeepalivePacketDataUtilTest.java",
|
|
"java/android/net/NetworkIdentitySetTest.kt",
|
|
"java/android/net/NetworkIdentityTest.kt",
|
|
"java/android/net/NetworkStats*.java",
|
|
"java/android/net/NetworkTemplateTest.kt",
|
|
"java/android/net/TelephonyNetworkSpecifierTest.java",
|
|
"java/android/net/VpnManagerTest.java",
|
|
"java/android/net/ipmemorystore/*.java",
|
|
"java/android/net/netstats/NetworkStatsDataMigrationUtilsTest.kt",
|
|
"java/android/net/nsd/*.java",
|
|
"java/com/android/internal/net/NetworkUtilsInternalTest.java",
|
|
"java/com/android/internal/net/VpnProfileTest.java",
|
|
"java/com/android/server/IpSecServiceParameterizedTest.java",
|
|
"java/com/android/server/IpSecServiceRefcountedResourceTest.java",
|
|
"java/com/android/server/IpSecServiceTest.java",
|
|
"java/com/android/server/NetworkManagementServiceTest.java",
|
|
"java/com/android/server/NsdServiceTest.java",
|
|
"java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java",
|
|
"java/com/android/server/connectivity/IpConnectivityMetricsTest.java",
|
|
"java/com/android/server/connectivity/MultipathPolicyTrackerTest.java",
|
|
"java/com/android/server/connectivity/NetdEventListenerServiceTest.java",
|
|
"java/com/android/server/connectivity/VpnTest.java",
|
|
"java/com/android/server/ethernet/*.java",
|
|
"java/com/android/server/net/ipmemorystore/*.java",
|
|
"java/com/android/server/net/BpfInterfaceMapUpdaterTest.java",
|
|
"java/com/android/server/net/IpConfigStoreTest.java",
|
|
"java/com/android/server/net/NetworkStats*.java",
|
|
"java/com/android/server/net/TestableUsageCallback.kt",
|
|
]
|
|
}
|
|
|
|
// Subset of services-core used to by ConnectivityService tests to test VPN realistically.
|
|
// This is stripped by jarjar (see rules below) from other unrelated classes, so tests do not
|
|
// include most classes from services-core, which are unrelated and cause wrong code coverage
|
|
// calculations.
|
|
java_library {
|
|
name: "services.core-vpn",
|
|
static_libs: ["services.core"],
|
|
jarjar_rules: "vpn-jarjar-rules.txt",
|
|
visibility: ["//visibility:private"],
|
|
}
|
|
|
|
java_defaults {
|
|
name: "FrameworksNetTestsDefaults",
|
|
min_sdk_version: "30",
|
|
defaults: [
|
|
"framework-connectivity-internal-test-defaults",
|
|
],
|
|
srcs: [
|
|
"java/**/*.java",
|
|
"java/**/*.kt",
|
|
],
|
|
static_libs: [
|
|
"androidx.test.rules",
|
|
"androidx.test.uiautomator",
|
|
"bouncycastle-repackaged-unbundled",
|
|
"core-tests-support",
|
|
"FrameworksNetCommonTests",
|
|
"frameworks-base-testutils",
|
|
"frameworks-net-integration-testutils",
|
|
"framework-protos",
|
|
"mockito-target-minus-junit4",
|
|
"net-tests-utils",
|
|
"net-utils-services-common",
|
|
"platform-compat-test-rules",
|
|
"platform-test-annotations",
|
|
"service-connectivity-pre-jarjar",
|
|
"service-connectivity-tiramisu-pre-jarjar",
|
|
"services.core-vpn",
|
|
"cts-net-utils"
|
|
],
|
|
libs: [
|
|
"android.net.ipsec.ike.stubs.module_lib",
|
|
"android.test.runner",
|
|
"android.test.base",
|
|
"android.test.mock",
|
|
"ServiceConnectivityResources",
|
|
],
|
|
exclude_kotlinc_generated_files: false,
|
|
}
|
|
|
|
android_library {
|
|
name: "FrameworksNetTestsLib",
|
|
defaults: [
|
|
"FrameworksNetTestsDefaults",
|
|
],
|
|
exclude_srcs: [":non-connectivity-module-test"],
|
|
visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
|
|
}
|
|
|
|
android_test {
|
|
name: "FrameworksNetTests",
|
|
enabled: enable_frameworks_net_tests,
|
|
defaults: [
|
|
"FrameworksNetTestsDefaults",
|
|
"FrameworksNetTests-jni-defaults",
|
|
],
|
|
jarjar_rules: ":connectivity-jarjar-rules",
|
|
test_suites: ["device-tests"],
|
|
static_libs: [
|
|
"services.core",
|
|
"services.net",
|
|
],
|
|
jni_libs: [
|
|
"libandroid_net_connectivity_com_android_net_module_util_jni",
|
|
"libservice-connectivity",
|
|
"libandroid_net_connectivity_com_android_net_module_util_jni",
|
|
],
|
|
}
|