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