//
// 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,
    cpp_std: "experimental",
    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",
    ],
    // Make the bionic tests implicitly test bionic's shadow call stack support.
    arch: {
        arm64: {
           cflags: ["-fsanitize=shadow-call-stack"],
        },
    },
    stl: "libc++",
    sanitize: {
        address: false,
    },
    bootstrap: true,
}

// -----------------------------------------------------------------------------
// All standard tests.
// -----------------------------------------------------------------------------

// Test diagnostics emitted by clang. The library that results is useless; we
// just want to run '-Xclang -verify', which will fail if the diagnostics don't
// match up with what the source file says they should be.
cc_test_library {
    name: "clang_diagnostic_tests",
    cflags: [
      "-Xclang",
      "-verify",
    ],
    srcs: ["sys_ioctl_diag_test.cpp"],
}

cc_test_library {
    name: "libBionicStandardTests",
    defaults: ["bionic_tests_defaults"],
    srcs: [
        "__aeabi_read_tp_test.cpp",
        "alloca_test.cpp",
        "android_get_device_api_level.cpp",
        "arpa_inet_test.cpp",
        "async_safe_test.cpp",
        "assert_test.cpp",
        "buffer_tests.cpp",
        "bug_26110743_test.cpp",
        "byteswap_test.cpp",
        "complex_test.cpp",
        "complex_force_long_double_test.cpp",
        "ctype_test.cpp",
        "dirent_test.cpp",
        "elf_test.cpp",
        "endian_test.cpp",
        "errno_test.cpp",
        "error_test.cpp",
        "eventfd_test.cpp",
        "fcntl_test.cpp",
        "fdsan_test.cpp",
        "fenv_test.cpp",
        "float_test.cpp",
        "ftw_test.cpp",
        "getauxval_test.cpp",
        "getcwd_test.cpp",
        "glob_test.cpp",
        "grp_pwd_test.cpp",
        "grp_pwd_file_test.cpp",
        "iconv_test.cpp",
        "ifaddrs_test.cpp",
        "ifunc_test.cpp",
        "inttypes_test.cpp",
        "iso646_test.c",
        "langinfo_test.cpp",
        "leak_test.cpp",
        "libgen_basename_test.cpp",
        "libgen_test.cpp",
        "limits_test.cpp",
        "linux_swab_test.cpp",
        "locale_test.cpp",
        "malloc_iterate_test.cpp",
        "malloc_test.cpp",
        "math_test.cpp",
        "math_force_long_double_test.cpp",
        "membarrier_test.cpp",
        "mntent_test.cpp",
        "netdb_test.cpp",
        "net_if_test.cpp",
        "netinet_ether_test.cpp",
        "netinet_in_test.cpp",
        "netinet_ip_icmp_test.cpp",
        "netinet_udp_test.cpp",
        "nl_types_test.cpp",
        "poll_test.cpp",
        "pthread_test.cpp",
        "pty_test.cpp",
        "regex_test.cpp",
        "resolv_test.cpp",
        "sched_test.cpp",
        "scs_test.cpp",
        "scsi_sg_test.cpp",
        "search_test.cpp",
        "semaphore_test.cpp",
        "setjmp_test.cpp",
        "signal_test.cpp",
        "spawn_test.cpp",
        "stack_protector_test.cpp",
        "stack_protector_test_helper.cpp",
        "stack_unwinding_test.cpp",
        "stdalign_test.cpp",
        "stdarg_test.cpp",
        "stdatomic_test.cpp",
        "stdbool_test.c",
        "stdint_test.cpp",
        "stdio_nofortify_test.cpp",
        "stdio_test.cpp",
        "stdio_ext_test.cpp",
        "stdlib_test.cpp",
        "stdnoreturn_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_msg_test.cpp",
        "sys_param_test.cpp",
        "sys_personality_test.cpp",
        "sys_prctl_test.cpp",
        "sys_procfs_test.cpp",
        "sys_ptrace_test.cpp",
        "sys_quota_test.cpp",
        "sys_random_test.cpp",
        "sys_resource_test.cpp",
        "sys_select_test.cpp",
        "sys_sem_test.cpp",
        "sys_sendfile_test.cpp",
        "sys_shm_test.cpp",
        "sys_signalfd_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_ttydefaults_test.cpp",
        "sys_types_test.cpp",
        "sys_uio_test.cpp",
        "sys_un_test.cpp",
        "sys_vfs_test.cpp",
        "sys_xattr_test.cpp",
        "system_properties_test.cpp",
        "system_properties_test2.cpp",
        "termios_test.cpp",
        "tgmath_test.c",
        "time_test.cpp",
        "uchar_test.cpp",
        "unistd_nofortify_test.cpp",
        "unistd_test.cpp",
        "utmp_test.cpp",
        "wchar_test.cpp",
        "wctype_test.cpp",
    ],

    include_dirs: [
        "bionic/libc",
    ],

    target: {
        bionic: {
            whole_static_libs: [
                "libasync_safe",
                "libprocinfo",
                "libsystemproperties",
            ],
        },
    },

    static_libs: [
        "libtinyxml2",
        "liblog",
        "libbase",
    ],
    shared: {
        enabled: false,
    },

    generated_headers: ["generated_android_ids"],
}

