Merge "Convert bionic benchmarks and tests to Android.bp"
This commit is contained in:
commit
55653cc33b
10 changed files with 1032 additions and 913 deletions
64
benchmarks/Android.bp
Normal file
64
benchmarks/Android.bp
Normal file
|
@ -0,0 +1,64 @@
|
|||
//
|
||||
// Copyright (C) 2013 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
cc_defaults {
|
||||
name: "bionic-benchmarks-defaults",
|
||||
cflags: [
|
||||
"-O2",
|
||||
"-fno-builtin",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Wunused",
|
||||
],
|
||||
srcs: [
|
||||
"math_benchmark.cpp",
|
||||
"property_benchmark.cpp",
|
||||
"pthread_benchmark.cpp",
|
||||
"semaphore_benchmark.cpp",
|
||||
"stdio_benchmark.cpp",
|
||||
"string_benchmark.cpp",
|
||||
"time_benchmark.cpp",
|
||||
"unistd_benchmark.cpp",
|
||||
],
|
||||
}
|
||||
|
||||
// Build benchmarks for the device (with bionic's .so). Run with:
|
||||
// adb shell bionic-benchmarks32
|
||||
// adb shell bionic-benchmarks64
|
||||
cc_benchmark {
|
||||
name: "bionic-benchmarks",
|
||||
defaults: ["bionic-benchmarks-defaults"],
|
||||
}
|
||||
|
||||
// We don't build a static benchmark executable because it's not usually
|
||||
// useful. If you're trying to run the current benchmarks on an older
|
||||
// release, it's (so far at least) always because you want to measure the
|
||||
// performance of the old release's libc, and a static benchmark isn't
|
||||
// going to let you do that.
|
||||
|
||||
// Build benchmarks for the host (against glibc!). Run with:
|
||||
cc_benchmark_host {
|
||||
name: "bionic-benchmarks-glibc",
|
||||
defaults: ["bionic-benchmarks-defaults"],
|
||||
host_ldlibs: ["-lrt"],
|
||||
target: {
|
||||
darwin: {
|
||||
// Only supported on linux systems.
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2013 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
benchmark_cflags := \
|
||||
-O2 \
|
||||
-fno-builtin \
|
||||
-Wall \
|
||||
-Wextra \
|
||||
-Werror \
|
||||
-Wunused \
|
||||
|
||||
benchmark_cppflags := \
|
||||
|
||||
benchmark_src_files := \
|
||||
math_benchmark.cpp \
|
||||
property_benchmark.cpp \
|
||||
pthread_benchmark.cpp \
|
||||
semaphore_benchmark.cpp \
|
||||
stdio_benchmark.cpp \
|
||||
string_benchmark.cpp \
|
||||
time_benchmark.cpp \
|
||||
unistd_benchmark.cpp \
|
||||
|
||||
# Build benchmarks for the device (with bionic's .so). Run with:
|
||||
# adb shell bionic-benchmarks32
|
||||
# adb shell bionic-benchmarks64
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := bionic-benchmarks
|
||||
LOCAL_MODULE_STEM_32 := bionic-benchmarks32
|
||||
LOCAL_MODULE_STEM_64 := bionic-benchmarks64
|
||||
LOCAL_MULTILIB := both
|
||||
LOCAL_CFLAGS := $(benchmark_cflags)
|
||||
LOCAL_CPPFLAGS := $(benchmark_cppflags)
|
||||
LOCAL_SRC_FILES := $(benchmark_src_files)
|
||||
include $(BUILD_NATIVE_BENCHMARK)
|
||||
|
||||
# We don't build a static benchmark executable because it's not usually
|
||||
# useful. If you're trying to run the current benchmarks on an older
|
||||
# release, it's (so far at least) always because you want to measure the
|
||||
# performance of the old release's libc, and a static benchmark isn't
|
||||
# going to let you do that.
|
||||
|
||||
# Only supported on linux systems.
|
||||
ifeq ($(HOST_OS),linux)
|
||||
|
||||
# Build benchmarks for the host (against glibc!). Run with:
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := bionic-benchmarks-glibc
|
||||
LOCAL_MODULE_STEM_32 := bionic-benchmarks-glibc32
|
||||
LOCAL_MODULE_STEM_64 := bionic-benchmarks-glibc64
|
||||
LOCAL_MULTILIB := both
|
||||
LOCAL_CFLAGS := $(benchmark_cflags)
|
||||
LOCAL_CPPFLAGS := $(benchmark_cppflags)
|
||||
LOCAL_LDFLAGS := -lrt
|
||||
LOCAL_SRC_FILES := $(benchmark_src_files)
|
||||
LOCAL_STATIC_LIBRARIES := libgoogle-benchmark
|
||||
# TODO: BUILD_HOST_NATIVE_BENCHMARK
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
|
||||
include $(LOCAL_PATH)/../build/run-on-host.mk
|
||||
|
||||
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
|
||||
bionic-benchmarks-run-on-host32: bionic-benchmarks bionic-prepare-run-on-host
|
||||
ANDROID_DATA=$(TARGET_OUT_DATA) \
|
||||
ANDROID_ROOT=$(TARGET_OUT) \
|
||||
$(TARGET_OUT_EXECUTABLES)/bionic-benchmarks32 $(BIONIC_BENCHMARKS_FLAGS)
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
bionic-benchmarks-run-on-host64: bionic-benchmarks bionic-prepare-run-on-host
|
||||
ANDROID_DATA=$(TARGET_OUT_DATA) \
|
||||
ANDROID_ROOT=$(TARGET_OUT) \
|
||||
$(TARGET_OUT_EXECUTABLES)/bionic-benchmarks64 $(BIONIC_BENCHMARKS_FLAGS)
|
||||
endif
|
||||
|
||||
endif
|
33
benchmarks/run-on-host.sh
Executable file
33
benchmarks/run-on-host.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
. $(dirname $0)/../build/run-on-host.sh
|
||||
|
||||
if [ "$1" = glibc ]; then
|
||||
m -j bionic-benchmarks-glibc
|
||||
(
|
||||
cd ${ANDROID_BUILD_TOP}
|
||||
export ANDROID_DATA=${TARGET_OUT_DATA}
|
||||
export ANDROID_ROOT=${TARGET_OUT}
|
||||
${HOST_OUT}/nativetest64/bionic-benchmarks-glibc/bionic-benchmarks-glibc $@
|
||||
)
|
||||
exit 0
|
||||
elif [ "$1" != 32 -a "$1" != 64 ]; then
|
||||
echo "Usage: $0 [ 32 | 64 | glibc ] [gtest flags]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ${HOST_OS}-${HOST_ARCH} = linux-x86 -o ${HOST_OS}-${HOST_ARCH} = linux-x86_64 ]; then
|
||||
|
||||
prepare $1 bionic-benchmarks
|
||||
|
||||
if [ ${TARGET_ARCH} = x86 -o ${TARGET_ARCH} = x86_64 ]; then
|
||||
(
|
||||
cd ${ANDROID_BUILD_TOP}
|
||||
export ANDROID_DATA=${TARGET_OUT_DATA}
|
||||
export ANDROID_ROOT=${TARGET_OUT}
|
||||
${NATIVETEST}/bionic-benchmarks/bionic-benchmarks $@
|
||||
)
|
||||
else
|
||||
echo "$0 not supported on TARGET_ARCH=$TARGET_ARCH"
|
||||
fi
|
||||
fi
|
|
@ -1,44 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Include once
|
||||
ifneq ($(bionic_run_on_host_mk_included),true)
|
||||
bionic_run_on_host_mk_included:=true
|
||||
|
||||
ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm mips x86))
|
||||
LINKER = linker64
|
||||
else
|
||||
LINKER = linker
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
|
||||
# gtest needs ANDROID_DATA/local/tmp for death test output.
|
||||
# Make sure to create ANDROID_DATA/local/tmp if doesn't exist.
|
||||
# bionic itself should always work relative to ANDROID_DATA or ANDROID_ROOT.
|
||||
bionic-prepare-run-on-host: $(TARGET_OUT_EXECUTABLES)/$(LINKER) $(TARGET_OUT)/etc/hosts $(TARGET_OUT_EXECUTABLES)/sh
|
||||
if [ ! -d /system ]; then \
|
||||
echo "Attempting to create /system"; \
|
||||
sudo mkdir -p -m 0777 /system; \
|
||||
fi
|
||||
mkdir -p $(TARGET_OUT_DATA)/local/tmp
|
||||
ln -fs `realpath $(TARGET_OUT)/bin` /system/
|
||||
ln -fs `realpath $(TARGET_OUT)/etc` /system/
|
||||
ln -fs `realpath $(TARGET_OUT)/lib` /system/
|
||||
if [ -d "$(TARGET_OUT)/lib64" ]; then \
|
||||
ln -fs `realpath $(TARGET_OUT)/lib64` /system/; \
|
||||
fi
|
||||
endif
|
||||
endif
|
47
build/run-on-host.sh
Normal file
47
build/run-on-host.sh
Normal file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
source ${ANDROID_BUILD_TOP}/build/envsetup.sh
|
||||
|
||||
TARGET_ARCH=$(get_build_var TARGET_ARCH)
|
||||
TARGET_OUT=$(get_build_var TARGET_OUT)
|
||||
TARGET_OUT_EXECUTABLES=$(get_build_var TARGET_OUT_EXECUTABLES)
|
||||
TARGET_OUT_DATA=$(get_build_var TARGET_OUT_DATA)
|
||||
HOST_OS=$(get_build_var HOST_OS)
|
||||
HOST_ARCH=$(get_build_var HOST_ARCH)
|
||||
HOST_OUT=$(get_build_var HOST_OUT)
|
||||
|
||||
function prepare()
|
||||
{
|
||||
BITS=$1
|
||||
shift
|
||||
|
||||
NATIVETEST=${TARGET_OUT_DATA}/nativetest
|
||||
if [ "${BITS}" = 64 ]; then
|
||||
NATIVETEST=${NATIVETEST}64
|
||||
fi
|
||||
|
||||
if [ ${TARGET_ARCH} = arm -o ${TARGET_ARCH} = mips -o ${TARGET_ARCH} = x86 ]; then
|
||||
LINKER=${TARGET_OUT_EXECUTABLES}/linker
|
||||
else
|
||||
LINKER="${TARGET_OUT_EXECUTABLES}/linker64 ${TARGET_OUT_EXECUTABLES}/linker"
|
||||
fi
|
||||
|
||||
if [ ${TARGET_ARCH} = x86 -o ${TARGET_ARCH} = x86_64 ]; then
|
||||
m -j ${LINKER} ${TARGET_OUT}/etc/hosts ${TARGET_OUT_EXECUTABLES}/sh $@
|
||||
|
||||
if [ ! -d /system ]; then
|
||||
echo "Attempting to create /system";
|
||||
sudo mkdir -p -m 0777 /system;
|
||||
fi
|
||||
(
|
||||
cd ${ANDROID_BUILD_TOP}
|
||||
mkdir -p ${TARGET_OUT_DATA}/local/tmp
|
||||
ln -fs `realpath ${TARGET_OUT}/bin` /system/
|
||||
ln -fs `realpath ${TARGET_OUT}/etc` /system/
|
||||
ln -fs `realpath ${TARGET_OUT}/lib` /system/
|
||||
if [ -d "${TARGET_OUT}/lib64" ]; then
|
||||
ln -fs `realpath ${TARGET_OUT}/lib64` /system/;
|
||||
fi
|
||||
)
|
||||
fi
|
||||
}
|
411
tests/Android.bp
Normal file
411
tests/Android.bp
Normal file
|
@ -0,0 +1,411 @@
|
|||
//
|
||||
// Copyright (C) 2012 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
cc_defaults {
|
||||
name: "bionic_tests_defaults",
|
||||
host_supported: true,
|
||||
target: {
|
||||
darwin: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
cflags: [
|
||||
"-fstack-protector-all",
|
||||
"-g",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Wunused",
|
||||
"-Werror",
|
||||
"-fno-builtin",
|
||||
|
||||
// We want to test deprecated API too.
|
||||
"-Wno-deprecated-declarations",
|
||||
|
||||
// For glibc.
|
||||
"-D__STDC_LIMIT_MACROS",
|
||||
],
|
||||
stl: "libc++",
|
||||
sanitize: {
|
||||
never: true,
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// All standard tests.
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
cc_test_library {
|
||||
name: "libBionicStandardTests",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
srcs: [
|
||||
"arpa_inet_test.cpp",
|
||||
"buffer_tests.cpp",
|
||||
"bug_26110743_test.cpp",
|
||||
"complex_test.cpp",
|
||||
"ctype_test.cpp",
|
||||
"dirent_test.cpp",
|
||||
"error_test.cpp",
|
||||
"eventfd_test.cpp",
|
||||
"fcntl_test.cpp",
|
||||
"fenv_test.cpp",
|
||||
"ftw_test.cpp",
|
||||
"getauxval_test.cpp",
|
||||
"getcwd_test.cpp",
|
||||
"grp_pwd_test.cpp",
|
||||
"ifaddrs_test.cpp",
|
||||
"inttypes_test.cpp",
|
||||
"libc_logging_test.cpp",
|
||||
"libgen_basename_test.cpp",
|
||||
"libgen_test.cpp",
|
||||
"locale_test.cpp",
|
||||
"malloc_test.cpp",
|
||||
"math_test.cpp",
|
||||
"mntent_test.cpp",
|
||||
"netdb_test.cpp",
|
||||
"net_if_test.cpp",
|
||||
"netinet_ether_test.cpp",
|
||||
"netinet_in_test.cpp",
|
||||
"netinet_udp_test.cpp",
|
||||
"nl_types_test.cpp",
|
||||
"pthread_test.cpp",
|
||||
"pty_test.cpp",
|
||||
"regex_test.cpp",
|
||||
"resolv_test.cpp",
|
||||
"sched_test.cpp",
|
||||
"search_test.cpp",
|
||||
"semaphore_test.cpp",
|
||||
"setjmp_test.cpp",
|
||||
"signal_test.cpp",
|
||||
"stack_protector_test.cpp",
|
||||
"stack_protector_test_helper.cpp",
|
||||
"stack_unwinding_test.cpp",
|
||||
"stdatomic_test.cpp",
|
||||
"stdint_test.cpp",
|
||||
"stdio_nofortify_test.cpp",
|
||||
"stdio_test.cpp",
|
||||
"stdio_ext_test.cpp",
|
||||
"stdlib_test.cpp",
|
||||
"string_nofortify_test.cpp",
|
||||
"string_test.cpp",
|
||||
"string_posix_strerror_r_test.cpp",
|
||||
"strings_nofortify_test.cpp",
|
||||
"strings_test.cpp",
|
||||
"sstream_test.cpp",
|
||||
"sys_epoll_test.cpp",
|
||||
"sys_mman_test.cpp",
|
||||
"sys_personality_test.cpp",
|
||||
"sys_prctl_test.cpp",
|
||||
"sys_procfs_test.cpp",
|
||||
"sys_ptrace_test.cpp",
|
||||
"sys_quota_test.cpp",
|
||||
"sys_resource_test.cpp",
|
||||
"sys_select_test.cpp",
|
||||
"sys_sendfile_test.cpp",
|
||||
"sys_socket_test.cpp",
|
||||
"sys_stat_test.cpp",
|
||||
"sys_statvfs_test.cpp",
|
||||
"sys_syscall_test.cpp",
|
||||
"sys_sysinfo_test.cpp",
|
||||
"sys_sysmacros_test.cpp",
|
||||
"sys_time_test.cpp",
|
||||
"sys_timex_test.cpp",
|
||||
"sys_types_test.cpp",
|
||||
"sys_uio_test.cpp",
|
||||
"sys_vfs_test.cpp",
|
||||
"sys_xattr_test.cpp",
|
||||
"system_properties_test.cpp",
|
||||
"time_test.cpp",
|
||||
"uchar_test.cpp",
|
||||
"uniqueptr_test.cpp",
|
||||
"unistd_nofortify_test.cpp",
|
||||
"unistd_test.cpp",
|
||||
"utmp_test.cpp",
|
||||
"wchar_test.cpp",
|
||||
"wctype_test.cpp",
|
||||
],
|
||||
|
||||
include_dirs: [
|
||||
"bionic/libc",
|
||||
"external/tinyxml2",
|
||||
],
|
||||
|
||||
static_libs: ["libbase"],
|
||||
host_ldlibs: ["-lrt"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Fortify tests.
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
cc_defaults {
|
||||
name: "bionic_fortify_tests_defaults",
|
||||
cflags: [
|
||||
"-Wno-error",
|
||||
"-U_FORTIFY_SOURCE",
|
||||
],
|
||||
srcs: ["fortify_test_main.cpp"],
|
||||
target: {
|
||||
host: {
|
||||
clang_cflags: ["-D__clang__"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cc_test_library {
|
||||
name: "libfortify1-tests-gcc",
|
||||
defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: false,
|
||||
cflags: [
|
||||
"-D_FORTIFY_SOURCE=1",
|
||||
"-DTEST_NAME=Fortify1_gcc"
|
||||
],
|
||||
}
|
||||
|
||||
cc_test_library {
|
||||
name: "libfortify2-tests-gcc",
|
||||
defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: false,
|
||||
cflags: [
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-DTEST_NAME=Fortify2_gcc"
|
||||
],
|
||||
}
|
||||
|
||||
cc_test_library {
|
||||
name: "libfortify1-tests-clang",
|
||||
defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: true,
|
||||
cflags: [
|
||||
"-D_FORTIFY_SOURCE=1",
|
||||
"-DTEST_NAME=Fortify1_clang"
|
||||
],
|
||||
}
|
||||
|
||||
cc_test_library {
|
||||
name: "libfortify2-tests-clang",
|
||||
defaults: ["bionic_fortify_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: true,
|
||||
cflags: [
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-DTEST_NAME=Fortify2_clang"
|
||||
],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library of all tests (excluding the dynamic linker tests).
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_test_library {
|
||||
name: "libBionicTests",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
whole_static_libs: [
|
||||
"libBionicStandardTests",
|
||||
"libfortify1-tests-gcc",
|
||||
"libfortify2-tests-gcc",
|
||||
"libfortify1-tests-clang",
|
||||
"libfortify2-tests-clang",
|
||||
],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library of bionic customized gtest main function, with simplified output format.
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_test_library {
|
||||
name: "libBionicGtestMain",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
srcs: ["gtest_main.cpp"],
|
||||
target: {
|
||||
darwin: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library of bionic customized gtest main function, with normal gtest output format,
|
||||
// which is needed by bionic cts test.
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_test_library {
|
||||
name: "libBionicCtsGtestMain",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
srcs: ["gtest_main.cpp"],
|
||||
cppflags: ["-DUSING_GTEST_OUTPUT_FORMAT"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Tests for the device using bionic's .so. Run with:
|
||||
// adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests32
|
||||
// adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests64
|
||||
// adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc32
|
||||
// adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc64
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_defaults {
|
||||
name: "bionic_unit_tests_defaults",
|
||||
host_supported: false,
|
||||
|
||||
whole_static_libs: [
|
||||
"libBionicTests",
|
||||
"libBionicGtestMain",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
"libtinyxml2",
|
||||
"liblog",
|
||||
"libbase",
|
||||
],
|
||||
|
||||
srcs: [
|
||||
// TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
|
||||
"atexit_test.cpp",
|
||||
"dl_test.cpp",
|
||||
"dlext_test.cpp",
|
||||
"__cxa_thread_atexit_test.cpp",
|
||||
"dlfcn_test.cpp",
|
||||
"libdl_test.cpp",
|
||||
"pthread_dlfcn_test.cpp",
|
||||
"thread_local_test.cpp",
|
||||
],
|
||||
|
||||
conlyflags: [
|
||||
"-fexceptions",
|
||||
"-fnon-call-exceptions",
|
||||
],
|
||||
|
||||
ldflags: ["-Wl,--export-dynamic"],
|
||||
|
||||
include_dirs: ["bionic/libc"],
|
||||
|
||||
target: {
|
||||
android: {
|
||||
shared_libs: [
|
||||
"libdl",
|
||||
"libpagemap",
|
||||
"libdl_preempt_test_1",
|
||||
"libdl_preempt_test_2",
|
||||
"libdl_test_df_1_global",
|
||||
],
|
||||
static_libs: [
|
||||
// The order of these libraries matters, do not shuffle them.
|
||||
"libbase",
|
||||
"libziparchive",
|
||||
"libz",
|
||||
"libutils",
|
||||
],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "bionic-unit-tests",
|
||||
defaults: ["bionic_unit_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: true,
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "bionic-unit-tests-gcc",
|
||||
defaults: ["bionic_unit_tests_defaults", "bionic_tests_defaults"],
|
||||
clang: false,
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Tests for the device linked against bionic's static library. Run with:
|
||||
// adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static32
|
||||
// adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static64
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_test {
|
||||
name: "bionic-unit-tests-static",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
host_supported: false,
|
||||
|
||||
whole_static_libs: [
|
||||
"libBionicTests",
|
||||
"libBionicGtestMain",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
"libm",
|
||||
"libc",
|
||||
"libc++_static",
|
||||
"libdl",
|
||||
"libtinyxml2",
|
||||
"liblog",
|
||||
"libbase",
|
||||
],
|
||||
|
||||
static_executable: true,
|
||||
stl: "libc++_static",
|
||||
|
||||
// libc and libc++ both define std::nothrow. libc's is a private symbol, but this
|
||||
// still causes issues when linking libc.a and libc++.a, since private isn't
|
||||
// effective until it has been linked. To fix this, just allow multiple symbol
|
||||
// definitions for the static tests.
|
||||
ldflags: ["-Wl,--allow-multiple-definition"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Tests to run on the host and linked against glibc. Run with:
|
||||
// cd bionic/tests; mm bionic-unit-tests-glibc-run
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
cc_test_host {
|
||||
name: "bionic-unit-tests-glibc",
|
||||
defaults: ["bionic_tests_defaults"],
|
||||
|
||||
srcs: [
|
||||
"atexit_test.cpp",
|
||||
"dlfcn_test.cpp",
|
||||
"dl_test.cpp",
|
||||
"pthread_dlfcn_test.cpp",
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"libdl_preempt_test_1",
|
||||
"libdl_preempt_test_2",
|
||||
|
||||
"libdl_test_df_1_global",
|
||||
],
|
||||
|
||||
whole_static_libs: [
|
||||
"libBionicStandardTests",
|
||||
"libBionicGtestMain",
|
||||
"libfortify1-tests-gcc",
|
||||
"libfortify2-tests-gcc",
|
||||
"libfortify1-tests-clang",
|
||||
"libfortify2-tests-clang",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
"libbase",
|
||||
"liblog",
|
||||
"libcutils",
|
||||
],
|
||||
|
||||
host_ldlibs: [
|
||||
"-lresolv",
|
||||
"-lrt",
|
||||
"-ldl",
|
||||
"-lutil",
|
||||
],
|
||||
|
||||
include_dirs: ["bionic/libc"],
|
||||
|
||||
ldflags: ["-Wl,--export-dynamic"],
|
||||
|
||||
sanitize: {
|
||||
never: false,
|
||||
},
|
||||
}
|
||||
|
||||
subdirs = ["libs"]
|
458
tests/Android.mk
458
tests/Android.mk
|
@ -16,426 +16,14 @@
|
|||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Unit tests.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
|
||||
build_host := true
|
||||
else
|
||||
build_host := false
|
||||
endif
|
||||
|
||||
common_additional_dependencies := $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# All standard tests.
|
||||
# -----------------------------------------------------------------------------
|
||||
test_cflags = \
|
||||
-fstack-protector-all \
|
||||
-g \
|
||||
-Wall -Wextra -Wunused \
|
||||
-Werror \
|
||||
-fno-builtin \
|
||||
|
||||
# We want to test deprecated API too.
|
||||
test_cflags += \
|
||||
-Wno-deprecated-declarations \
|
||||
|
||||
test_cflags += -D__STDC_LIMIT_MACROS # For glibc.
|
||||
|
||||
test_cppflags := \
|
||||
|
||||
libBionicStandardTests_src_files := \
|
||||
arpa_inet_test.cpp \
|
||||
buffer_tests.cpp \
|
||||
bug_26110743_test.cpp \
|
||||
complex_test.cpp \
|
||||
ctype_test.cpp \
|
||||
dirent_test.cpp \
|
||||
error_test.cpp \
|
||||
eventfd_test.cpp \
|
||||
fcntl_test.cpp \
|
||||
fenv_test.cpp \
|
||||
ftw_test.cpp \
|
||||
getauxval_test.cpp \
|
||||
getcwd_test.cpp \
|
||||
grp_pwd_test.cpp \
|
||||
ifaddrs_test.cpp \
|
||||
inttypes_test.cpp \
|
||||
libc_logging_test.cpp \
|
||||
libgen_basename_test.cpp \
|
||||
libgen_test.cpp \
|
||||
locale_test.cpp \
|
||||
malloc_test.cpp \
|
||||
math_test.cpp \
|
||||
mntent_test.cpp \
|
||||
netdb_test.cpp \
|
||||
net_if_test.cpp \
|
||||
netinet_ether_test.cpp \
|
||||
netinet_in_test.cpp \
|
||||
netinet_udp_test.cpp \
|
||||
nl_types_test.cpp \
|
||||
pthread_test.cpp \
|
||||
pty_test.cpp \
|
||||
regex_test.cpp \
|
||||
resolv_test.cpp \
|
||||
sched_test.cpp \
|
||||
search_test.cpp \
|
||||
semaphore_test.cpp \
|
||||
setjmp_test.cpp \
|
||||
signal_test.cpp \
|
||||
stack_protector_test.cpp \
|
||||
stack_protector_test_helper.cpp \
|
||||
stack_unwinding_test.cpp \
|
||||
stdatomic_test.cpp \
|
||||
stdint_test.cpp \
|
||||
stdio_nofortify_test.cpp \
|
||||
stdio_test.cpp \
|
||||
stdio_ext_test.cpp \
|
||||
stdlib_test.cpp \
|
||||
string_nofortify_test.cpp \
|
||||
string_test.cpp \
|
||||
string_posix_strerror_r_test.cpp \
|
||||
strings_nofortify_test.cpp \
|
||||
strings_test.cpp \
|
||||
sstream_test.cpp \
|
||||
sys_epoll_test.cpp \
|
||||
sys_mman_test.cpp \
|
||||
sys_personality_test.cpp \
|
||||
sys_prctl_test.cpp \
|
||||
sys_procfs_test.cpp \
|
||||
sys_ptrace_test.cpp \
|
||||
sys_quota_test.cpp \
|
||||
sys_resource_test.cpp \
|
||||
sys_select_test.cpp \
|
||||
sys_sendfile_test.cpp \
|
||||
sys_socket_test.cpp \
|
||||
sys_stat_test.cpp \
|
||||
sys_statvfs_test.cpp \
|
||||
sys_syscall_test.cpp \
|
||||
sys_sysinfo_test.cpp \
|
||||
sys_sysmacros_test.cpp \
|
||||
sys_time_test.cpp \
|
||||
sys_timex_test.cpp \
|
||||
sys_types_test.cpp \
|
||||
sys_uio_test.cpp \
|
||||
sys_vfs_test.cpp \
|
||||
sys_xattr_test.cpp \
|
||||
system_properties_test.cpp \
|
||||
time_test.cpp \
|
||||
uchar_test.cpp \
|
||||
uniqueptr_test.cpp \
|
||||
unistd_nofortify_test.cpp \
|
||||
unistd_test.cpp \
|
||||
utmp_test.cpp \
|
||||
wchar_test.cpp \
|
||||
wctype_test.cpp \
|
||||
|
||||
libBionicStandardTests_cflags := \
|
||||
$(test_cflags) \
|
||||
|
||||
libBionicStandardTests_cppflags := \
|
||||
$(test_cppflags) \
|
||||
|
||||
libBionicStandardTests_c_includes := \
|
||||
bionic/libc \
|
||||
external/tinyxml2 \
|
||||
|
||||
libBionicStandardTests_static_libraries := \
|
||||
libbase \
|
||||
|
||||
libBionicStandardTests_ldlibs_host := \
|
||||
-lrt \
|
||||
|
||||
module := libBionicStandardTests
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Fortify tests.
|
||||
# -----------------------------------------------------------------------------
|
||||
$(foreach compiler,gcc clang, \
|
||||
$(foreach test,1 2, \
|
||||
$(eval fortify$(test)-tests-$(compiler)_cflags := \
|
||||
$(test_cflags) \
|
||||
-Wno-error \
|
||||
-U_FORTIFY_SOURCE \
|
||||
-D_FORTIFY_SOURCE=$(test) \
|
||||
-DTEST_NAME=Fortify$(test)_$(compiler)); \
|
||||
$(eval fortify$(test)-tests-$(compiler)_src_files := \
|
||||
fortify_test_main.cpp); \
|
||||
$(eval fortify_libs += fortify$(test)-tests-$(compiler)); \
|
||||
) \
|
||||
)
|
||||
|
||||
fortify1-tests-gcc_clang_target := false
|
||||
module := fortify1-tests-gcc
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
fortify2-tests-gcc_clang_target := false
|
||||
module := fortify2-tests-gcc
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
fortify1-tests-clang_clang_target := true
|
||||
fortify1-tests-clang_cflags_host := -D__clang__
|
||||
|
||||
module := fortify1-tests-clang
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
fortify2-tests-clang_clang_target := true
|
||||
|
||||
fortify2-tests-clang_cflags_host := -D__clang__
|
||||
|
||||
module := fortify2-tests-clang
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library of all tests (excluding the dynamic linker tests).
|
||||
# -----------------------------------------------------------------------------
|
||||
libBionicTests_whole_static_libraries := \
|
||||
libBionicStandardTests \
|
||||
$(fortify_libs) \
|
||||
|
||||
module := libBionicTests
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library of bionic customized gtest main function, with simplified output format.
|
||||
# -----------------------------------------------------------------------------
|
||||
libBionicGtestMain_src_files := gtest_main.cpp
|
||||
|
||||
libBionicGtestMain_cflags := $(test_cflags)
|
||||
|
||||
libBionicGtestMain_cppflags := $(test_cppflags)
|
||||
|
||||
module := libBionicGtestMain
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
|
||||
ifeq ($(HOST_OS),$(filter $(HOST_OS),linux darwin))
|
||||
saved_build_host := $(build_host)
|
||||
build_host := true
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_host := $(saved_build_host)
|
||||
endif
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library of bionic customized gtest main function, with normal gtest output format,
|
||||
# which is needed by bionic cts test.
|
||||
# -----------------------------------------------------------------------------
|
||||
libBionicCtsGtestMain_src_files := gtest_main.cpp
|
||||
|
||||
libBionicCtsGtestMain_cflags := $(test_cflags)
|
||||
|
||||
libBionicCtsGtestMain_cppflags := $(test_cppflags) -DUSING_GTEST_OUTPUT_FORMAT \
|
||||
|
||||
module := libBionicCtsGtestMain
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := STATIC_TEST_LIBRARY
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
build_type := host
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Tests for the device using bionic's .so. Run with:
|
||||
# adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests32
|
||||
# adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests64
|
||||
# adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc32
|
||||
# adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests-gcc64
|
||||
# -----------------------------------------------------------------------------
|
||||
common_bionic-unit-tests_whole_static_libraries := \
|
||||
libBionicTests \
|
||||
libBionicGtestMain \
|
||||
|
||||
common_bionic-unit-tests_static_libraries := \
|
||||
libtinyxml2 \
|
||||
liblog \
|
||||
libbase \
|
||||
|
||||
# TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
|
||||
common_bionic-unit-tests_src_files := \
|
||||
atexit_test.cpp \
|
||||
dl_test.cpp \
|
||||
dlext_test.cpp \
|
||||
__cxa_thread_atexit_test.cpp \
|
||||
dlfcn_test.cpp \
|
||||
libdl_test.cpp \
|
||||
pthread_dlfcn_test.cpp \
|
||||
thread_local_test.cpp \
|
||||
|
||||
common_bionic-unit-tests_cflags := $(test_cflags)
|
||||
|
||||
common_bionic-unit-tests_conlyflags := \
|
||||
-fexceptions \
|
||||
-fnon-call-exceptions \
|
||||
|
||||
common_bionic-unit-tests_cppflags := $(test_cppflags)
|
||||
|
||||
common_bionic-unit-tests_ldflags := \
|
||||
-Wl,--export-dynamic
|
||||
|
||||
common_bionic-unit-tests_c_includes := \
|
||||
bionic/libc \
|
||||
|
||||
common_bionic-unit-tests_shared_libraries_target := \
|
||||
libdl \
|
||||
libpagemap \
|
||||
libdl_preempt_test_1 \
|
||||
libdl_preempt_test_2 \
|
||||
libdl_test_df_1_global \
|
||||
|
||||
# The order of these libraries matters, do not shuffle them.
|
||||
common_bionic-unit-tests_static_libraries_target := \
|
||||
libbase \
|
||||
libziparchive \
|
||||
libz \
|
||||
libutils \
|
||||
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := NATIVE_TEST
|
||||
|
||||
module := bionic-unit-tests
|
||||
bionic-unit-tests_clang_target := true
|
||||
bionic-unit-tests_whole_static_libraries := $(common_bionic-unit-tests_whole_static_libraries)
|
||||
bionic-unit-tests_static_libraries := $(common_bionic-unit-tests_static_libraries)
|
||||
bionic-unit-tests_src_files := $(common_bionic-unit-tests_src_files)
|
||||
bionic-unit-tests_cflags := $(common_bionic-unit-tests_cflags)
|
||||
bionic-unit-tests_conlyflags := $(common_bionic-unit-tests_conlyflags)
|
||||
bionic-unit-tests_cppflags := $(common_bionic-unit-tests_cppflags)
|
||||
bionic-unit-tests_ldflags := $(common_bionic-unit-tests_ldflags)
|
||||
bionic-unit-tests_c_includes := $(common_bionic-unit-tests_c_includes)
|
||||
bionic-unit-tests_shared_libraries_target := $(common_bionic-unit-tests_shared_libraries_target)
|
||||
bionic-unit-tests_static_libraries_target := $(common_bionic-unit-tests_static_libraries_target)
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
module := bionic-unit-tests-gcc
|
||||
bionic-unit-tests-gcc_clang_target := false
|
||||
bionic-unit-tests-gcc_whole_static_libraries := $(common_bionic-unit-tests_whole_static_libraries)
|
||||
bionic-unit-tests-gcc_static_libraries := $(common_bionic-unit-tests_static_libraries)
|
||||
bionic-unit-tests-gcc_src_files := $(common_bionic-unit-tests_src_files)
|
||||
bionic-unit-tests-gcc_cflags := $(common_bionic-unit-tests_cflags)
|
||||
bionic-unit-tests-gcc_conlyflags := $(common_bionic-unit-tests_conlyflags)
|
||||
bionic-unit-tests-gcc_cppflags := $(common_bionic-unit-tests_cppflags)
|
||||
bionic-unit-tests-gcc_ldflags := $(common_bionic-unit-tests_ldflags)
|
||||
bionic-unit-tests-gcc_c_includes := $(common_bionic-unit-tests_c_includes)
|
||||
bionic-unit-tests-gcc_shared_libraries_target := $(common_bionic-unit-tests_shared_libraries_target)
|
||||
bionic-unit-tests-gcc_static_libraries_target := $(common_bionic-unit-tests_static_libraries_target)
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Tests for the device linked against bionic's static library. Run with:
|
||||
# adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static32
|
||||
# adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static64
|
||||
# -----------------------------------------------------------------------------
|
||||
bionic-unit-tests-static_whole_static_libraries := \
|
||||
libBionicTests \
|
||||
libBionicGtestMain \
|
||||
|
||||
bionic-unit-tests-static_static_libraries := \
|
||||
libm \
|
||||
libc \
|
||||
libc++_static \
|
||||
libdl \
|
||||
libtinyxml2 \
|
||||
liblog \
|
||||
libbase \
|
||||
|
||||
bionic-unit-tests-static_force_static_executable := true
|
||||
|
||||
# libc and libc++ both define std::nothrow. libc's is a private symbol, but this
|
||||
# still causes issues when linking libc.a and libc++.a, since private isn't
|
||||
# effective until it has been linked. To fix this, just allow multiple symbol
|
||||
# definitions for the static tests.
|
||||
bionic-unit-tests-static_ldflags := -Wl,--allow-multiple-definition
|
||||
|
||||
module := bionic-unit-tests-static
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := NATIVE_TEST
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Tests to run on the host and linked against glibc. Run with:
|
||||
# cd bionic/tests; mm bionic-unit-tests-glibc-run
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
|
||||
|
||||
bionic-unit-tests-glibc_src_files := \
|
||||
atexit_test.cpp \
|
||||
dlfcn_test.cpp \
|
||||
dl_test.cpp \
|
||||
pthread_dlfcn_test.cpp \
|
||||
|
||||
bionic-unit-tests-glibc_shared_libraries := \
|
||||
libdl_preempt_test_1 \
|
||||
libdl_preempt_test_2
|
||||
|
||||
bionic-unit-tests-glibc_shared_libraries += libdl_test_df_1_global
|
||||
|
||||
bionic-unit-tests-glibc_whole_static_libraries := \
|
||||
libBionicStandardTests \
|
||||
libBionicGtestMain \
|
||||
$(fortify_libs) \
|
||||
|
||||
bionic-unit-tests-glibc_static_libraries := \
|
||||
libbase \
|
||||
liblog \
|
||||
libcutils \
|
||||
|
||||
bionic-unit-tests-glibc_ldlibs := \
|
||||
-lresolv -lrt -ldl -lutil \
|
||||
|
||||
bionic-unit-tests-glibc_c_includes := \
|
||||
bionic/libc \
|
||||
|
||||
bionic-unit-tests-glibc_cflags := $(test_cflags)
|
||||
bionic-unit-tests-glibc_cppflags := $(test_cppflags)
|
||||
bionic-unit-tests-glibc_ldflags := -Wl,--export-dynamic
|
||||
|
||||
bionic-unit-tests-glibc_allow_asan := true
|
||||
|
||||
module := bionic-unit-tests-glibc
|
||||
module_tag := optional
|
||||
build_type := host
|
||||
build_target := NATIVE_TEST
|
||||
include $(LOCAL_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Compile time tests.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -483,52 +71,6 @@ LOCAL_CPPFLAGS += -fno-color-diagnostics
|
|||
LOCAL_SRC_FILES :=
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Host glibc tests.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# gtest needs ANDROID_DATA/local/tmp for death test output.
|
||||
# Make sure to create ANDROID_DATA/local/tmp if doesn't exist.
|
||||
# Use the current target out directory as ANDROID_DATA.
|
||||
# BIONIC_TEST_FLAGS is either empty or it comes from the user.
|
||||
.PHONY: bionic-unit-tests-glibc-run
|
||||
bionic-unit-tests-glibc-run: bionic-unit-tests-glibc
|
||||
mkdir -p $(TARGET_OUT_DATA)/local/tmp
|
||||
ANDROID_DATA=$(TARGET_OUT_DATA) \
|
||||
ANDROID_ROOT=$(TARGET_OUT) \
|
||||
$(HOST_OUT_EXECUTABLES)/bionic-unit-tests-glibc64 $(BIONIC_TEST_FLAGS)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Run the unit tests built against x86 bionic on an x86 host.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
include $(LOCAL_PATH)/../build/run-on-host.mk
|
||||
|
||||
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
|
||||
|
||||
TEST_TIMEOUT := 0
|
||||
|
||||
# BIONIC_TEST_FLAGS is either empty or it comes from the user.
|
||||
.PHONY: bionic-unit-tests-run-on-host32
|
||||
bionic-unit-tests-run-on-host32: bionic-unit-tests bionic-prepare-run-on-host
|
||||
ANDROID_DATA=$(TARGET_OUT_DATA) \
|
||||
ANDROID_DNS_MODE=local \
|
||||
ANDROID_ROOT=$(TARGET_OUT) \
|
||||
timeout $(TEST_TIMEOUT) \
|
||||
$(TARGET_OUT_DATA)/nativetest/bionic-unit-tests/bionic-unit-tests32 $(BIONIC_TEST_FLAGS)
|
||||
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
# add target to run lp64 tests
|
||||
.PHONY: bionic-unit-tests-run-on-host64
|
||||
bionic-unit-tests-run-on-host64: bionic-unit-tests bionic-prepare-run-on-host
|
||||
ANDROID_DATA=$(TARGET_OUT_DATA) \
|
||||
ANDROID_DNS_MODE=local \
|
||||
ANDROID_ROOT=$(TARGET_OUT) \
|
||||
timeout $(TEST_TIMEOUT) \
|
||||
$(TARGET_OUT_DATA)/nativetest64/bionic-unit-tests/bionic-unit-tests64 $(BIONIC_TEST_FLAGS)
|
||||
endif
|
||||
|
||||
endif # x86 x86_64
|
||||
endif # linux-x86
|
||||
|
||||
include $(call first-makefiles-under,$(LOCAL_PATH))
|
||||
|
|
443
tests/libs/Android.bp
Normal file
443
tests/libs/Android.bp
Normal file
|
@ -0,0 +1,443 @@
|
|||
//
|
||||
// Copyright (C) 2012 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
cc_defaults {
|
||||
name: "bionic_testlib_defaults",
|
||||
host_supported: true,
|
||||
sanitize: {
|
||||
never: true,
|
||||
},
|
||||
target: {
|
||||
darwin: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library to test gnu-styled hash
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libgnu-hash-table-library",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlext_test_library.cpp"],
|
||||
ldflags: ["-Wl,--hash-style=gnu"],
|
||||
arch: {
|
||||
mips: {
|
||||
enabled: false,
|
||||
},
|
||||
mips64: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library to test sysv-styled hash
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libsysv-hash-table-library",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlext_test_library.cpp"],
|
||||
ldflags: ["-Wl,--hash-style=sysv"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlext tests - with GNU RELRO program header
|
||||
// -----------------------------------------------------------------------------
|
||||
// In Android.mk to support creating symlinks
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlext tests - without GNU RELRO program header
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libdlext_test_norelro",
|
||||
srcs: ["dlext_test_library.cpp"],
|
||||
ldflags: ["-Wl,-z,norelro"],
|
||||
shared_libs = ["libtest_simple"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlext tests - different name non-default location
|
||||
// -----------------------------------------------------------------------------
|
||||
// In Android.mk to support installing to /data
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Libraries used by dlext tests for open from a zip-file
|
||||
// -----------------------------------------------------------------------------
|
||||
// In Android.mk to support installing to /data
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Library with soname which does not match filename
|
||||
// ----------------------------------------------------------------------------
|
||||
// In Android.mk to support zipped and aligned tests
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlext tests - zipped and aligned
|
||||
// -----------------------------------------------------------------------------
|
||||
// In Android.mk to support zipped and aligned tests
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlfcn tests
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_simple",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_simple.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlfcn nodelete tests
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_nodelete_1",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_nodelete_1.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlfcn nodelete tests
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_nodelete_2",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_nodelete_2.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by dlfcn nodelete tests
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_nodelete_dt_flags_1",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_nodelete_dt_flags_1.cpp"],
|
||||
ldflags: ["-Wl,-z,nodelete"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build test helper libraries for linker namespaces
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.linker_namespaces.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build DT_RUNPATH test helper libraries
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.dt_runpath.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build library with two parents
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.dlopen_2_parents_reloc.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build libtest_check_order_dlsym.so with its dependencies.
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.dlopen_check_order_dlsym.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build libtest_check_order_siblings.so with its dependencies.
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.dlopen_check_order_reloc_siblings.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build libtest_check_order_root.so with its dependencies.
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.dlopen_check_order_reloc_main_executable.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build libtest_versioned_lib.so with its dependencies.
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.versioned_lib.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Build libraries needed by pthread_atfork tests
|
||||
// -----------------------------------------------------------------------------
|
||||
// include $(LOCAL_PATH)/Android.build.pthread_atfork.mk
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with dependency loop used by dlfcn tests
|
||||
//
|
||||
// libtest_with_dependency_loop -> a -> b -> c -> a
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_with_dependency_loop",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_loopy_root.cpp"],
|
||||
shared_libs: ["libtest_with_dependency_loop_a"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// libtest_with_dependency_loop_a.so
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_with_dependency_loop_a",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_loopy_a.cpp"],
|
||||
shared_libs: ["libtest_with_dependency_loop_b_tmp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// libtest_with_dependency_loop_b.so
|
||||
//
|
||||
// this is temporary placeholder - will be removed
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_with_dependency_loop_b_tmp",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_loopy_invalid.cpp"],
|
||||
ldflags: ["-Wl,-soname=libtest_with_dependency_loop_b.so"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// libtest_with_dependency_loop_b.so
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_with_dependency_loop_b",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_loopy_b.cpp"],
|
||||
shared_libs: ["libtest_with_dependency_loop_c"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// libtest_with_dependency_loop_c.so
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_with_dependency_loop_c",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_loopy_c.cpp"],
|
||||
shared_libs: ["libtest_with_dependency_loop_a"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// libtest_relo_check_dt_needed_order.so
|
||||
// |
|
||||
// +-> libtest_relo_check_dt_needed_order_1.so
|
||||
// |
|
||||
// +-> libtest_relo_check_dt_needed_order_2.so
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
cc_library {
|
||||
name: "libtest_relo_check_dt_needed_order",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_relo_check_dt_needed_order.cpp"],
|
||||
shared_libs: [
|
||||
"libtest_relo_check_dt_needed_order_1",
|
||||
"libtest_relo_check_dt_needed_order_2",
|
||||
],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libtest_relo_check_dt_needed_order_1",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_relo_check_dt_needed_order_1.cpp"],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libtest_relo_check_dt_needed_order_2",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_relo_check_dt_needed_order_2.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with dependency used by dlfcn tests
|
||||
// -----------------------------------------------------------------------------
|
||||
// In Android.mk to support dependency on libdlext_test
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by ifunc tests
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_ifunc",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_ifunc.c"],
|
||||
|
||||
// TODO(dimitry): clang does not support ifunc attribute
|
||||
clang: false,
|
||||
arch: {
|
||||
mips: {
|
||||
enabled: false,
|
||||
},
|
||||
mips64: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library used by atexit tests
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
cc_library {
|
||||
name: "libtest_atexit",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["atexit_testlib.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// This library is used by dl_load test to check symbol preempting
|
||||
// by main executable
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libdl_preempt_test_1",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dl_preempt_library_1.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// This library is used by dl_load test to check symbol preempting
|
||||
// by libdl_preempt_test_1.so
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libdl_preempt_test_2",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dl_preempt_library_2.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with DF_1_GLOBAL
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libdl_test_df_1_global",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dl_df_1_global.cpp"],
|
||||
ldflags: ["-Wl,-z,global"],
|
||||
|
||||
target: {
|
||||
host: {
|
||||
// TODO (dimitry): host ld.gold does not yet support -z global
|
||||
// remove this line once it is updated.
|
||||
ldflags: ["-fuse-ld=bfd"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library using symbol from libdl_test_df_1_global
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlsym_df_1_global",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dl_df_1_use_global.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with weak function
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlsym_weak_func",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlsym_weak_function.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library to check RTLD_LOCAL with dlsym in 'this'
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlsym_from_this",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlsym_from_this_symbol.cpp"],
|
||||
shared_libs: ["libtest_dlsym_from_this_child"],
|
||||
|
||||
target: {
|
||||
android: {
|
||||
shared_libs: ["libdl"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlsym_from_this_child",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlsym_from_this_functions.cpp"],
|
||||
shared_libs: ["libtest_dlsym_from_this_grandchild"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlsym_from_this_grandchild",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlsym_from_this_symbol2.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Empty library
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_empty",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["empty.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with weak undefined function
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlopen_weak_undefined_func",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_weak_undefined.cpp"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library with constructor that calls dlopen() b/7941716
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlopen_from_ctor",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["dlopen_testlib_dlopen_from_ctor.cpp"],
|
||||
target: {
|
||||
android: {
|
||||
shared_libs: ["libdl"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Library that depends on the library with constructor that calls dlopen() b/7941716
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_library {
|
||||
name: "libtest_dlopen_from_ctor_main",
|
||||
defaults: ["bionic_testlib_defaults"],
|
||||
srcs: ["empty.cpp"],
|
||||
shared_libs: ["libtest_dlopen_from_ctor"],
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Tool to use to align the shared libraries in a zip file.
|
||||
// -----------------------------------------------------------------------------
|
||||
cc_binary_host {
|
||||
name: "bionic_tests_zipalign",
|
||||
srcs: ["bionic_tests_zipalign.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
"libziparchive",
|
||||
"liblog",
|
||||
"libbase",
|
||||
"libz",
|
||||
"libutils",
|
||||
],
|
||||
|
||||
target: {
|
||||
windows: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
}
|
|
@ -32,34 +32,6 @@ common_additional_dependencies := \
|
|||
$(LOCAL_PATH)/Android.build.versioned_lib.mk \
|
||||
$(TEST_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library to test gnu-styled hash
|
||||
# -----------------------------------------------------------------------------
|
||||
ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),mips mips64))
|
||||
libgnu-hash-table-library_src_files := \
|
||||
dlext_test_library.cpp \
|
||||
|
||||
libgnu-hash-table-library_ldflags := \
|
||||
-Wl,--hash-style=gnu \
|
||||
|
||||
module := libgnu-hash-table-library
|
||||
module_tag := optional
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
endif
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library to test sysv-styled hash
|
||||
# -----------------------------------------------------------------------------
|
||||
libsysv-hash-table-library_src_files := \
|
||||
dlext_test_library.cpp \
|
||||
|
||||
libsysv-hash-table-library_ldflags := \
|
||||
-Wl,--hash-style=sysv \
|
||||
|
||||
module := libsysv-hash-table-library
|
||||
module_tag := optional
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlext tests - with GNU RELRO program header
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -95,23 +67,6 @@ $(HOST_OUT)/lib64/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
|
|||
$(HOST_OUT)/lib/libdlext_test.so: PRIVATE_POST_INSTALL_CMD = \
|
||||
$(hide) cd $(dir $@) && ln -sf $(notdir $@) libdlext_test_v2.so
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlext tests - without GNU RELRO program header
|
||||
# -----------------------------------------------------------------------------
|
||||
libdlext_test_norelro_src_files := \
|
||||
dlext_test_library.cpp \
|
||||
|
||||
libdlext_test_norelro_ldflags := \
|
||||
-Wl,-z,norelro \
|
||||
|
||||
libdlext_test_norelro_shared_libraries := libtest_simple
|
||||
|
||||
module := libdlext_test_norelro
|
||||
module_tag := optional
|
||||
build_type := target
|
||||
build_target := SHARED_LIBRARY
|
||||
include $(TEST_PATH)/Android.build.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlext tests - different name non-default location
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -175,44 +130,6 @@ ifneq ($(TARGET_2ND_ARCH),)
|
|||
include $(LOCAL_PATH)/Android.build.dlext_testzip.mk
|
||||
endif
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlfcn tests
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_simple_src_files := \
|
||||
dlopen_testlib_simple.cpp
|
||||
|
||||
module := libtest_simple
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlfcn nodelete tests
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_nodelete_1_src_files := \
|
||||
dlopen_nodelete_1.cpp
|
||||
|
||||
module := libtest_nodelete_1
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlfcn nodelete tests
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_nodelete_2_src_files := \
|
||||
dlopen_nodelete_2.cpp
|
||||
|
||||
module := libtest_nodelete_2
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by dlfcn nodelete tests
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_nodelete_dt_flags_1_src_files := \
|
||||
dlopen_nodelete_dt_flags_1.cpp
|
||||
|
||||
libtest_nodelete_dt_flags_1_ldflags := -Wl,-z,nodelete
|
||||
|
||||
module := libtest_nodelete_dt_flags_1
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Build test helper libraries for linker namespaces
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -253,82 +170,6 @@ include $(LOCAL_PATH)/Android.build.versioned_lib.mk
|
|||
# -----------------------------------------------------------------------------
|
||||
include $(LOCAL_PATH)/Android.build.pthread_atfork.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with dependency loop used by dlfcn tests
|
||||
#
|
||||
# libtest_with_dependency_loop -> a -> b -> c -> a
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_with_dependency_loop_src_files := dlopen_testlib_loopy_root.cpp
|
||||
|
||||
libtest_with_dependency_loop_shared_libraries := \
|
||||
libtest_with_dependency_loop_a
|
||||
|
||||
module := libtest_with_dependency_loop
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# libtest_with_dependency_loop_a.so
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_with_dependency_loop_a_src_files := dlopen_testlib_loopy_a.cpp
|
||||
|
||||
libtest_with_dependency_loop_a_shared_libraries := \
|
||||
libtest_with_dependency_loop_b_tmp
|
||||
|
||||
module := libtest_with_dependency_loop_a
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# libtest_with_dependency_loop_b.so
|
||||
#
|
||||
# this is temporary placeholder - will be removed
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_with_dependency_loop_b_tmp_src_files := dlopen_testlib_loopy_invalid.cpp
|
||||
libtest_with_dependency_loop_b_tmp_ldflags := -Wl,-soname=libtest_with_dependency_loop_b.so
|
||||
|
||||
module := libtest_with_dependency_loop_b_tmp
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# libtest_with_dependency_loop_b.so
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_with_dependency_loop_b_src_files := dlopen_testlib_loopy_b.cpp
|
||||
libtest_with_dependency_loop_b_shared_libraries := libtest_with_dependency_loop_c
|
||||
|
||||
module := libtest_with_dependency_loop_b
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# libtest_with_dependency_loop_c.so
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_with_dependency_loop_c_src_files := dlopen_testlib_loopy_c.cpp
|
||||
|
||||
libtest_with_dependency_loop_c_shared_libraries := \
|
||||
libtest_with_dependency_loop_a
|
||||
|
||||
module := libtest_with_dependency_loop_c
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# libtest_relo_check_dt_needed_order.so
|
||||
# |
|
||||
# +-> libtest_relo_check_dt_needed_order_1.so
|
||||
# |
|
||||
# +-> libtest_relo_check_dt_needed_order_2.so
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_relo_check_dt_needed_order_shared_libraries := \
|
||||
libtest_relo_check_dt_needed_order_1 libtest_relo_check_dt_needed_order_2
|
||||
|
||||
libtest_relo_check_dt_needed_order_src_files := dlopen_testlib_relo_check_dt_needed_order.cpp
|
||||
libtest_relo_check_dt_needed_order_1_src_files := dlopen_testlib_relo_check_dt_needed_order_1.cpp
|
||||
libtest_relo_check_dt_needed_order_2_src_files := dlopen_testlib_relo_check_dt_needed_order_2.cpp
|
||||
|
||||
module := libtest_relo_check_dt_needed_order
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
module := libtest_relo_check_dt_needed_order_1
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
module := libtest_relo_check_dt_needed_order_2
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with dependency used by dlfcn tests
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -339,161 +180,3 @@ libtest_with_dependency_shared_libraries := libdlext_test
|
|||
|
||||
module := libtest_with_dependency
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by ifunc tests
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_ifunc_src_files := \
|
||||
dlopen_testlib_ifunc.c
|
||||
|
||||
# TODO(dimitry): clang does not support ifunc attribute
|
||||
libtest_ifunc_clang_host := false
|
||||
|
||||
module := libtest_ifunc
|
||||
build_target := SHARED_LIBRARY
|
||||
|
||||
build_type := host
|
||||
include $(TEST_PATH)/Android.build.mk
|
||||
|
||||
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm arm64 x86 x86_64))
|
||||
build_type := target
|
||||
libtest_ifunc_clang_target := false
|
||||
include $(TEST_PATH)/Android.build.mk
|
||||
endif
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library used by atexit tests
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
libtest_atexit_src_files := \
|
||||
atexit_testlib.cpp
|
||||
|
||||
module := libtest_atexit
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# This library is used by dl_load test to check symbol preempting
|
||||
# by main executable
|
||||
# -----------------------------------------------------------------------------
|
||||
libdl_preempt_test_1_src_files := dl_preempt_library_1.cpp
|
||||
|
||||
module := libdl_preempt_test_1
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# This library is used by dl_load test to check symbol preempting
|
||||
# by libdl_preempt_test_1.so
|
||||
# -----------------------------------------------------------------------------
|
||||
libdl_preempt_test_2_src_files := dl_preempt_library_2.cpp
|
||||
|
||||
module := libdl_preempt_test_2
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with DF_1_GLOBAL
|
||||
# -----------------------------------------------------------------------------
|
||||
libdl_test_df_1_global_src_files := dl_df_1_global.cpp
|
||||
libdl_test_df_1_global_ldflags := -Wl,-z,global
|
||||
|
||||
# TODO (dimitry): host ld.gold does not yet support -z global
|
||||
# remove this line once it is updated.
|
||||
libdl_test_df_1_global_ldflags_host := -fuse-ld=bfd
|
||||
|
||||
module := libdl_test_df_1_global
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library using symbol from libdl_test_df_1_global
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlsym_df_1_global_src_files := dl_df_1_use_global.cpp
|
||||
module := libtest_dlsym_df_1_global
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with weak function
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlsym_weak_func_src_files := \
|
||||
dlsym_weak_function.cpp
|
||||
|
||||
module := libtest_dlsym_weak_func
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library to check RTLD_LOCAL with dlsym in 'this'
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlsym_from_this_src_files := dlsym_from_this_symbol.cpp
|
||||
|
||||
libtest_dlsym_from_this_shared_libraries_target := libdl
|
||||
libtest_dlsym_from_this_shared_libraries := libtest_dlsym_from_this_child
|
||||
|
||||
module := libtest_dlsym_from_this
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlsym_from_this_child_src_files := dlsym_from_this_functions.cpp
|
||||
|
||||
libtest_dlsym_from_this_child_shared_libraries := libtest_dlsym_from_this_grandchild
|
||||
|
||||
module := libtest_dlsym_from_this_child
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlsym_from_this_grandchild_src_files := dlsym_from_this_symbol2.cpp
|
||||
|
||||
module := libtest_dlsym_from_this_grandchild
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Empty library
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_empty_src_files := empty.cpp
|
||||
|
||||
module := libtest_empty
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with weak undefined function
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlopen_weak_undefined_func_src_files := \
|
||||
dlopen_weak_undefined.cpp
|
||||
|
||||
module := libtest_dlopen_weak_undefined_func
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library with constructor that calls dlopen() b/7941716
|
||||
# -----------------------------------------------------------------------------
|
||||
libtest_dlopen_from_ctor_src_files := \
|
||||
dlopen_testlib_dlopen_from_ctor.cpp
|
||||
|
||||
module := libtest_dlopen_from_ctor
|
||||
|
||||
libtest_dlopen_from_ctor_shared_libraries_target := libdl
|
||||
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Library that depends on the library with constructor that calls dlopen() b/7941716
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
libtest_dlopen_from_ctor_main_src_files := empty.cpp
|
||||
libtest_dlopen_from_ctor_main_shared_libraries := libtest_dlopen_from_ctor
|
||||
|
||||
module := libtest_dlopen_from_ctor_main
|
||||
include $(LOCAL_PATH)/Android.build.testlib.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Tool to use to align the shared libraries in a zip file.
|
||||
# -----------------------------------------------------------------------------
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := bionic_tests_zipalign.cpp
|
||||
LOCAL_MODULE := bionic_tests_zipalign
|
||||
LOCAL_CFLAGS := -Wall -Werror
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libziparchive-host liblog libbase libz libutils
|
||||
|
||||
LOCAL_MODULE_HOST_OS := darwin linux windows
|
||||
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
|
|
34
tests/run-on-host.sh
Executable file
34
tests/run-on-host.sh
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
. $(dirname $0)/../build/run-on-host.sh
|
||||
|
||||
if [ "$1" = glibc ]; then
|
||||
m -j bionic-unit-tests-glibc
|
||||
(
|
||||
cd ${ANDROID_BUILD_TOP}
|
||||
export ANDROID_DATA=${TARGET_OUT_DATA}
|
||||
export ANDROID_ROOT=${TARGET_OUT}
|
||||
${HOST_OUT}/nativetest64/bionic-unit-tests-glibc/bionic-unit-tests-glibc $@
|
||||
)
|
||||
exit 0
|
||||
elif [ "$1" != 32 -a "$1" != 64 ]; then
|
||||
echo "Usage: $0 [ 32 | 64 | glibc ] [gtest flags]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ${HOST_OS}-${HOST_ARCH} = linux-x86 -o ${HOST_OS}-${HOST_ARCH} = linux-x86_64 ]; then
|
||||
|
||||
prepare $1 bionic-unit-tests
|
||||
|
||||
if [ ${TARGET_ARCH} = x86 -o ${TARGET_ARCH} = x86_64 ]; then
|
||||
(
|
||||
cd ${ANDROID_BUILD_TOP}
|
||||
export ANDROID_DATA=${TARGET_OUT_DATA}
|
||||
export ANDROID_DNS_MODE=local
|
||||
export ANDROID_ROOT=${TARGET_OUT}
|
||||
${NATIVETEST}/bionic-unit-tests/bionic-unit-tests $@
|
||||
)
|
||||
else
|
||||
echo "$0 not supported on TARGET_ARCH=$TARGET_ARCH"
|
||||
fi
|
||||
fi
|
Loading…
Reference in a new issue