//
// 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,
    cflags: [
        "-Wall",
        "-Werror",
    ],
    ldflags: [
        "-Wl,--rpath,${ORIGIN}",
        "-Wl,--enable-new-dtags",
    ],
    relative_install_path: "bionic-loader-test-libs",
    gtest: false,
    sanitize: {
        address: false,
        coverage: false,
    },
    stl: "libc++_static",
    target: {
        darwin: {
            enabled: false,
        },
    },
}

// -----------------------------------------------------------------------------
// Library to test ELF TLS
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libelf-tls-library",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["elf_tls_test_library.cpp"],
    cflags: ["-fno-emulated-tls"],
}

// -----------------------------------------------------------------------------
// Library to test gnu-styled hash
// -----------------------------------------------------------------------------
cc_test_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_test_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_test_library {
    name: "libdlext_test_norelro",
    defaults: ["bionic_testlib_defaults"],
    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_test_library {
    name: "libtest_simple",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_simple.cpp"],
}

// -----------------------------------------------------------------------------
// Library used by dlext direct unload on the namespace boundary tests
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_missing_symbol",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_missing_symbol.cpp"],
    allow_undefined_symbols: true,
    relative_install_path: "bionic-loader-test-libs/public_namespace_libs",
}

// -----------------------------------------------------------------------------
// Library used by dlext indirect unload on the namespace boundary tests
//
// These libraries produce following dependency graph:
// libtest_missing_symbol_root (private ns)
// +-> libbnstest_public (public ns)
// +-> libtest_missing_symbol_child_public (public ns)
//     +-> libnstest_public (public ns)
// +-> libtest_missing_symbol_child_private (private_ns)
//     +-> libnstest_public (public_ns)
//
// All libraries except libtest_missing_symbol are located in
// private_namespace_libs/
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_missing_symbol_child_public",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["empty.cpp"],
    relative_install_path: "bionic-loader-test-libs/public_namespace_libs",
    shared_libs: ["libnstest_public"],
}

cc_test_library {
    name: "libtest_missing_symbol_child_private",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["empty.cpp"],
    relative_install_path: "bionic-loader-test-libs/private_namespace_libs",
    shared_libs: ["libnstest_public"],
}

cc_test_library {
    name: "libtest_missing_symbol_root",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_missing_symbol.cpp"],
    relative_install_path: "bionic-loader-test-libs/private_namespace_libs",
    allow_undefined_symbols: true,
    shared_libs: [
        "libnstest_public",
        "libtest_missing_symbol_child_public",
        "libtest_missing_symbol_child_private",
    ],
}

// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Library used by dlfcn nodelete tests
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_nodelete_1",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_nodelete_1.cpp"],
}

// -----------------------------------------------------------------------------
// Library used by dlfcn nodelete tests
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_nodelete_2",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_nodelete_2.cpp"],
}

// -----------------------------------------------------------------------------
// Library used by dlfcn nodelete tests
// -----------------------------------------------------------------------------
cc_test_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
//
// This set of libraries is used to verify linker namespaces.
//
// Test cases
// 1. Check that private libraries loaded in different namespaces are
//    different. Check that dlsym does not confuse them.
// 2. Check that public libraries loaded in different namespaces are shared
//    between them.
// 3. Check that namespace sticks on dlopen
// 4. Check that having access to shared library (libnstest_public.so)
//    does not expose symbols from dependent library (libnstest_public_internal.so)
//
// Dependency tree (visibility)
// libnstest_root.so (this should be local to the namespace)
// +-> libnstest_public.so
//     +-> libnstest_public_internal.so
// +-> libnstest_private.so
//
// libnstest_dlopened.so (library in private namespace dlopened from libnstest_root.so)
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libnstest_root",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["namespaces_root.cpp"],
    relative_install_path: "bionic-loader-test-libs/private_namespace_libs",
    shared_libs: [
        "libnstest_public",
        "libnstest_private",
    ],
}

cc_test_library {
    name: "libnstest_public_internal",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["namespaces_public_internal.cpp"],
    relative_install_path: "bionic-loader-test-libs/public_namespace_libs",
}

cc_test_library {
    name: "libnstest_public",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["namespaces_public.cpp"],
    relative_install_path: "bionic-loader-test-libs/public_namespace_libs",
    shared_libs: ["libnstest_public_internal"],
}