cc_test_library {
    name: "libBionicElfTlsTests",
    defaults: ["bionic_tests_defaults"],
    srcs: [
        "elftls_test.cpp",
    ],
    include_dirs: [
        "bionic/libc",
    ],
    shared: {
        enabled: false,
    },
    cflags: [
        "-fno-emulated-tls",
    ],
}

cc_test_library {
    name: "libBionicElfTlsLoaderTests",
    defaults: ["bionic_tests_defaults"],
    srcs: [
        "elftls_dl_test.cpp",
    ],
    include_dirs: [
        "bionic/libc",
    ],
    static_libs: [
        "liblog",
        "libbase",
    ],
    shared: {
        enabled: false,
    },
    cflags: [
        "-fno-emulated-tls",
    ],
}

// -----------------------------------------------------------------------------
// Fortify tests.
// -----------------------------------------------------------------------------

cc_defaults {
    name: "bionic_fortify_tests_defaults",
    cflags: [
        "-U_FORTIFY_SOURCE",
    ],
    srcs: ["fortify_test_main.cpp"],
    target: {
        host: {
            clang_cflags: ["-D__clang__"],
        },
    },
}

// If building this fails, then we have both FORTIFY and ASAN enabled, which
// isn't desirable. (Ideally, we'd emit FORTIFY diagnostics even with ASAN
// enabled, but that's not a reality today.) This is meant to be otherwise
// unused.
cc_test_library {
    name: "fortify_disabled_for_asan",
    cflags: [
        "-Werror",
        "-D_FORTIFY_SOURCE=2",
        // "sanitize: address" doesn't work on platforms where libasan isn't
        // enabled. Since the intent is just to build this, we can get away with
        // passing this flag on its own.
        "-fsanitize=address",
    ],
    // Ignore that we don't have ASAN symbols linked in.
    allow_undefined_symbols: true,
    srcs: ["fortify_filecheck_diagnostics_test.cpp"],
}

// Ensure we don't use FORTIFY'ed functions with the static analyzer/clang-tidy:
// it can confuse these tools pretty easily. If this builds successfully, then
// __clang_analyzer__ overrode FORTIFY. Otherwise, FORTIFY was incorrectly
// enabled. The library that results from building this is meant to be unused.
cc_test_library {
    name: "fortify_disabled_for_tidy",
    cflags: [
        "-Werror",
        "-D_FORTIFY_SOURCE=2",
        "-D__clang_analyzer__",
    ],
    srcs: ["fortify_filecheck_diagnostics_test.cpp"],
}

cc_test_library {
    name: "libfortify1-tests-clang",
    defaults: [
        "bionic_fortify_tests_defaults",
        "bionic_tests_defaults",
    ],
    cflags: [
        "-D_FORTIFY_SOURCE=1",
        "-DTEST_NAME=Fortify1_clang",
    ],
    shared: {
        enabled: false,
    },
}

