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