• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//########################################################################
2// Build FrameworksNetTests package
3//########################################################################
4package {
5    // See: http://go/android-license-faq
6    // A large-scale-change added 'default_applicable_licenses' to import
7    // all of the 'license_kinds' from "Android-Apache-2.0"
8    // to get the below license kinds:
9    //   SPDX-license-identifier-Apache-2.0
10    default_applicable_licenses: ["Android-Apache-2.0"],
11}
12
13// Whether to enable the FrameworksNetTests. Set to false in the branches that might have older
14// frameworks/base since FrameworksNetTests includes the test for classes that are not in
15// connectivity module.
16enable_frameworks_net_tests = true
17// Placeholder
18// This is a placeholder comment to minimize merge conflicts, as enable_frameworks_net_tests
19// may have different values depending on the branch
20// Placeholder
21
22java_defaults {
23    name: "FrameworksNetTests-jni-defaults",
24    jni_libs: [
25        "ld-android",
26        "libandroid_net_frameworktests_util_jni",
27        "libbase",
28        "libbinder",
29        "libc++",
30        "libcrypto",
31        "libcutils",
32        "libdl_android",
33        "libhidl-gen-utils",
34        "libhidlbase",
35        "libjsoncpp",
36        "liblog",
37        "liblzma",
38        "libnativehelper",
39        "libnetdutils",
40        "libnetworkstats",
41        "libnetworkstatsfactorytestjni",
42        "libpackagelistparser",
43        "libpcre2",
44        "libselinux",
45        "libtinyxml2",
46        "libui",
47        "libunwindstack",
48        "libutils",
49        "libutilscallstack",
50        "libvndksupport",
51        "libziparchive",
52        "libz",
53        "netd_aidl_interface-V5-cpp",
54    ],
55}
56
57filegroup {
58    name: "non-connectivity-module-test",
59    srcs: [
60        "java/android/net/Ikev2VpnProfileTest.java",
61        "java/android/net/IpMemoryStoreTest.java",
62        "java/android/net/TelephonyNetworkSpecifierTest.java",
63        "java/android/net/VpnManagerTest.java",
64        "java/android/net/ipmemorystore/*.java",
65        "java/android/net/netstats/NetworkStatsDataMigrationUtilsTest.kt",
66        "java/com/android/internal/net/NetworkUtilsInternalTest.java",
67        "java/com/android/internal/net/VpnProfileTest.java",
68        "java/com/android/server/VpnManagerServiceTest.java",
69        "java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java",
70        "java/com/android/server/connectivity/IpConnectivityMetricsTest.java",
71        "java/com/android/server/connectivity/MetricsTestUtil.java",
72        "java/com/android/server/connectivity/MultipathPolicyTrackerTest.java",
73        "java/com/android/server/connectivity/NetdEventListenerServiceTest.java",
74        "java/com/android/server/connectivity/VpnTest.java",
75        "java/com/android/server/net/ipmemorystore/*.java",
76    ]
77}
78
79// Subset of services-core used to by ConnectivityService tests to test VPN realistically.
80// This is stripped by jarjar (see rules below) from other unrelated classes, so tests do not
81// include most classes from services-core, which are unrelated and cause wrong code coverage
82// calculations.
83java_library {
84    name: "services.core-vpn",
85    static_libs: ["services.core"],
86    jarjar_rules: "vpn-jarjar-rules.txt",
87    visibility: ["//visibility:private"],
88}
89
90java_defaults {
91    name: "FrameworksNetTestsDefaults",
92    min_sdk_version: "30",
93    defaults: [
94        "framework-connectivity-internal-test-defaults",
95    ],
96    srcs: [
97        "java/**/*.java",
98        "java/**/*.kt",
99    ],
100    static_libs: [
101        "androidx.test.rules",
102        "androidx.test.uiautomator_uiautomator",
103        "bouncycastle-repackaged-unbundled",
104        "core-tests-support",
105        "FrameworksNetCommonTests",
106        "frameworks-base-testutils",
107        "frameworks-net-integration-testutils",
108        "framework-protos",
109        "mockito-target-minus-junit4",
110        "net-tests-utils",
111        "net-utils-services-common",
112        "platform-compat-test-rules",
113        "platform-test-annotations",
114        "service-connectivity-pre-jarjar",
115        "service-connectivity-tiramisu-pre-jarjar",
116        "services.core-vpn",
117        "testables",
118        "cts-net-utils"
119    ],
120    libs: [
121        "android.net.ipsec.ike.stubs.module_lib",
122        "android.test.runner",
123        "android.test.base",
124        "android.test.mock",
125        "ServiceConnectivityResources",
126    ],
127    exclude_kotlinc_generated_files: false,
128}
129
130android_library {
131    name: "FrameworksNetTestsLib",
132    defaults: [
133        "FrameworksNetTestsDefaults",
134    ],
135    exclude_srcs: [":non-connectivity-module-test"],
136    visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
137}
138
139genrule {
140    name: "frameworks-net-tests-jarjar-rules",
141    defaults: ["jarjar-rules-combine-defaults"],
142    srcs: [
143        ":frameworks-net-tests-lib-jarjar-gen",
144        // This is necessary because the tests use framework-connectivity-internal-test-defaults,
145        // which require the user to use connectivity jarjar rules.
146        ":connectivity-jarjar-rules",
147    ],
148    out: ["frameworks-net-tests-jarjar-rules.txt"],
149    visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
150}
151
152java_genrule {
153    name: "frameworks-net-tests-lib-jarjar-gen",
154    tool_files: [
155        ":FrameworksNetTestsLib{.jar}",
156        "jarjar-excludes.txt",
157    ],
158    tools: [
159        "jarjar-rules-generator",
160    ],
161    out: ["frameworks-net-tests-lib-jarjar-rules.txt"],
162    cmd: "$(location jarjar-rules-generator) " +
163        "$(location :FrameworksNetTestsLib{.jar}) " +
164        "--prefix android.net.connectivity " +
165        "--excludes $(location jarjar-excludes.txt) " +
166        "--output $(out)",
167    visibility: ["//visibility:private"],
168}
169
170android_test {
171    name: "FrameworksNetTests",
172    enabled: enable_frameworks_net_tests,
173    defaults: [
174        "FrameworksNetTestsDefaults",
175        "FrameworksNetTests-jni-defaults",
176    ],
177    jarjar_rules: ":frameworks-net-tests-jarjar-rules",
178    test_suites: ["device-tests"],
179    static_libs: [
180        "services.core",
181        "services.net",
182    ],
183    jni_libs: [
184        "libandroid_net_connectivity_com_android_net_module_util_jni",
185        "libservice-connectivity",
186    ],
187}
188