Files
android_packages_modules_Co…/tests/unit/Android.bp
Mark 53e71c3f3f Allow jarjar com.android.server*
Jarjar com.android.server* and adjust the test by jarjar
FrameworksNetTestsLib to make sure the test cases still can access
package sope fields. Don't auto-jarjar non-connectivity module tests
in FrameworksNetTests because some non-connectivity module test cases
rely on service.core and service.net. The reason why not auto-jarjar
whole ConnectivityCoverageTests because tethering doesn't adopt
auto-jarjar-gen yet. The coverage test must jarjar the same as module so
that test coverage can calculate correctly.

Remove com.android.server* from proguard becasue it already be covered
by android.net* after jarjar'ed.

Move MetricsTestUtil to non connectivity module test group because it
only be used for IpConnectivityEventBuilderTest which is non connectivity
module test. Only jarjar the util without jarjar the caller make the test
failure.

Bug: 248001529
Test: atest ConnectivityCoverageTests FrameworksNetTests

Change-Id: I8439341ef4c03f29697fdf34557ea8ef2825d691
2023-02-14 15:43:43 +00:00

189 lines
6.2 KiB
Plaintext

//########################################################################
// Build FrameworksNetTests package
//########################################################################
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "Android-Apache-2.0"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
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/net/Ikev2VpnProfileTest.java",
"java/android/net/IpMemoryStoreTest.java",
"java/android/net/TelephonyNetworkSpecifierTest.java",
"java/android/net/VpnManagerTest.java",
"java/android/net/ipmemorystore/*.java",
"java/android/net/netstats/NetworkStatsDataMigrationUtilsTest.kt",
"java/com/android/internal/net/NetworkUtilsInternalTest.java",
"java/com/android/internal/net/VpnProfileTest.java",
"java/com/android/server/VpnManagerServiceTest.java",
"java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java",
"java/com/android/server/connectivity/IpConnectivityMetricsTest.java",
"java/com/android/server/connectivity/MetricsTestUtil.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/net/ipmemorystore/*.java",
]
}
// 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_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",
"testables",
"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__"],
}
genrule {
name: "frameworks-net-tests-jarjar-rules",
defaults: ["jarjar-rules-combine-defaults"],
srcs: [
":frameworks-net-tests-lib-jarjar-gen",
// This is necessary because the tests use framework-connectivity-internal-test-defaults,
// which require the user to use connectivity jarjar rules.
":connectivity-jarjar-rules",
],
out: ["frameworks-net-tests-jarjar-rules.txt"],
visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
}
java_genrule {
name: "frameworks-net-tests-lib-jarjar-gen",
tool_files: [
":FrameworksNetTestsLib{.jar}",
"jarjar-excludes.txt",
],
tools: [
"jarjar-rules-generator",
],
out: ["frameworks-net-tests-lib-jarjar-rules.txt"],
cmd: "$(location jarjar-rules-generator) " +
"$(location :FrameworksNetTestsLib{.jar}) " +
"--prefix android.net.connectivity " +
"--excludes $(location jarjar-excludes.txt) " +
"--output $(out)",
visibility: ["//visibility:private"],
}
android_test {
name: "FrameworksNetTests",
enabled: enable_frameworks_net_tests,
defaults: [
"FrameworksNetTestsDefaults",
"FrameworksNetTests-jni-defaults",
],
jarjar_rules: ":frameworks-net-tests-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",
],
}