cc_test_library {
    name: "libnstest_private",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["namespaces_private.cpp"],
    relative_install_path: "bionic-loader-test-libs/private_namespace_libs",
}

cc_test_library {
    name: "libnstest_dlopened",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["namespaces_dlopened.cpp"],
    relative_install_path: "bionic-loader-test-libs/private_namespace_libs",
}

// -----------------------------------------------------------------------------
// Build test helper libraries for linker namespaces for allow all shared libs
//
// This set of libraries is used to verify linker namespaces for allow all
// shared libs.
//
// Test cases
// 1. Check that namespace a exposes libnstest_ns_a_public1 to
//    namespace b while keeping libnstest_ns_a_public1_internal as an
//    internal lib.
// 2. Check that namespace b exposes all libraries to namespace a.
//
// Dependency tree (visibility)
// libnstest_ns_b_public2.so  (ns:b)
// +-> libnstest_ns_a_public1.so  (ns:a)
//     +-> libnstest_ns_a_public2_internal.so  (ns:a)
//     +-> libnstest_ns_b_public3.so  (ns:b)
//
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libnstest_ns_a_public1",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["libnstest_ns_a_public1.cpp"],
    relative_install_path: "bionic-loader-test-libs/ns_a",
    shared_libs: [
        "libnstest_ns_a_public1_internal",
        "libnstest_ns_b_public3",
    ],
}

cc_test_library {
    name: "libnstest_ns_a_public1_internal",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["libnstest_ns_a_public1_internal.cpp"],
    relative_install_path: "bionic-loader-test-libs/ns_a",
}

cc_test_library {
    name: "libnstest_ns_b_public2",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["libnstest_ns_b_public2.cpp"],
    relative_install_path: "bionic-loader-test-libs/ns_b",
    shared_libs: ["libnstest_ns_a_public1"],
}

cc_test_library {
    name: "libnstest_ns_b_public3",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["libnstest_ns_b_public3.cpp"],
    relative_install_path: "bionic-loader-test-libs/ns_b",
}

// -----------------------------------------------------------------------------
// 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_test_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_test_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_test_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_test_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_test_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_test_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_test_library {
    name: "libtest_relo_check_dt_needed_order_1",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_relo_check_dt_needed_order_1.cpp"],
}

cc_test_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_test_library {
    name: "libtest_ifunc",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_ifunc.cpp"],

    arch: {
        mips: {
            enabled: false,
        },
        mips64: {
            enabled: false,
        },
    },
}

cc_test_library {
    name: "libtest_ifunc_variable",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_ifunc_variable.cpp"],
    shared_libs: ["libtest_ifunc_variable_impl"],

    arch: {
        mips: {
            enabled: false,
        },
        mips64: {
            enabled: false,
        },
    },
}

cc_test_library {
    name: "libtest_ifunc_variable_impl",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_ifunc_variable_impl.cpp"],

    arch: {
        mips: {
            enabled: false,
        },
        mips64: {
            enabled: false,
        },
    },
}

// -----------------------------------------------------------------------------
// Library used by atexit tests
// -----------------------------------------------------------------------------

cc_test_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_test_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_test_library {
    name: "libdl_preempt_test_2",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dl_preempt_library_2.cpp"],
}

// -----------------------------------------------------------------------------
// Library with DF_1_GLOBAL
// -----------------------------------------------------------------------------
cc_test_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_test_library {
    name: "libtest_dlsym_df_1_global",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dl_df_1_use_global.cpp"],
}

// -----------------------------------------------------------------------------
// Library with DF_1_GLOBAL which will be dlopened
// (note: libdl_test_df_1_global above will be included in DT_NEEDED)
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_dlopen_df_1_global",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dl_df_1_global_dummy.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 with weak function
// -----------------------------------------------------------------------------
cc_test_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_test_library {
    name: "libtest_dlsym_from_this",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlsym_from_this_symbol.cpp"],
    shared_libs: ["libtest_dlsym_from_this_child"],
}

// -----------------------------------------------------------------------------
cc_test_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_test_library {
    name: "libtest_dlsym_from_this_grandchild",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlsym_from_this_symbol2.cpp"],
}

// -----------------------------------------------------------------------------
// Empty library
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_empty",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["empty.cpp"],
}

