1package { 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 10cc_test_library { 11 name: "libnetd_test_resolv_utils", 12 defaults: ["netd_defaults", "resolv_test_defaults"], 13 srcs: [ 14 "resolv_test_utils.cpp", 15 ], 16 header_libs: [ 17 "libnetd_resolv_headers", 18 ], 19 static_libs: [ 20 "netd_aidl_interface-lateststable-ndk", 21 "libconnectivity_native_test_utils", 22 "libmodules-utils-build", 23 "libnetd_test_dnsresponder_ndk", 24 "libnetdutils", 25 "libgmock", 26 ], 27 export_static_lib_headers: [ 28 "libconnectivity_native_test_utils", 29 "libmodules-utils-build", 30 ], 31} 32 33cc_library_host_static { 34 name: "golddata_proto_host", 35 proto: { 36 export_proto_headers: true, 37 type: "full", 38 }, 39 srcs: [ 40 "golddata.proto", 41 ], 42} 43 44cc_binary_host { 45 name: "resolv_gold_test_pbtxt2pb_host", 46 cflags: [ 47 "-Wall", 48 "-Werror", 49 ], 50 srcs: ["pbtxt2pb_converter_host.cpp"], 51 static_libs: [ 52 "golddata_proto_host", 53 "libc++fs", 54 "libprotobuf-cpp-full", 55 ], 56} 57 58genrule { 59 name: "resolv_gold_test_pbtxt2pb", 60 tools: [ 61 "resolv_gold_test_pbtxt2pb_host", 62 "soong_zip", 63 ], 64 srcs: ["testdata/*.pbtxt"], 65 // convert .pbtxt to .pb files; zip them as a single pb.zip. 66 cmd: "mkdir $(genDir)/pb && for fname in $(in); " + 67 "do $(location resolv_gold_test_pbtxt2pb_host) --in_file=$$fname " + 68 "--out_dir=$(genDir)/pb; done && " + 69 "$(location soong_zip) -o $(out) -C $(genDir)/pb -D $(genDir)/pb", 70 out: ["testdata/pb.zip"], 71} 72 73cc_library_static { 74 name: "golddata_proto", 75 defaults: ["netd_defaults"], 76 proto: { 77 export_proto_headers: true, 78 type: "lite", 79 }, 80 srcs: [ 81 "golddata.proto", 82 ], 83 tidy: false, 84} 85 86cc_test { 87 name: "resolv_gold_test", 88 test_suites: ["general-tests", "mts-dnsresolver"], 89 isolated: false, 90 require_root: true, 91 // b/151392634, this is a workaround because MTS 92 // can not handle the test with testdata correctly. 93 // TODO: Remove the xml after MTS fixing the problem. 94 test_config: "resolv_gold_test_config.xml", 95 defaults: ["netd_defaults", "resolv_test_defaults"], 96 data: [":resolv_gold_test_pbtxt2pb"], 97 srcs: [ 98 "resolv_gold_test.cpp", 99 ], 100 header_libs: [ 101 "libnetd_client_headers", 102 ], 103 shared_libs: [ 104 "libbinder_ndk", 105 ], 106 static_libs: [ 107 "dnsresolver_aidl_interface-lateststable-ndk", 108 "golddata_proto", 109 "libcrypto_static", 110 "libdoh_ffi_for_test", 111 "libgmock", 112 "libnetd_resolv", 113 "libnetd_test_dnsresponder_ndk", 114 "libnetd_test_resolv_utils", 115 "libnetdutils", 116 "libprotobuf-cpp-lite", 117 "libssl", 118 "netd_aidl_interface-lateststable-ndk", 119 "netd_event_listener_interface-lateststable-ndk", 120 "server_configurable_flags", 121 "stats_proto", 122 ], 123 // TODO: Remove multilib after coverage test switched to 64-bit device. 124 // See comments in target "resolv_test_mts_coverage_defaults". 125 compile_multilib: "both", 126 multilib: { 127 lib32: { 128 suffix: "32", 129 }, 130 lib64: { 131 suffix: "64", 132 }, 133 }, 134} 135 136cc_test { 137 name: "resolv_stress_test", 138 test_suites: ["general-tests", "mts-dnsresolver"], 139 isolated: false, 140 // This won't work with test_config 141 // require_root: true, 142 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device. 143 defaults: ["netd_defaults", "resolv_test_defaults", "resolv_test_mts_coverage_defaults"], 144 srcs: [ 145 "resolv_stress_test.cpp", 146 ], 147 header_libs: [ 148 "libnetd_resolv_headers", 149 ], 150 shared_libs: [ 151 "libbinder_ndk", 152 "libnetd_client", 153 ], 154 static_libs: [ 155 "dnsresolver_aidl_interface-lateststable-ndk", 156 "libgmock", 157 "libnetd_test_dnsresponder_ndk", 158 "libnetd_test_resolv_utils", 159 "libnetdutils", 160 "netd_event_listener_interface-lateststable-ndk", 161 "netd_aidl_interface-lateststable-ndk", 162 ], 163} 164 165cc_test { 166 name: "resolv_integration_test", 167 test_suites: ["general-tests", "mts-dnsresolver"], 168 isolated: false, 169 require_root: true, 170 test_config_template: ":resolv_test_config_template", 171 defaults: ["netd_defaults", "resolv_test_defaults"], 172 tidy: false, // cuts test build time by > 1m30s 173 srcs: [ 174 "dns_responder/dns_responder.cpp", 175 "dnsresolver_binder_test.cpp", 176 "doh_frontend.cpp", 177 "resolv_integration_test.cpp", 178 "resolv_private_dns_test.cpp", 179 "tun_forwarder.cpp", 180 ], 181 header_libs: [ 182 "bpf_headers", 183 "dnsproxyd_protocol_headers", 184 "libnetd_resolv_headers", 185 ], 186 // TODO: make static link libc++ work. 187 //stl: "libc++_static", 188 shared_libs: [ 189 "libbinder_ndk", 190 "libnetd_client", 191 ], 192 static_libs: [ 193 "dnsresolver_aidl_interface-lateststable-ndk", 194 "libconnectivity_native_test_utils", 195 "libcrypto_static", 196 "libgmock", 197 "libmodules-utils-build", 198 "libnetd_test_dnsresponder_ndk", 199 "libnetd_test_metrics_listener", 200 "libnetd_test_resolv_utils", 201 "libnetdutils", 202 "libssl", 203 "libcutils", 204 "netd_aidl_interface-lateststable-ndk", 205 "netd_event_listener_interface-lateststable-ndk", 206 "libip_checksum", 207 "resolv_unsolicited_listener", 208 "libdoh_frontend_ffi", 209 ], 210 // This test talks to the DnsResolver module over a binary protocol on a socket, so keep it as 211 // multilib setting is worth because we might be able to get some coverage for the case where 212 // 32bit apps talk to 64bit resolvers. 213 compile_multilib: "both", 214 multilib: { 215 lib32: { 216 suffix: "32", 217 }, 218 lib64: { 219 suffix: "64", 220 }, 221 }, 222 // 'resolv_integration_test' used DisableConfigSyncTargetPreparer provided 223 // by net-tests-utils-host-common; adding it to make the host jar available 224 // after the build process. 225 host_required: [ 226 "net-tests-utils-host-common", 227 ] 228} 229 230cc_test { 231 name: "resolv_unit_test", 232 test_suites: [ 233 "general-tests", 234 "mts-dnsresolver", 235 ], 236 isolated: false, 237 require_root: true, 238 // TODO: Drop root privileges and make it be an real unit test. 239 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device. 240 defaults: [ 241 "netd_defaults", 242 "resolv_test_defaults", 243 "resolv_test_mts_coverage_defaults", 244 ], 245 srcs: [ 246 "resolv_cache_unit_test.cpp", 247 "resolv_callback_unit_test.cpp", 248 "resolv_tls_unit_test.cpp", 249 "resolv_unit_test.cpp", 250 ":resolv_unit_test_files", 251 ], 252 shared_libs: [ 253 "libbinder_ndk", 254 ], 255 static_libs: [ 256 "dnsresolver_aidl_interface-lateststable-ndk", 257 "netd_aidl_interface-lateststable-ndk", 258 "netd_event_listener_interface-lateststable-ndk", 259 "libcrypto_static", 260 "libcutils", 261 "libdoh_ffi_for_test", 262 "libgmock", 263 "libnetd_resolv", 264 "libnetd_test_dnsresponder_ndk", 265 "libnetd_test_resolv_utils", 266 "libnetdutils", 267 "libprotobuf-cpp-lite", 268 "libssl", 269 "libstatslog_resolv", 270 "libstatspush_compat", 271 "libsysutils", 272 "libutils", 273 "resolv_stats_test_utils", 274 "server_configurable_flags", 275 "stats_proto", 276 ], 277} 278 279cc_test_library { 280 name: "resolv_stats_test_utils", 281 srcs: [ 282 "resolv_stats_test_utils.cpp" 283 ], 284 defaults: ["netd_defaults", "resolv_test_defaults"], 285 export_include_dirs: ["."], 286 static_libs: [ 287 "libgmock", 288 "libnetdutils", 289 "libprotobuf-cpp-lite", 290 "stats_proto", 291 ], 292} 293 294cc_test { 295 name: "resolv_stats_test_utils_test", 296 srcs: [ 297 "resolv_stats_test_utils_test.cpp", 298 ], 299 defaults: [ 300 "netd_defaults", 301 "resolv_test_defaults", 302 "connectivity-mainline-presubmit-cc-defaults", 303 ], 304 test_suites: ["general-tests"], 305 static_libs: [ 306 "libgmock", 307 "libnetdutils", 308 "libprotobuf-cpp-lite", 309 "resolv_stats_test_utils", 310 "stats_proto", 311 ], 312} 313 314cc_test { 315 name: "doh_ffi_test", 316 test_suites: [ 317 "general-tests", 318 "mts-dnsresolver", 319 ], 320 defaults: [ 321 "connectivity-mainline-presubmit-cc-defaults", 322 "netd_defaults", 323 "resolv_test_defaults", 324 "resolv_test_mts_coverage_without_root_defaults", 325 ], 326 header_libs: [ 327 "libnetd_resolv_internal_headers", 328 ], 329 srcs: ["doh_ffi_test.cpp"], 330 static_libs: [ 331 "libcrypto_static", 332 "libdoh_ffi_for_test", 333 "libgmock", 334 "libnetdutils", 335 "libssl", 336 ], 337 shared_libs: [ 338 "libnetd_client", 339 ], 340} 341 342cc_defaults { 343 name: "resolv_fuzzer_defaults", 344 defaults: [ 345 "netd_defaults", 346 "resolv_test_defaults", 347 ], 348 srcs: [ 349 "doh_frontend.cpp", 350 "fuzzer/resolv_fuzzer_utils.cpp", 351 ], 352 header_libs: [ 353 "libnetd_resolv_headers", 354 "dnsproxyd_protocol_headers", 355 ], 356 shared_libs: [ 357 "libbinder_ndk", 358 ], 359 static_libs: [ 360 "dnsresolver_aidl_interface-lateststable-ndk", 361 "libcrypto_static", 362 "libdoh_fuzz_ffi", 363 "libgtest", 364 "libnetdutils", 365 "libnetd_resolv", 366 "libnetd_test_dnsresponder_ndk", 367 "libnetd_test_resolv_utils", 368 "libprotobuf-cpp-lite", 369 "libssl", 370 "libsysutils", 371 "netd_aidl_interface-lateststable-ndk", 372 "netd_event_listener_interface-lateststable-ndk", 373 "server_configurable_flags", 374 "stats_proto", 375 ], 376 target: { 377 android: { 378 shared_libs: [ 379 "libutils", 380 ], 381 }, 382 host: { 383 static_libs: [ 384 "libutils", 385 ], 386 }, 387 }, 388 fuzz_config: { 389 cc: [ 390 "cken@google.com", 391 "kfcchen@google.com", 392 ], 393 componentid: 31808, // Android > Android OS & Apps > Systems > core networking 394 }, 395} 396 397cc_fuzz { 398 name: "resolv_gethostbyname_fuzzer", 399 defaults: ["resolv_fuzzer_defaults"], 400 srcs: ["fuzzer/resolv_gethostbyname_fuzzer.cpp"], 401} 402 403cc_fuzz { 404 name: "resolv_gethostbyaddr_fuzzer", 405 defaults: ["resolv_fuzzer_defaults"], 406 srcs: ["fuzzer/resolv_gethostbyaddr_fuzzer.cpp"], 407} 408 409cc_fuzz { 410 name: "resolv_getaddrinfo_fuzzer", 411 defaults: ["resolv_fuzzer_defaults"], 412 srcs: ["fuzzer/resolv_getaddrinfo_fuzzer.cpp"], 413} 414 415cc_fuzz { 416 name: "resolv_service_fuzzer", 417 defaults: [ 418 "resolv_fuzzer_defaults", 419 ], 420 static_libs: [ 421 "libstatslog_resolv", 422 "libstatspush_compat", 423 "libbase", 424 "libbinder_random_parcel", 425 "libcutils", 426 ], 427 target: { 428 android: { 429 shared_libs: [ 430 "libbinder_ndk", 431 "libbinder", 432 ], 433 }, 434 host: { 435 static_libs: [ 436 "libbinder_ndk", 437 "libbinder", 438 ], 439 }, 440 darwin: { 441 enabled: false, 442 }, 443 }, 444 fuzz_config: { 445 cc: [ 446 "smoreland@google.com", 447 "waghpawan@google.com", 448 ], 449 // Adds bugs to hotlist "AIDL fuzzer bugs" on buganizer 450 hotlists: ["4637097"], 451 }, 452 srcs: ["fuzzer/resolv_service_fuzzer.cpp"], 453} 454