OSDN Git Service

Revert "move android_ids into bionic"
[android-x86/bionic.git] / tests / Android.bp
1 //
2 // Copyright (C) 2012 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 cc_defaults {
18     name: "bionic_tests_defaults",
19     host_supported: true,
20     target: {
21         darwin: {
22             enabled: false,
23         },
24     },
25     cflags: [
26         "-fstack-protector-all",
27         "-g",
28         "-Wall",
29         "-Wextra",
30         "-Wunused",
31         "-Werror",
32         "-fno-builtin",
33
34         // We want to test deprecated API too.
35         "-Wno-deprecated-declarations",
36
37         // For glibc.
38         "-D__STDC_LIMIT_MACROS",
39     ],
40     stl: "libc++",
41     sanitize: {
42         never: true,
43     },
44 }
45
46 // -----------------------------------------------------------------------------
47 // All standard tests.
48 // -----------------------------------------------------------------------------
49
50 cc_test_library {
51     name: "libBionicStandardTests",
52     defaults: ["bionic_tests_defaults"],
53     srcs: [
54         "arpa_inet_test.cpp",
55         "assert_test.cpp",
56         "buffer_tests.cpp",
57         "bug_26110743_test.cpp",
58         "complex_test.cpp",
59         "ctype_test.cpp",
60         "dirent_test.cpp",
61         "error_test.cpp",
62         "eventfd_test.cpp",
63         "fcntl_test.cpp",
64         "fenv_test.cpp",
65         "ftw_test.cpp",
66         "getauxval_test.cpp",
67         "getcwd_test.cpp",
68         "grp_pwd_test.cpp",
69         "ifaddrs_test.cpp",
70         "inttypes_test.cpp",
71         "langinfo_test.cpp",
72         "libc_logging_test.cpp",
73         "libgen_basename_test.cpp",
74         "libgen_test.cpp",
75         "locale_test.cpp",
76         "malloc_test.cpp",
77         "math_test.cpp",
78         "mntent_test.cpp",
79         "netdb_test.cpp",
80         "net_if_test.cpp",
81         "netinet_ether_test.cpp",
82         "netinet_in_test.cpp",
83         "netinet_udp_test.cpp",
84         "nl_types_test.cpp",
85         "pthread_test.cpp",
86         "pty_test.cpp",
87         "regex_test.cpp",
88         "resolv_test.cpp",
89         "sched_test.cpp",
90         "search_test.cpp",
91         "semaphore_test.cpp",
92         "setjmp_test.cpp",
93         "signal_test.cpp",
94         "stack_protector_test.cpp",
95         "stack_protector_test_helper.cpp",
96         "stack_unwinding_test.cpp",
97         "stdatomic_test.cpp",
98         "stdint_test.cpp",
99         "stdio_nofortify_test.cpp",
100         "stdio_test.cpp",
101         "stdio_ext_test.cpp",
102         "stdlib_test.cpp",
103         "string_nofortify_test.cpp",
104         "string_test.cpp",
105         "string_posix_strerror_r_test.cpp",
106         "strings_nofortify_test.cpp",
107         "strings_test.cpp",
108         "sstream_test.cpp",
109         "sys_epoll_test.cpp",
110         "sys_mman_test.cpp",
111         "sys_msg_test.cpp",
112         "sys_personality_test.cpp",
113         "sys_prctl_test.cpp",
114         "sys_procfs_test.cpp",
115         "sys_ptrace_test.cpp",
116         "sys_quota_test.cpp",
117         "sys_resource_test.cpp",
118         "sys_select_test.cpp",
119         "sys_sem_test.cpp",
120         "sys_sendfile_test.cpp",
121         "sys_shm_test.cpp",
122         "sys_socket_test.cpp",
123         "sys_stat_test.cpp",
124         "sys_statvfs_test.cpp",
125         "sys_syscall_test.cpp",
126         "sys_sysinfo_test.cpp",
127         "sys_sysmacros_test.cpp",
128         "sys_time_test.cpp",
129         "sys_timex_test.cpp",
130         "sys_types_test.cpp",
131         "sys_uio_test.cpp",
132         "sys_vfs_test.cpp",
133         "sys_xattr_test.cpp",
134         "system_properties_test.cpp",
135         "time_test.cpp",
136         "uchar_test.cpp",
137         "unistd_nofortify_test.cpp",
138         "unistd_test.cpp",
139         "utmp_test.cpp",
140         "wchar_test.cpp",
141         "wctype_test.cpp",
142     ],
143
144     include_dirs: [
145         "bionic/libc",
146         "external/tinyxml2",
147     ],
148
149     static_libs: [
150         "libtinyxml2",
151         "liblog",
152         "libbase",
153     ],
154     host_ldlibs: ["-lrt"],
155     shared: {
156         enabled: false,
157     },
158 }
159
160 // -----------------------------------------------------------------------------
161 // Fortify tests.
162 // -----------------------------------------------------------------------------
163
164 cc_defaults {
165     name: "bionic_fortify_tests_defaults",
166     cflags: [
167         "-Wno-error",
168         "-U_FORTIFY_SOURCE",
169     ],
170     srcs: ["fortify_test_main.cpp"],
171     target: {
172         host: {
173             clang_cflags: ["-D__clang__"],
174         },
175     },
176 }
177
178 cc_test_library {
179     name: "libfortify1-tests-gcc",
180     defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
181     clang: false,
182     cflags: [
183         "-D_FORTIFY_SOURCE=1",
184         "-DTEST_NAME=Fortify1_gcc"
185     ],
186     shared: {
187         enabled: false,
188     },
189 }
190
191 cc_test_library {
192     name: "libfortify2-tests-gcc",
193     defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
194     clang: false,
195     cflags: [
196         "-D_FORTIFY_SOURCE=2",
197         "-DTEST_NAME=Fortify2_gcc"
198     ],
199     shared: {
200         enabled: false,
201     },
202 }
203
204 cc_test_library {
205     name: "libfortify1-tests-clang",
206     defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
207     clang: true,
208     cflags: [
209         "-D_FORTIFY_SOURCE=1",
210         "-DTEST_NAME=Fortify1_clang"
211     ],
212     shared: {
213         enabled: false,
214     },
215 }
216
217 cc_test_library {
218     name: "libfortify2-tests-clang",
219     defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
220     clang: true,
221     cflags: [
222         "-D_FORTIFY_SOURCE=2",
223         "-DTEST_NAME=Fortify2_clang"
224     ],
225     shared: {
226         enabled: false,
227     },
228 }
229
230 // -----------------------------------------------------------------------------
231 // Library of all tests (excluding the dynamic linker tests).
232 // -----------------------------------------------------------------------------
233 cc_test_library {
234     name: "libBionicTests",
235     defaults: ["bionic_tests_defaults"],
236     whole_static_libs: [
237         "libBionicStandardTests",
238         "libfortify1-tests-gcc",
239         "libfortify2-tests-gcc",
240         "libfortify1-tests-clang",
241         "libfortify2-tests-clang",
242     ],
243     shared: {
244         enabled: false,
245     },
246 }
247
248 // -----------------------------------------------------------------------------
249 // Library of bionic customized gtest main function, with simplified output format.
250 // -----------------------------------------------------------------------------
251 cc_test_library {
252     name: "libBionicGtestMain",
253     defaults: ["bionic_tests_defaults"],
254     srcs: [
255         "gtest_main.cpp",
256         "gtest_globals.cpp",
257     ],
258     static_libs: [
259         "libbase",
260     ],
261     include_dirs: [
262         "bionic/libc",
263     ],
264     target: {
265         darwin: {
266             enabled: true,
267         },
268     },
269     shared: {
270         enabled: false,
271     },
272 }
273
274 cc_test_library {
275     name: "libBionicLoaderTests",
276     defaults: ["bionic_tests_defaults"],
277     srcs: [
278         "atexit_test.cpp",
279         "dl_test.cpp",
280         "dlfcn_symlink_support.cpp",
281         "dlfcn_test.cpp",
282         "pthread_dlfcn_test.cpp",
283     ],
284     static_libs: [
285         "libbase",
286     ],
287     include_dirs: [
288         "bionic/libc",
289     ],
290     shared: {
291         enabled: false,
292     },
293     target: {
294         android: {
295             srcs: [
296                 "dlext_test.cpp",
297                 "libdl_test.cpp",
298             ],
299             static_libs: [
300                 "libpagemap",
301             ],
302         }
303     }
304 }
305
306 // -----------------------------------------------------------------------------
307 // Library of bionic customized gtest main function, with normal gtest output format,
308 // which is needed by bionic cts test.
309 // -----------------------------------------------------------------------------
310 cc_test_library {
311     name: "libBionicCtsGtestMain",
312     defaults: ["bionic_tests_defaults"],
313     srcs: [
314         "gtest_main.cpp",
315         "gtest_globals_cts.cpp",
316     ],
317     cppflags: ["-DUSING_GTEST_OUTPUT_FORMAT"],
318     shared: {
319         enabled: false,
320     },
321 }
322
323 // -----------------------------------------------------------------------------
324 // Tests for the device using bionic's .so. Run with:
325 //   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests32
326 //   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests64
327 //   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc32
328 //   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc64
329 // -----------------------------------------------------------------------------
330 cc_defaults {
331     name: "bionic_unit_tests_defaults",
332     host_supported: false,
333
334     whole_static_libs: [
335         "libBionicTests",
336         "libBionicLoaderTests",
337         "libBionicGtestMain",
338     ],
339
340     static_libs: [
341         "libtinyxml2",
342         "liblog",
343         "libbase",
344     ],
345
346     srcs: [
347         // TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
348         "__cxa_thread_atexit_test.cpp",
349         "thread_local_test.cpp",
350     ],
351
352     conlyflags: [
353         "-fexceptions",
354         "-fnon-call-exceptions",
355     ],
356
357     ldflags: ["-Wl,--export-dynamic"],
358
359     include_dirs: ["bionic/libc"],
360
361     target: {
362         android: {
363             shared_libs: [
364                 "libdl",
365                 "libdl_preempt_test_1",
366                 "libdl_preempt_test_2",
367                 "libdl_test_df_1_global",
368             ],
369             static_libs: [
370                 // The order of these libraries matters, do not shuffle them.
371                 "libbase",
372                 "libpagemap",
373                 "libziparchive",
374                 "libz",
375                 "libutils",
376             ],
377             ldflags: [
378                 "-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
379                 "-Wl,--enable-new-dtags",
380             ],
381         },
382     }
383 }
384
385 cc_test {
386     name: "bionic-unit-tests",
387     defaults: ["bionic_unit_tests_defaults", "bionic_tests_defaults"],
388     clang: true,
389
390     target: {
391         android: {
392             shared_libs: ["libicuuc"],
393         },
394     },
395 }
396
397 cc_test {
398     name: "bionic-unit-tests-gcc",
399     defaults: ["bionic_unit_tests_defaults", "bionic_tests_defaults"],
400     clang: false,
401 }
402
403 // -----------------------------------------------------------------------------
404 // Tests for the device linked against bionic's static library. Run with:
405 //   adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static32
406 //   adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static64
407 // -----------------------------------------------------------------------------
408 cc_test {
409     name: "bionic-unit-tests-static",
410     defaults: ["bionic_tests_defaults"],
411     host_supported: false,
412
413     whole_static_libs: [
414         "libBionicTests",
415         "libBionicGtestMain",
416     ],
417
418     static_libs: [
419         "libm",
420         "libc",
421         "libc++_static",
422         "libdl",
423         "libtinyxml2",
424         "liblog",
425         "libbase",
426     ],
427
428     static_executable: true,
429     stl: "libc++_static",
430
431     // libc and libc++ both define std::nothrow. libc's is a private symbol, but this
432     // still causes issues when linking libc.a and libc++.a, since private isn't
433     // effective until it has been linked. To fix this, just allow multiple symbol
434     // definitions for the static tests.
435     ldflags: ["-Wl,--allow-multiple-definition"],
436 }
437
438 // -----------------------------------------------------------------------------
439 // Tests to run on the host and linked against glibc. Run with:
440 //   cd bionic/tests; mm bionic-unit-tests-glibc-run
441 // -----------------------------------------------------------------------------
442
443 cc_test_host {
444     name: "bionic-unit-tests-glibc",
445     defaults: ["bionic_tests_defaults"],
446
447     srcs: [
448         "atexit_test.cpp",
449         "dlfcn_symlink_support.cpp",
450         "dlfcn_test.cpp",
451         "dl_test.cpp",
452         "pthread_dlfcn_test.cpp",
453     ],
454
455     shared_libs: [
456         "libdl_preempt_test_1",
457         "libdl_preempt_test_2",
458
459         "libdl_test_df_1_global",
460     ],
461
462     whole_static_libs: [
463         "libBionicStandardTests",
464         "libBionicGtestMain",
465         "libfortify1-tests-gcc",
466         "libfortify2-tests-gcc",
467         "libfortify1-tests-clang",
468         "libfortify2-tests-clang",
469     ],
470
471     static_libs: [
472         "libbase",
473         "liblog",
474         "libcutils",
475     ],
476
477     host_ldlibs: [
478         "-lresolv",
479         "-lrt",
480         "-ldl",
481         "-lutil",
482     ],
483
484     include_dirs: ["bionic/libc"],
485
486     ldflags: [
487         "-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
488         "-Wl,--export-dynamic",
489     ],
490
491     sanitize: {
492         never: false,
493     },
494 }
495
496 subdirs = ["libs"]