// -----------------------------------------------------------------------------
// Library for inaccessible shared library test
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtestshared",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["empty.cpp"],
    relative_install_path: "bionic-loader-test-libs/inaccessible_libs",
}

// -----------------------------------------------------------------------------
// Library with weak undefined function
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_dlopen_weak_undefined_func",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_weak_undefined.cpp"],
}

// -----------------------------------------------------------------------------
// Check that RTLD_NEXT of a libc symbol works in dlopened library
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_check_rtld_next_from_library",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["check_rtld_next_from_library.cpp"],
}

// -----------------------------------------------------------------------------
// Library with constructor that calls dlopen() b/7941716
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_dlopen_from_ctor",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_testlib_dlopen_from_ctor.cpp"],
}

// -----------------------------------------------------------------------------
// Libraries used to check init/fini call order
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_init_fini_order_root",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_check_init_fini_root.cpp"],
    shared_libs: [
        "libtest_init_fini_order_child",
        "libtest_init_fini_order_grand_child",
    ],
}

cc_test_library {
    name: "libtest_init_fini_order_root2",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_check_init_fini_root.cpp"],
    shared_libs: [
        "libtest_init_fini_order_grand_child",
        "libtest_init_fini_order_child",
    ],
}

cc_test_library {
    name: "libtest_init_fini_order_child",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_check_init_fini_child.cpp"],
    shared_libs: ["libtest_init_fini_order_grand_child"],
}

cc_test_library {
    name: "libtest_init_fini_order_grand_child",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["dlopen_check_init_fini_grand_child.cpp"],
}

// -----------------------------------------------------------------------------
// Library that depends on the library with constructor that calls dlopen() b/7941716
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_dlopen_from_ctor_main",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["empty.cpp"],
    shared_libs: ["libtest_dlopen_from_ctor"],
}

// -----------------------------------------------------------------------------
// Library with non-trivial thread_local variable to test dlclose()
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libtest_thread_local_dtor",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["thread_local_dtor.cpp"],
}

// -----------------------------------------------------------------------------
// 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",
    ],
}

cc_test_library {
    name: "libcfi-test",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["cfi_test_lib.cpp"],
    sanitize: {
        cfi: false,
    },
}

cc_test_library {
    name: "libcfi-test-bad",
    defaults: ["bionic_testlib_defaults"],
    srcs: ["cfi_test_bad_lib.cpp"],
    sanitize: {
        cfi: false,
    },
}

cc_test {
    name: "cfi_test_helper",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["cfi_test_helper.cpp"],
    ldflags: ["-rdynamic"],
}

cc_test {
    name: "cfi_test_helper2",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["cfi_test_helper2.cpp"],
    shared_libs: ["libcfi-test"],
    ldflags: ["-Wl,--rpath,${ORIGIN}/.."],
}

cc_test {
    name: "preinit_getauxval_test_helper",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["preinit_getauxval_test_helper.cpp"],
}

cc_test {
    name: "preinit_syscall_test_helper",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["preinit_syscall_test_helper.cpp"],
}

cc_test {
    name: "ld_preload_test_helper",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_preload_test_helper.cpp"],
    shared_libs: ["ld_preload_test_helper_lib1"],
    ldflags: ["-Wl,--rpath,${ORIGIN}/.."],
}

cc_test_library {
    name: "ld_preload_test_helper_lib1",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_preload_test_helper_lib1.cpp"],
}

cc_test_library {
    name: "ld_preload_test_helper_lib2",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_preload_test_helper_lib2.cpp"],
}

cc_test {
    name: "ld_config_test_helper",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_config_test_helper.cpp"],
    shared_libs: ["ld_config_test_helper_lib1"],
    ldflags: ["-Wl,--rpath,${ORIGIN}/.."],
}

cc_test_library {
    name: "ld_config_test_helper_lib1",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_config_test_helper_lib1.cpp"],
    shared_libs: ["ld_config_test_helper_lib2"],
    relative_install_path: "bionic-loader-test-libs/ns2",
}

cc_test_library {
    name: "ld_config_test_helper_lib2",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_config_test_helper_lib2.cpp"],
    relative_install_path: "bionic-loader-test-libs/ns2",
}

cc_test_library {
    name: "ld_config_test_helper_lib3",
    host_supported: false,
    defaults: ["bionic_testlib_defaults"],
    srcs: ["ld_config_test_helper_lib3.cpp"],
}
