Android.mk revision b687ad3c3491fffe22507cafc9347e10cbf6bd31
1cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# 2cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# Copyright (C) 2012 The Android Open Source Project 3cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# 4cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# Licensed under the Apache License, Version 2.0 (the "License"); 5cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# you may not use this file except in compliance with the License. 6cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# You may obtain a copy of the License at 7cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# 8cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# http://www.apache.org/licenses/LICENSE-2.0 9cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# 10cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# Unless required by applicable law or agreed to in writing, software 11cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# distributed under the License is distributed on an "AS IS" BASIS, 12cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# See the License for the specific language governing permissions and 14cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# limitations under the License. 155ac9eee1d3291a0d203a125849b4636a11c0d124Benoit Goby# 165ac9eee1d3291a0d203a125849b4636a11c0d124Benoit Goby 175ac9eee1d3291a0d203a125849b4636a11c0d124Benoit Gobyifneq ($(BUILD_TINY_ANDROID), true) 18cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes 19cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott HughesLOCAL_PATH := $(call my-dir) 20cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes 217be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 227be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Benchmarks. 237be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 247be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes 257be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughesbenchmark_c_flags = \ 267be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes -O2 \ 277be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes -Wall -Wextra \ 287be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes -Werror \ 299edb3e004b487e08cbbb54f2af18b15241550513Elliott Hughes -fno-builtin \ 307be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes 317be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughesbenchmark_src_files = \ 327be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes benchmark_main.cpp \ 339edb3e004b487e08cbbb54f2af18b15241550513Elliott Hughes math_benchmark.cpp \ 34b27e200ad6170ba3163f5ae6ba581bdaabb2e696Colin Cross property_benchmark.cpp \ 357be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes string_benchmark.cpp \ 364a05bef4c06dac05f1c9aa8cfc5b7e7dd6642385Elliott Hughes time_benchmark.cpp \ 377be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes 387be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Build benchmarks for the device (with bionic's .so). Run with: 397be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# adb shell bionic-benchmarks 407be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughesinclude $(CLEAR_VARS) 417be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_MODULE := bionic-benchmarks 427be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 437be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_CFLAGS += $(benchmark_c_flags) 447be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_C_INCLUDES += external/stlport/stlport bionic/ bionic/libstdc++/include 457be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_SHARED_LIBRARIES += libstlport 467be369d4c60e9df2316fdb6c73181a40020abef2Elliott HughesLOCAL_SRC_FILES := $(benchmark_src_files) 477be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughesinclude $(BUILD_EXECUTABLE) 487be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes 497be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 507be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Unit tests. 517be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 527be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes 53ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughestest_c_flags = \ 54dcab1b2c76a498c56bc00024613386de8b4b2aaeNick Kralevich -fstack-protector-all \ 55ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughes -g \ 56ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughes -Wall -Wextra \ 57ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughes -Werror \ 58a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes -fno-builtin \ 59ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughes 60cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughestest_src_files = \ 61b687ad3c3491fffe22507cafc9347e10cbf6bd31Christopher Ferris buffer_tests.cpp \ 62063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes dirent_test.cpp \ 638baa929d5d3bcf63381cf78ba76168c80c303f5eKito Cheng eventfd_test.cpp \ 64062092543fdbd6fa2676e4f5b37a15f7bba94332Elliott Hughes fcntl_test.cpp \ 6590e10d41c4271a5d517f60f4ff1d2891b8ccc034Elliott Hughes fenv_test.cpp \ 662c5153b043b44e9935a334ae9b2d5a4bc5258b40Nick Kralevich getauxval_test.cpp \ 6704a83a48ed89f433c78e31106ed50059764797a0Elliott Hughes getcwd_test.cpp \ 6874f0833df6d04d51eb4e554845862ed7279f78b0Elliott Hughes inttypes_test.cpp \ 698f2a5a0b40fc82126c691d5c30131d908772aab7Elliott Hughes libc_logging_test.cpp \ 7058b575485c446f9d76ee00f67516ed42cf017769Elliott Hughes libgen_test.cpp \ 71885f3b9cad01b8158aadc55c159c17dbf34f622cChristopher Ferris malloc_test.cpp \ 72a0ee07829a9ba7e99ef68e8c12551301cc797f0fElliott Hughes math_test.cpp \ 73d3b9d11369ee15dc0ce512014284c3c5432f2813Elliott Hughes netdb_test.cpp \ 74bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott Hughes pthread_test.cpp \ 75cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes regex_test.cpp \ 7653bfdae4ffdbd43d0c019d1a35af1f8477a272c9Elliott Hughes sched_test.cpp \ 77da73f655fcbac6e1a8bfd35303cef6f41187d12bElliott Hughes signal_test.cpp \ 78ad88a0863110798cef5169dcf917e18b967a7cf6Elliott Hughes stack_protector_test.cpp \ 79c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikov stack_unwinding_test.cpp \ 8006040fd75c1edff9e5ffb2b3d3e2a6e66d57c11dElliott Hughes statvfs_test.cpp \ 8191875dcd6e17b7f3b251efe9b236b905ef414ddeElliott Hughes stdio_test.cpp \ 82774c7f54ff375d71106283d42779b0cc5f238f87Elliott Hughes stdlib_test.cpp \ 83b5f053b5a7deb084e7a052d527e0aa41339ae05cIrina Tirdea string_test.cpp \ 8473964c592c8d23901e9479893dfbd3d0f25bab04Elliott Hughes strings_test.cpp \ 852a54e5ecd0a96398e8d7d9b1629ecf8fb1633a2bKenny Root stubs_test.cpp \ 8611952073af22568bba0b661f7a9d4402c443a888Elliott Hughes sys_epoll_test.cpp \ 875b9310e502003e584bcb3a028ca3db7aa4d3f01bElliott Hughes sys_select_test.cpp \ 88b4f7616fd618875768b8fffc122b58bdb84a9969Elliott Hughes sys_sendfile_test.cpp \ 89d0be7c8f9a06b3ca8ea7647ea35c8f9dc63f0fe1Elliott Hughes sys_stat_test.cpp \ 90e61dc71efca544f4066a93706b639a29b3600229Elliott Hughes sys_syscall_test.cpp \ 91f8fcfbc85a3ce3e195626b90736d3a484331494bElliott Hughes sys_time_test.cpp \ 92b27e200ad6170ba3163f5ae6ba581bdaabb2e696Colin Cross system_properties_test.cpp \ 93e0175ca7e440a87e9d03f249fc8f210063df7908Elliott Hughes time_test.cpp \ 94a55f63083fb16b2595f517a3260083e5f8cddd02Elliott Hughes unistd_test.cpp \ 95cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes 96acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaotest_dynamic_ldflags = -Wl,--export-dynamic -Wl,-u,DlSymTestFunction 97acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaotest_dynamic_src_files = \ 98e66190d2a97a713ae4b4786e60ca3d67ab8aa192Elliott Hughes dlfcn_test.cpp \ 99acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhao 1005bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichtest_fortify_static_libraries = \ 1015bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich fortify1-tests-gcc fortify2-tests-gcc fortify1-tests-clang fortify2-tests-clang 1025bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich 103c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikovinclude $(CLEAR_VARS) 104c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_MODULE := bionic-unit-tests-unwind-test-impl 105c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_CFLAGS += $(test_c_flags) -fexceptions -fnon-call-exceptions 106c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_SRC_FILES := stack_unwinding_test_impl.c 107c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikovinclude $(BUILD_STATIC_LIBRARY) 108c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikov 109c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikovinclude $(CLEAR_VARS) 110c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_MODULE := bionic-unit-tests-unwind-test-impl-host 111c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_CFLAGS += $(test_c_flags) -fexceptions -fnon-call-exceptions 112c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_SRC_FILES := stack_unwinding_test_impl.c 113c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikovinclude $(BUILD_HOST_STATIC_LIBRARY) 114c45087bffa528c0809f0df2e0a3708eba7018b33Sergey Melnikov 1157be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Build tests for the device (with bionic's .so). Run with: 116cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests 117cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughesinclude $(CLEAR_VARS) 1187b841f3b4ad121dd64f639c1858b42defffd60bdJoe OnoratoLOCAL_MODULE := bionic-unit-tests 1192e8f4345dfe16e64d7a3c26f688f17f2b48b2dd1Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 120ad88a0863110798cef5169dcf917e18b967a7cf6Elliott HughesLOCAL_CFLAGS += $(test_c_flags) 121acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_LDFLAGS += $(test_dynamic_ldflags) 122acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_SHARED_LIBRARIES += libdl 123acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_SRC_FILES := $(test_src_files) $(test_dynamic_src_files) 1245bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_WHOLE_STATIC_LIBRARIES := $(test_fortify_static_libraries) 125c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_STATIC_LIBRARIES += bionic-unit-tests-unwind-test-impl 126cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughesinclude $(BUILD_NATIVE_TEST) 127cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes 1287be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Build tests for the device (with bionic's .a). Run with: 129bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott Hughes# adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static 130bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott Hughesinclude $(CLEAR_VARS) 131bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott HughesLOCAL_MODULE := bionic-unit-tests-static 132bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 133acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_FORCE_STATIC_EXECUTABLE := true 134153d92765bb693541abf49a2a1d31335e2c90348Christopher FerrisLOCAL_WHOLE_STATIC_LIBRARIES += libBionicTests 1358240bed918722944c9985bc0cca89eb44c4f6c91Christopher FerrisLOCAL_STATIC_LIBRARIES += libstlport_static libstdc++ libm libc 136bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott Hughesinclude $(BUILD_NATIVE_TEST) 137bfeab1bbe7e8d0c08b7e3f46aedab64e3b2bf706Elliott Hughes 1387be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 139153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris# We build the static unit tests as a library so they can be used both for 140153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris# bionic-unit-tests-static and also as part of CTS. 141153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris# ----------------------------------------------------------------------------- 142153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris 143153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferrisinclude $(CLEAR_VARS) 144153d92765bb693541abf49a2a1d31335e2c90348Christopher FerrisLOCAL_MODULE := libBionicTests 145153d92765bb693541abf49a2a1d31335e2c90348Christopher FerrisLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 146153d92765bb693541abf49a2a1d31335e2c90348Christopher FerrisLOCAL_CFLAGS += $(test_c_flags) 147153d92765bb693541abf49a2a1d31335e2c90348Christopher FerrisLOCAL_SRC_FILES := $(test_src_files) 1488240bed918722944c9985bc0cca89eb44c4f6c91Christopher FerrisLOCAL_CFLAGS += \ 1498240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris -DGTEST_OS_LINUX_ANDROID \ 1508240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris -DGTEST_HAS_STD_STRING \ 1518240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris 1528240bed918722944c9985bc0cca89eb44c4f6c91Christopher FerrisLOCAL_C_INCLUDES += \ 1538240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris bionic bionic/libstdc++/include \ 1548240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris external/gtest/include \ 1558240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris external/stlport/stlport \ 1568240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris 1578240bed918722944c9985bc0cca89eb44c4f6c91Christopher FerrisLOCAL_WHOLE_STATIC_LIBRARIES := \ 1588240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris $(test_fortify_static_libraries) \ 1598240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris bionic-unit-tests-unwind-test-impl \ 1608240bed918722944c9985bc0cca89eb44c4f6c91Christopher Ferris 161153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferrisinclude $(BUILD_STATIC_LIBRARY) 162153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris 163153d92765bb693541abf49a2a1d31335e2c90348Christopher Ferris# ----------------------------------------------------------------------------- 1647be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Test library for the unit tests. 1657be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 166124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughes 167124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughes# Build no-elf-hash-table-library.so to test dlopen(3) on a library that 168a43e906221a3e9c70a66118a8692cd46f77e144eElliott Hughes# only has a GNU-style hash table. MIPS doesn't support GNU hash style. 169a43e906221a3e9c70a66118a8692cd46f77e144eElliott Hughesifneq ($(TARGET_ARCH),mips) 170124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughesinclude $(CLEAR_VARS) 171124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott HughesLOCAL_MODULE := no-elf-hash-table-library 172124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 173124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott HughesLOCAL_SRC_FILES := empty.cpp 174124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott HughesLOCAL_LDFLAGS := -Wl,--hash-style=gnu 175124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughesinclude $(BUILD_SHARED_LIBRARY) 176a43e906221a3e9c70a66118a8692cd46f77e144eElliott Hughesendif 177124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughes 1787be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 1797be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Unit tests built against glibc. 1807be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# ----------------------------------------------------------------------------- 181124fae9eabd7a25d80dfa8c3b56bed0f0fba16f1Elliott Hughes 1827be369d4c60e9df2316fdb6c73181a40020abef2Elliott Hughes# Build tests for the host (with glibc). 183cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# Note that this will build against glibc, so it's not useful for testing 184cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# bionic's implementation, but it does let you use glibc as a reference 185cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughes# implementation for testing the tests themselves. 18638bfa21695b19c21784d2074de30d5d102f08972Elliott Hughesifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86) 187cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughesinclude $(CLEAR_VARS) 1887b841f3b4ad121dd64f639c1858b42defffd60bdJoe OnoratoLOCAL_MODULE := bionic-unit-tests-glibc 1892e8f4345dfe16e64d7a3c26f688f17f2b48b2dd1Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 190ad88a0863110798cef5169dcf917e18b967a7cf6Elliott HughesLOCAL_CFLAGS += $(test_c_flags) 1919b06cc3c1b2c4e2b08582f3fc9393a05aa589766Jeff HaoLOCAL_LDFLAGS += -lpthread -ldl -lrt 192acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_LDFLAGS += $(test_dynamic_ldflags) 193acf5aa76a56f101607aeb8e6d1fbea24d0d4f68cjeffhaoLOCAL_SRC_FILES := $(test_src_files) $(test_dynamic_src_files) 194c45087bffa528c0809f0df2e0a3708eba7018b33Sergey MelnikovLOCAL_STATIC_LIBRARIES += bionic-unit-tests-unwind-test-impl-host 195cc213f871bf4c5329eb5eb7a80a0ce9d4a880af8Elliott Hughesinclude $(BUILD_HOST_NATIVE_TEST) 196b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris 197b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris# gtest needs ANDROID_DATA/local/tmp for death test output. 198b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris# Make sure to create ANDROID_DATA/local/tmp if doesn't exist. 199b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris# Use the current target out directory as ANDROID_DATA. 200b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferrisbionic-unit-tests-glibc-run: bionic-unit-tests-glibc 201b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris mkdir -p $(TARGET_OUT_DATA)/local/tmp 202b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris ANDROID_DATA=$(TARGET_OUT_DATA) \ 203b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris ANDROID_ROOT=$(TARGET_OUT) \ 204b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris $(HOST_OUT_EXECUTABLES)/bionic-unit-tests-glibc 20538bfa21695b19c21784d2074de30d5d102f08972Elliott Hughesendif 2065ac9eee1d3291a0d203a125849b4636a11c0d124Benoit Goby 20716d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# ----------------------------------------------------------------------------- 208f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin# Run the unit tests built against x86 bionic on an x86 host. 209f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin# ----------------------------------------------------------------------------- 210f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin 211f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupinifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86) 21217558dec7fc60775c940be0e494b42829f35e0b1Pavel Chupinifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64)) 213f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupinifeq ($(TARGET_ARCH),x86) 21417558dec7fc60775c940be0e494b42829f35e0b1Pavel ChupinLINKER = linker 21517558dec7fc60775c940be0e494b42829f35e0b1Pavel Chupinelse 21617558dec7fc60775c940be0e494b42829f35e0b1Pavel ChupinLINKER = linker64 21717558dec7fc60775c940be0e494b42829f35e0b1Pavel Chupinendif 218b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris# gtest needs ANDROID_DATA/local/tmp for death test output. 219b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris# Make sure to create ANDROID_DATA/local/tmp if doesn't exist. 220f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin# bionic itself should always work relative to ANDROID_DATA or ANDROID_ROOT. 22117558dec7fc60775c940be0e494b42829f35e0b1Pavel Chupinbionic-unit-tests-run-on-host: bionic-unit-tests $(TARGET_OUT_EXECUTABLES)/$(LINKER) $(TARGET_OUT_EXECUTABLES)/sh 222b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris if [ ! -d /system -o ! -d /system/bin ]; then \ 223b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris echo "Attempting to create /system/bin"; \ 224b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris sudo mkdir -p -m 0777 /system/bin; \ 225b38e4d536f6592cf22b984c143ee6790d6df2351Christopher Ferris fi 226f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin mkdir -p $(TARGET_OUT_DATA)/local/tmp 22717558dec7fc60775c940be0e494b42829f35e0b1Pavel Chupin cp $(TARGET_OUT_EXECUTABLES)/$(LINKER) /system/bin 228e60c4f0a6cb5836caa8d0de299cc83fe4b13744cElliott Hughes cp $(TARGET_OUT_EXECUTABLES)/sh /system/bin 229f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin ANDROID_DATA=$(TARGET_OUT_DATA) \ 230f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin ANDROID_ROOT=$(TARGET_OUT) \ 231f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin LD_LIBRARY_PATH=$(TARGET_OUT_SHARED_LIBRARIES) \ 232f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin $(TARGET_OUT_DATA_NATIVE_TESTS)/bionic-unit-tests/bionic-unit-tests 233f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupinendif 234f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupinendif 235f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin 236f22fb68751c4040f3335cb0bd2d47f87c3ee1aacPavel Chupin# ----------------------------------------------------------------------------- 2375bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich# FORTIFY_SOURCE tests 23816d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# ----------------------------------------------------------------------------- 2395bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich 2405bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichfortify_c_includes = \ 2415bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich bionic \ 2425bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich bionic/libstdc++/include \ 2435bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich external/stlport/stlport \ 2445bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich external/gtest/include 2455bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichfortify_test_files = fortify_test.cpp 24616d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich 24716d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# -Wno-error=unused-parameter needed as 24816d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# external/stlport/stlport/stl/_threads.c (included from 24916d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# external/gtest/include/gtest/gtest.h) does not compile cleanly under 25016d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich# clang. TODO: fix this. 2515bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichfortify_c_flags = $(test_c_flags) -Wno-error=unused-parameter 2525bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich 2535bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(CLEAR_VARS) 2545bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_SRC_FILES := $(fortify_test_files) 2555bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_MODULE := fortify1-tests-gcc 2565bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CFLAGS += $(fortify_c_flags) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DTEST_NAME=Fortify1_Gcc 2575bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 2585bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_C_INCLUDES += $(fortify_c_includes) 2595bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(BUILD_STATIC_LIBRARY) 2605bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevich 2615bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(CLEAR_VARS) 2625bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_SRC_FILES := $(fortify_test_files) 2635bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_MODULE := fortify2-tests-gcc 2645bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CFLAGS += $(fortify_c_flags) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DTEST_NAME=Fortify2_Gcc 2655bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 2665bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_C_INCLUDES += $(fortify_c_includes) 2675bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(BUILD_STATIC_LIBRARY) 26816d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich 2695bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(CLEAR_VARS) 2705bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_SRC_FILES := $(fortify_test_files) 2715bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_MODULE := fortify1-tests-clang 2725bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CLANG := true 2735bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CFLAGS += $(fortify_c_flags) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DTEST_NAME=Fortify1_Clang 27416d1af167f8e36a9aa4a07ae77034ad519b00463Nick KralevichLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 2755bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_C_INCLUDES += $(fortify_c_includes) 2765bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(BUILD_STATIC_LIBRARY) 27716d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich 2785bcf39842e8c4b02ae557a2765a84e724f762469Nick Kralevichinclude $(CLEAR_VARS) 2795bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_SRC_FILES := $(fortify_test_files) 2805bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_MODULE := fortify2-tests-clang 2815bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CLANG := true 2825bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_CFLAGS += $(fortify_c_flags) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DTEST_NAME=Fortify2_Clang 2835bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 2845bcf39842e8c4b02ae557a2765a84e724f762469Nick KralevichLOCAL_C_INCLUDES += $(fortify_c_includes) 28516d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevichinclude $(BUILD_STATIC_LIBRARY) 28616d1af167f8e36a9aa4a07ae77034ad519b00463Nick Kralevich 2875ac9eee1d3291a0d203a125849b4636a11c0d124Benoit Gobyendif # !BUILD_TINY_ANDROID 288