//
// 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",
        "assert_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",
        "langinfo_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_msg_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_sem_test.cpp",
        "sys_sendfile_test.cpp",
        "sys_shm_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",
        "system_properties_test2.cpp",
        "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",
        "external/tinyxml2",
    ],

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

    generated_headers: ["generated_android_ids"],
}

// -----------------------------------------------------------------------------
// 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"
    ],
    shared: {
        enabled: false,
    },
}

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"
    ],
    shared: {
        enabled: false,
    },
}

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"
    ],
    shared: {
        enabled: false,
    },
}

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"
    ],
    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",
        "libfortify1-tests-gcc",
        "libfortify2-tests-gcc",
        "libfortify1-tests-clang",
        "libfortify2-tests-clang",
    ],
    shared: {
        enabled: false,
    },
}

// -----------------------------------------------------------------------------
// Library of bionic customized gtest main function, with simplified output format.
// -----------------------------------------------------------------------------
cc_test_library {
    name: "libBionicGtestMain",
    defaults: ["bionic_tests_defaults"],
    srcs: [
        "gtest_main.cpp",
        "gtest_globals.cpp",
    ],
    static_libs: [
        "libbase",
    ],
    include_dirs: [
        "bionic/libc",
    ],
    target: {
        darwin: {
            enabled: true,
        },
    },
    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",
        "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: [
                "libpagemap",
                "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_main.cpp",
        "gtest_globals_cts.cpp",
    ],
    cppflags: ["-DUSING_GTEST_OUTPUT_FORMAT"],
    shared: {
        enabled: false,
    },
}

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

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

    srcs: [
        // TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
        "__cxa_thread_atexit_test.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: [
                "libdl",
                "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",
                "libpagemap",
                "libziparchive",
                "libz",
                "libutils",
                "libLLVMObject",
                "libLLVMBitReader",
                "libLLVMMC",
                "libLLVMMCParser",
                "libLLVMCore",
                "libLLVMSupport",
            ],
            ldflags: [
                "-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
                "-Wl,--enable-new-dtags",
            ],
        },
    }
}

cc_test {
    name: "bionic-unit-tests",
    defaults: ["bionic_unit_tests_defaults", "bionic_tests_defaults"],
    clang: true,

    target: {
        android: {
            shared_libs: ["libicuuc"],
        },
    },
}

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,

    srcs: [
        "gtest_preinit_debuggerd.cpp",
    ],
    whole_static_libs: [
        "libBionicTests",
        "libBionicGtestMain",
    ],

    static_libs: [
        "libm",
        "libc",
        "libc++_static",
        "libdl",
        "libtinyxml2",
        "liblog",
        "libbase",
        "libdebuggerd_handler",
    ],

    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_symlink_support.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,--rpath,${ORIGIN}/../bionic-loader-test-libs",
        "-Wl,--export-dynamic",
    ],

    sanitize: {
        never: false,
    },
}

subdirs = ["libs"]
