blob: 788a2abbe896e8d4672045ae75c4af39601cdf76 [file] [log] [blame]
Bob Badour07160d82021-02-22 16:09:08 -08001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "packages_modules_DnsResolver_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["packages_modules_DnsResolver_license"],
8}
9
Hungming Chend52f6b12019-07-24 16:01:47 +080010cc_test_library {
11 name: "libnetd_test_resolv_utils",
Luke Huang45b761c2020-03-20 22:30:43 +080012 defaults: ["netd_defaults", "resolv_test_defaults"],
Hungming Chend52f6b12019-07-24 16:01:47 +080013 srcs: [
14 "resolv_test_utils.cpp",
15 ],
16 header_libs: [
17 "libnetd_resolv_headers",
Hungming Chend52f6b12019-07-24 16:01:47 +080018 ],
19 shared_libs: [
Hungming Chend52f6b12019-07-24 16:01:47 +080020 "libutils",
21 ],
22 static_libs: [
Jeongik Chae8fe5a52021-03-05 21:18:33 +090023 "netd_aidl_interface-lateststable-ndk_platform",
Luke Huang39757932020-04-17 19:04:21 +080024 "libnetd_test_dnsresponder_ndk",
Hungming Chend52f6b12019-07-24 16:01:47 +080025 "libnetdutils",
Luke Huangeb618ef2020-05-26 14:17:02 +080026 "libgmock",
Hungming Chend52f6b12019-07-24 16:01:47 +080027 ],
28}
29
Ken Chen1ba6afa2020-03-06 17:09:02 +080030cc_library_host_static {
31 name: "golddata_proto_host",
32 proto: {
33 export_proto_headers: true,
34 type: "full",
35 },
36 srcs: [
37 "golddata.proto",
38 ],
39}
40
41cc_binary_host {
42 name: "resolv_gold_test_pbtxt2pb_host",
43 cflags: [
44 "-Wall",
45 "-Werror",
46 ],
47 srcs: ["pbtxt2pb_converter_host.cpp"],
48 static_libs: [
49 "golddata_proto_host",
50 "libc++fs",
51 "libprotobuf-cpp-full",
52 ],
53}
54
55genrule {
56 name: "resolv_gold_test_pbtxt2pb",
57 tools: [
58 "resolv_gold_test_pbtxt2pb_host",
59 "soong_zip",
60 ],
61 srcs: ["testdata/*.pbtxt"],
62 // convert .pbtxt to .pb files; zip them as a single pb.zip.
63 cmd: "mkdir $(genDir)/pb && for fname in $(in); " +
64 "do $(location resolv_gold_test_pbtxt2pb_host) --in_file=$$fname " +
65 "--out_dir=$(genDir)/pb; done && " +
66 "$(location soong_zip) -o $(out) -C $(genDir)/pb -D $(genDir)/pb",
67 out: ["testdata/pb.zip"],
68}
69
Hungming Chen21c0f832019-09-20 18:38:47 +080070cc_library_static {
71 name: "golddata_proto",
72 defaults: ["netd_defaults"],
73 proto: {
74 export_proto_headers: true,
Hungming Chen6cb2be02020-03-06 15:25:25 +080075 type: "lite",
Hungming Chen21c0f832019-09-20 18:38:47 +080076 },
77 srcs: [
78 "golddata.proto",
79 ],
Maciej Żenczykowski11df7442020-04-24 14:18:02 -070080 tidy: false,
Hungming Chen21c0f832019-09-20 18:38:47 +080081}
82
Luke Huangfde82482019-06-04 01:04:53 +080083cc_test {
Hungming Chenf9cd4eb2019-08-06 20:55:28 +090084 name: "resolv_gold_test",
Kimberly Kreiderc4260f52020-12-15 10:54:30 -080085 test_suites: ["general-tests", "mts-dnsresolver"],
Hungming Chenf9cd4eb2019-08-06 20:55:28 +090086 require_root: true,
Luke Huang9ff7d2a2020-03-13 13:11:22 +080087 // b/151392634, this is a workaround because MTS
88 // can not handle the test with testdata correctly.
89 // TODO: Remove the xml after MTS fixing the problem.
90 test_config: "resolv_gold_test_config.xml",
Luke Huang45b761c2020-03-20 22:30:43 +080091 defaults: ["netd_defaults", "resolv_test_defaults"],
Ken Chen1ba6afa2020-03-06 17:09:02 +080092 data: [":resolv_gold_test_pbtxt2pb"],
Hungming Chenf9cd4eb2019-08-06 20:55:28 +090093 srcs: [
94 "resolv_gold_test.cpp",
95 ],
96 header_libs: [
Hungming Chenc6556622019-10-02 16:01:07 +080097 "libnetd_client_headers",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +090098 ],
99 shared_libs: [
Luke Huang0b564a22020-03-19 11:33:59 +0800100 "libbinder_ndk",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900101 ],
102 static_libs: [
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900103 "dnsresolver_aidl_interface-lateststable-ndk_platform",
Hungming Chen21c0f832019-09-20 18:38:47 +0800104 "golddata_proto",
Pirama Arumuga Nainar6d14bb32021-03-09 14:11:05 -0800105 "libcrypto_static",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900106 "libgmock",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900107 "libnetd_resolv",
Hungming Chen9c748a22019-10-17 18:11:02 +0800108 "libnetd_test_dnsresponder_ndk",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900109 "libnetd_test_resolv_utils",
110 "libnetdutils",
Hungming Chen6cb2be02020-03-06 15:25:25 +0800111 "libprotobuf-cpp-lite",
Luke Huang47d1ca12021-03-17 09:12:52 +0800112 "libssl",
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900113 "netd_aidl_interface-lateststable-ndk_platform",
114 "netd_event_listener_interface-lateststable-ndk_platform",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900115 "server_configurable_flags",
116 "stats_proto",
117 ],
Luke Huang0b6c4932020-03-27 17:40:07 +0800118 // MTS test binary can't be built under compile_multilib = "both" and having test data.
119 // However, MTS coverage requires 32 bit test binary to run.
Luke Huang04036362020-03-31 03:48:29 +0800120 compile_multilib: "prefer32",
Hungming Chenf9cd4eb2019-08-06 20:55:28 +0900121}
122
Luke Huangfde82482019-06-04 01:04:53 +0800123cc_test {
124 name: "resolv_stress_test",
Kimberly Kreiderc4260f52020-12-15 10:54:30 -0800125 test_suites: ["general-tests", "mts-dnsresolver"],
Bernie Innocenti35202242019-06-19 16:56:18 +0900126 // This won't work with test_config
127 // require_root: true,
Luke Huang0b6c4932020-03-27 17:40:07 +0800128 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device.
129 defaults: ["netd_defaults", "resolv_test_defaults", "resolv_test_mts_coverage_defaults"],
Luke Huangfde82482019-06-04 01:04:53 +0800130 srcs: [
131 "resolv_stress_test.cpp",
Luke Huangfde82482019-06-04 01:04:53 +0800132 ],
chenbruce2e2446c2019-06-28 16:37:36 +0800133 header_libs: [
134 "libnetd_resolv_headers",
Luke Huangfde82482019-06-04 01:04:53 +0800135 ],
136 shared_libs: [
Luke Huangf8215372019-11-22 11:53:41 +0800137 "libbinder_ndk",
Luke Huangfde82482019-06-04 01:04:53 +0800138 "libnetd_client",
Luke Huangfde82482019-06-04 01:04:53 +0800139 ],
140 static_libs: [
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900141 "dnsresolver_aidl_interface-lateststable-ndk_platform",
Luke Huangfde82482019-06-04 01:04:53 +0800142 "libgmock",
Luke Huangf8215372019-11-22 11:53:41 +0800143 "libnetd_test_dnsresponder_ndk",
Hungming Chend52f6b12019-07-24 16:01:47 +0800144 "libnetd_test_resolv_utils",
Luke Huangfde82482019-06-04 01:04:53 +0800145 "libnetdutils",
Luke Huang0b564a22020-03-19 11:33:59 +0800146 "libutils",
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900147 "netd_event_listener_interface-lateststable-ndk_platform",
148 "netd_aidl_interface-lateststable-ndk_platform",
Luke Huangfde82482019-06-04 01:04:53 +0800149 ],
Luke Huangf8215372019-11-22 11:53:41 +0800150}
151
152cc_test {
153 name: "resolv_integration_test",
Kimberly Kreiderc4260f52020-12-15 10:54:30 -0800154 test_suites: ["general-tests", "mts-dnsresolver"],
Luke Huangf8215372019-11-22 11:53:41 +0800155 require_root: true,
Luke Huang0b6c4932020-03-27 17:40:07 +0800156 test_config_template: ":resolv_test_config_template",
Luke Huang45b761c2020-03-20 22:30:43 +0800157 defaults: ["netd_defaults", "resolv_test_defaults"],
Luke Huangf8215372019-11-22 11:53:41 +0800158 tidy: false, // cuts test build time by > 1m30s
159 srcs: [
160 "dns_responder/dns_responder.cpp",
161 "dnsresolver_binder_test.cpp",
162 "resolv_integration_test.cpp",
Mike Yu6ce587d2019-12-19 21:30:22 +0800163 "tun_forwarder.cpp",
Luke Huangf8215372019-11-22 11:53:41 +0800164 ],
165 header_libs: [
Luke Huang829511c2020-05-26 17:31:15 +0800166 "dnsproxyd_protocol_headers",
Luke Huangf8215372019-11-22 11:53:41 +0800167 "libnetd_resolv_headers",
Luke Huangf8215372019-11-22 11:53:41 +0800168 ],
169 // TODO: make static link libc++ work.
170 //stl: "libc++_static",
171 shared_libs: [
172 "libbinder_ndk",
173 "libnetd_client",
174 ],
175 static_libs: [
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900176 "dnsresolver_aidl_interface-lateststable-ndk_platform",
Luke Huang80fdd8c2021-03-10 01:39:21 +0800177 "libbpf_android",
Luke Huangf8215372019-11-22 11:53:41 +0800178 "libcrypto_static",
179 "libgmock",
Luke Huang70070852019-11-25 18:25:50 +0800180 "libnetd_test_dnsresponder_ndk",
181 "libnetd_test_metrics_listener",
Luke Huangf8215372019-11-22 11:53:41 +0800182 "libnetd_test_resolv_utils",
Luke Huang70070852019-11-25 18:25:50 +0800183 "libnetdutils",
Luke Huangf8215372019-11-22 11:53:41 +0800184 "libssl",
185 "libutils",
Jeongik Chae8fe5a52021-03-05 21:18:33 +0900186 "netd_aidl_interface-lateststable-ndk_platform",
187 "netd_event_listener_interface-lateststable-ndk_platform",
Mike Yu6ce587d2019-12-19 21:30:22 +0800188 "libipchecksum",
paulhu779f1602020-11-17 18:27:00 +0800189 "resolv_unsolicited_listener",
Luke Huangf8215372019-11-22 11:53:41 +0800190 ],
Luke Huang0b6c4932020-03-27 17:40:07 +0800191 // This test talks to the DnsResolver module over a binary protocol on a socket, so keep it as
192 // multilib setting is worth because we might be able to get some coverage for the case where
193 // 32bit apps talk to 64bit resolvers.
Luke Huangf8215372019-11-22 11:53:41 +0800194 compile_multilib: "both",
Bernie Innocenticac27842019-12-13 11:49:33 +0900195 multilib: {
196 lib32: {
197 suffix: "32",
198 },
199 lib64: {
200 suffix: "64",
201 },
202 },
Luke Huangfde82482019-06-04 01:04:53 +0800203}
Luke Huang977e46e2019-07-04 15:33:07 +0800204
Pirama Arumuga Nainar6d14bb32021-03-09 14:11:05 -0800205cc_test {
206 name: "resolv_unit_test",
207 test_suites: [
208 "general-tests",
209 "mts-dnsresolver",
210 ],
211 require_root: true,
212 // TODO: Drop root privileges and make it be an real unit test.
213 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device.
214 defaults: [
215 "netd_defaults",
216 "resolv_test_defaults",
217 "resolv_test_mts_coverage_defaults",
218 ],
219 srcs: [
220 "resolv_cache_unit_test.cpp",
221 "resolv_callback_unit_test.cpp",
222 "resolv_tls_unit_test.cpp",
223 "resolv_unit_test.cpp",
224 ":resolv_unit_test_files",
225 ],
226 shared_libs: [
227 "libbinder_ndk",
Pirama Arumuga Nainar6d14bb32021-03-09 14:11:05 -0800228 ],
229 static_libs: [
230 "dnsresolver_aidl_interface-lateststable-ndk_platform",
231 "netd_aidl_interface-lateststable-ndk_platform",
232 "netd_event_listener_interface-lateststable-ndk_platform",
233 "libcrypto_static",
234 "libcutils",
235 "libgmock",
236 "libnetd_resolv",
237 "libnetd_test_dnsresponder_ndk",
238 "libnetd_test_resolv_utils",
239 "libnetdutils",
240 "libprotobuf-cpp-lite",
Luke Huang47d1ca12021-03-17 09:12:52 +0800241 "libssl",
Pirama Arumuga Nainar6d14bb32021-03-09 14:11:05 -0800242 "libstatslog_resolv",
243 "libstatspush_compat",
244 "libsysutils",
245 "libutils",
246 "resolv_stats_test_utils",
247 "server_configurable_flags",
248 "stats_proto",
249 ],
250}
251
Luke Huang977e46e2019-07-04 15:33:07 +0800252cc_test_library {
253 name: "resolv_stats_test_utils",
254 srcs: [
255 "resolv_stats_test_utils.cpp"
256 ],
Luke Huang45b761c2020-03-20 22:30:43 +0800257 defaults: ["netd_defaults", "resolv_test_defaults"],
Luke Huang977e46e2019-07-04 15:33:07 +0800258 export_include_dirs: ["."],
259 static_libs: [
Luke Huang977e46e2019-07-04 15:33:07 +0800260 "libgmock",
Luke Huang977e46e2019-07-04 15:33:07 +0800261 "libnetdutils",
262 "libprotobuf-cpp-lite",
263 "stats_proto",
264 ],
265}
266
267cc_test {
268 name: "resolv_stats_test_utils_test",
269 srcs: [
270 "resolv_stats_test_utils_test.cpp",
271 ],
Luke Huang45b761c2020-03-20 22:30:43 +0800272 defaults: ["netd_defaults", "resolv_test_defaults"],
Luke Huang0b283682020-07-08 16:58:33 +0800273 test_suites: ["general-tests"],
Remi NGUYEN VAN33634a02021-01-12 21:12:38 +0900274 test_mainline_modules: [
275 "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex",
276 "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex"
277 ],
Luke Huang977e46e2019-07-04 15:33:07 +0800278 static_libs: [
Luke Huang977e46e2019-07-04 15:33:07 +0800279 "libgmock",
Luke Huang977e46e2019-07-04 15:33:07 +0800280 "libprotobuf-cpp-lite",
281 "resolv_stats_test_utils",
282 "stats_proto",
283 ],
284}
Luke Huang5921a872021-05-25 06:42:44 +0000285
286cc_test {
287 name: "doh_ffi_test",
288 test_suites: [
289 "general-tests",
290 ],
291 defaults: ["netd_defaults"],
292 header_libs: [
293 "libnetd_resolv_internal_headers",
294 ],
295 srcs: ["doh_ffi_test.cpp"],
296 static_libs: [
297 "libcrypto_static",
298 "libdoh_ffi",
299 "libgmock",
300 "liblog",
301 "libring-core",
302 "libssl",
303 ],
304 min_sdk_version: "29",
305}