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