/*
 * Copyright (C) 2018 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: "test_libbinder_ndk_defaults",
    shared_libs: [
        "libbase",
    ],
    strip: {
        none: true,
    },
    cflags: [
        "-O0",
        "-g",
    ],
}

cc_library_static {
    name: "test_libbinder_ndk_library",
    defaults: ["test_libbinder_ndk_defaults"],
    export_include_dirs: ["include"],
    shared_libs: ["libbinder_ndk"],
    export_shared_lib_headers: ["libbinder_ndk"],
    srcs: ["iface.cpp"],
}

cc_defaults {
    name: "test_libbinder_ndk_test_defaults",
    defaults: ["test_libbinder_ndk_defaults"],
    shared_libs: [
        "libandroid_runtime_lazy",
        "libbase",
        "libbinder",
        "libbinder_ndk",
        "libutils",
    ],
    static_libs: [
        "test_libbinder_ndk_library",
    ],
}

// This test is a unit test of the low-level API that is presented here,
// specifically the parts which are outside of the NDK. Actual users should
// also instead use AIDL to generate these stubs. See android.binder.cts.
cc_test {
    name: "libbinder_ndk_test_client",
    defaults: ["test_libbinder_ndk_test_defaults"],
    srcs: ["main_client.cpp"],
}

cc_test {
    name: "libbinder_ndk_test_server",
    defaults: ["test_libbinder_ndk_test_defaults"],
    srcs: ["main_server.cpp"],
    gtest: false,
}

cc_test {
    name: "binderVendorDoubleLoadTest",
    vendor: true,
    srcs: [
        "binderVendorDoubleLoadTest.cpp",
    ],
    static_libs: [
        "IBinderVendorDoubleLoadTest-cpp",
        "IBinderVendorDoubleLoadTest-ndk_platform",
        "libbinder_aidl_test_stub-ndk_platform",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "libbinder_ndk",
        "libutils",
    ],
    test_suites: ["device-tests"],
}

aidl_interface {
    name: "IBinderVendorDoubleLoadTest",
    // TODO(b/119771576): only vendor is needed
    vendor_available: true,
    srcs: [
        "IBinderVendorDoubleLoadTest.aidl",
    ],
}