cc_test_library {
    name: "libfortify2-tests-clang",
    defaults: [
        "bionic_fortify_tests_defaults",
        "bionic_tests_defaults",
    ],
    cflags: [
        "-D_FORTIFY_SOURCE=2",
        "-DTEST_NAME=Fortify2_clang",
    ],
    shared: {
        enabled: false,
    },
}

// -----------------------------------------------------------------------------
// Library of all tests (excluding the dynamic linker tests).
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libBionicTests",
    defaults: ["bionic_tests_defaults"],
    whole_static_libs: [
        "libBionicStandardTests",
        "libBionicElfTlsTests",
        "libfortify1-tests-clang",
        "libfortify2-tests-clang",
    ],
    shared: {
        enabled: false,
    },
}

cc_test_library {
    name: "libBionicLoaderTests",
    defaults: [
        "bionic_tests_defaults",
        "llvm-defaults",
    ],
    srcs: [
        "atexit_test.cpp",
        "dl_test.cpp",
        "dlfcn_symlink_support.cpp",
        "dlfcn_test.cpp",
        "link_test.cpp",
        "pthread_dlfcn_test.cpp",
    ],
    static_libs: [
        "libbase",
    ],
    include_dirs: [
        "bionic/libc",
    ],
    shared: {
        enabled: false,
    },
    target: {
        android: {
            srcs: [
                "cfi_test.cpp",
                "dlext_test.cpp",
                "libdl_test.cpp",
            ],
            static_libs: [
                "libmeminfo",
                "libprocinfo",
                "libziparchive",
                "libLLVMObject",
                "libLLVMBitReader",
                "libLLVMMC",
                "libLLVMMCParser",
                "libLLVMCore",
                "libLLVMSupport",
            ],
        },
    },
}

// -----------------------------------------------------------------------------
// 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_globals_cts.cpp",
        "gtest_main.cpp",
    ],
    shared: {
        enabled: false,
    },
    whole_static_libs: [
        "libgtest_isolated",
    ],
}

