• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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