// -----------------------------------------------------------------------------
// Tests for the device using bionic's .so. Run with:
//   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
//   adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests
// -----------------------------------------------------------------------------
cc_defaults {
    name: "bionic_unit_tests_defaults",
    host_supported: false,
    gtest: false,

    defaults: [
        "bionic_tests_defaults",
    ],

    whole_static_libs: [
        "libBionicTests",
        "libBionicLoaderTests",
        "libBionicElfTlsLoaderTests",
    ],

    static_libs: [
        "libtinyxml2",
        "liblog",
        "libbase",
        "libgtest_isolated",
    ],

    srcs: [
        // TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
        "__cxa_thread_atexit_test.cpp",
        "gtest_globals.cpp",
        "gtest_main.cpp",
        "thread_local_test.cpp",
    ],

    conlyflags: [
        "-fexceptions",
        "-fnon-call-exceptions",
    ],

    ldflags: ["-Wl,--export-dynamic"],

    include_dirs: ["bionic/libc"],

    stl: "libc++_static",

    target: {
        android: {
            shared_libs: [
                "ld-android",
                "libandroidicu",
                "libdl",
                "libdl_android",
                "libdl_preempt_test_1",
                "libdl_preempt_test_2",
                "libdl_test_df_1_global",
                "libtest_elftls_shared_var",
                "libtest_elftls_tprel",
            ],
            static_libs: [
                // The order of these libraries matters, do not shuffle them.
                "libbase",
                "libmeminfo",
                "libziparchive",
                "libz",
                "libutils",
                "libLLVMObject",
                "libLLVMBitReader",
                "libLLVMMC",
                "libLLVMMCParser",
                "libLLVMCore",
                "libLLVMSupport",
            ],
            ldflags: [
                "-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
                "-Wl,--enable-new-dtags",
            ],
        },
    },

    required: [
        "cfi_test_helper",
        "cfi_test_helper2",
        "elftls_dlopen_ie_error_helper",
        "exec_linker_helper",
        "exec_linker_helper_lib",
        "libtest_dt_runpath_a",
        "libtest_dt_runpath_b",
        "libtest_dt_runpath_c",
        "libtest_dt_runpath_x",
        "libtest_dt_runpath_y",
        "libatest_simple_zip",
        "libcfi-test",
        "libcfi-test-bad",
        "libdlext_test_different_soname",
        "libdlext_test_fd",
        "libdlext_test_norelro",
        "libdlext_test_recursive",
        "libdlext_test_runpath_zip_zipaligned",
        "libdlext_test",
        "libdlext_test_zip",
        "libdlext_test_zip_zipaligned",
        "libdl_preempt_test_1",
        "libdl_preempt_test_2",
        "libdl_test_df_1_global",
        "libgnu-hash-table-library",
        "libsysv-hash-table-library",
        "libtestshared",
        "libtest_atexit",
        "libtest_check_order_dlsym_1_left",
        "libtest_check_order_dlsym_2_right",
        "libtest_check_order_dlsym_3_c",
        "libtest_check_order_dlsym_a",
        "libtest_check_order_dlsym_b",
        "libtest_check_order_dlsym_d",
        "libtest_check_order_dlsym",
        "libtest_check_order_reloc_root_1",
        "libtest_check_order_reloc_root_2",
        "libtest_check_order_reloc_root",
        "libtest_check_order_reloc_siblings_1",
        "libtest_check_order_reloc_siblings_2",
        "libtest_check_order_reloc_siblings_3",
        "libtest_check_order_reloc_siblings_a",
        "libtest_check_order_reloc_siblings_b",
        "libtest_check_order_reloc_siblings_c_1",
        "libtest_check_order_reloc_siblings_c_2",
        "libtest_check_order_reloc_siblings_c",
        "libtest_check_order_reloc_siblings_d",
        "libtest_check_order_reloc_siblings_e",
        "libtest_check_order_reloc_siblings_f",
        "libtest_check_order_reloc_siblings",
        "libtest_check_rtld_next_from_library",
        "libtest_dlopen_df_1_global",
        "libtest_dlopen_from_ctor_main",
        "libtest_dlopen_from_ctor",
        "libtest_dlopen_weak_undefined_func",
        "libtest_dlsym_df_1_global",
        "libtest_dlsym_from_this_child",
        "libtest_dlsym_from_this_grandchild",
        "libtest_dlsym_from_this",
        "libtest_dlsym_weak_func",
        "libtest_dt_runpath_d",
        "libtest_elftls_dynamic",
        "libtest_elftls_dynamic_filler_1",
        "libtest_elftls_dynamic_filler_2",
        "libtest_elftls_dynamic_filler_3",
        "libtest_elftls_shared_var",
        "libtest_elftls_shared_var_ie",
        "libtest_elftls_tprel",
        "libtest_empty",
        "libtest_ifunc_variable_impl",
        "libtest_ifunc_variable",
        "libtest_ifunc",
        "libtest_init_fini_order_child",
        "libtest_init_fini_order_grand_child",
        "libtest_init_fini_order_root2",
        "libtest_init_fini_order_root",
        "libtest_missing_symbol_child_public",
        "libtest_missing_symbol_child_private",
        "libtest_missing_symbol_root",
        "libtest_missing_symbol",
        "libtest_nodelete_1",
        "libtest_nodelete_2",
        "libtest_nodelete_dt_flags_1",
        "libtest_pthread_atfork",
        "libtest_relo_check_dt_needed_order_1",
        "libtest_relo_check_dt_needed_order_2",
        "libtest_relo_check_dt_needed_order",
        "libtest_simple",
        "libtest_two_parents_child",
        "libtest_two_parents_parent1",
        "libtest_two_parents_parent2",
        "libtest_versioned_lib",
        "libtest_versioned_libv1",
        "libtest_versioned_libv2",
        "libtest_versioned_otherlib_empty",
        "libtest_versioned_otherlib",
        "libtest_versioned_uselibv1",
        "libtest_versioned_uselibv2_other",
        "libtest_versioned_uselibv2",
        "libtest_versioned_uselibv3_other",
        "libtest_with_dependency_loop_a",
        "libtest_with_dependency_loop_b",
        "libtest_with_dependency_loop_c",
        "libtest_with_dependency_loop",
        "libtest_with_dependency",
        "libtest_indirect_thread_local_dtor",
        "libtest_invalid-empty_shdr_table.so",
        "libtest_invalid-rw_load_segment.so",
        "libtest_invalid-unaligned_shdr_offset.so",
        "libtest_invalid-zero_shdr_table_content.so",
        "libtest_invalid-zero_shdr_table_offset.so",
        "libtest_invalid-zero_shentsize.so",
        "libtest_invalid-zero_shstrndx.so",
        "libtest_invalid-textrels.so",
        "libtest_invalid-textrels2.so",
        "libtest_thread_local_dtor",
        "libtest_thread_local_dtor2",
        "preinit_getauxval_test_helper",
        "preinit_syscall_test_helper",
        "libnstest_private_external",
        "libnstest_dlopened",
        "libnstest_private",
        "libnstest_root_not_isolated",
        "libnstest_root",
        "libnstest_public",
        "libnstest_public_internal",
        "libnstest_ns_a_public1",
        "libnstest_ns_a_public1_internal",
        "libnstest_ns_b_public2",
        "libnstest_ns_b_public3",
        "libsegment_gap_inner",
        "libsegment_gap_outer",
        "ld_preload_test_helper",
        "ld_preload_test_helper_lib1",
        "ld_preload_test_helper_lib2",
        "ld_config_test_helper",
        "ld_config_test_helper_lib1",
        "ld_config_test_helper_lib2",
        "ld_config_test_helper_lib3",
    ],
}

cc_test {
    name: "bionic-unit-tests",
    defaults: [
        "bionic_unit_tests_defaults",
    ],
}

cc_test {
    name: "bionic-unit-tests-scudo",
    defaults: [
        "bionic_unit_tests_defaults",
    ],

    shared_libs: [
        "libc_scudo",
    ],
}

// -----------------------------------------------------------------------------
// Tests for the device linked against bionic's static library. Run with:
//   adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static
//   adb shell /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
// -----------------------------------------------------------------------------
cc_test {
    name: "bionic-unit-tests-static",
    gtest: false,
    defaults: ["bionic_tests_defaults"],
    host_supported: false,

    srcs: [
        "gtest_preinit_debuggerd.cpp",
        "gtest_globals.cpp",
        "gtest_main.cpp",

        // The Bionic allocator has its own C++ API. It isn't packaged into its
        // own library, so it can only be tested when it's part of libc.a.
        "bionic_allocator_test.cpp",
    ],
    include_dirs: [
        "bionic/libc",
    ],
    whole_static_libs: [
        "libBionicTests",
    ],

    static_libs: [
        "libm",
        "libc",
        "libdl",
        "libtinyxml2",
        "liblog",
        "libbase",
        "libdebuggerd_handler",
        "libgtest_isolated",
        "libtest_elftls_shared_var",
        "libtest_elftls_tprel",
    ],

    static_executable: true,
    stl: "libc++_static",
}

// -----------------------------------------------------------------------------
// 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",
    gtest: false,
    defaults: ["bionic_tests_defaults"],

    srcs: [
        "atexit_test.cpp",
        "dlfcn_symlink_support.cpp",
        "dlfcn_test.cpp",
        "dl_test.cpp",
        "gtest_globals.cpp",
        "gtest_main.cpp",
        "pthread_dlfcn_test.cpp",
    ],

    shared_libs: [
        "libdl_preempt_test_1",
        "libdl_preempt_test_2",
        "libdl_test_df_1_global",
        "libtest_elftls_shared_var",
        "libtest_elftls_tprel",
    ],

    whole_static_libs: [
        "libBionicStandardTests",
        "libBionicElfTlsTests",
        "libBionicElfTlsLoaderTests",
        "libfortify1-tests-clang",
        "libfortify2-tests-clang",
    ],

    static_libs: [
        "libbase",
        "liblog",
        "libcutils",
        "libgtest_isolated",
    ],

    host_ldlibs: [
        "-lresolv",
        "-lutil",
    ],

    include_dirs: [
        "bionic/libc",
    ],

    ldflags: [
        "-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
        "-Wl,--export-dynamic",
    ],

    sanitize: {
        never: false,
    },

    target: {
        linux_bionic: {
            enabled: false,
        },
    },
}

subdirs = ["*"]
