// Copyright 2021 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.

package {
    default_team: "trendy_team_fwk_telephony",
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

cc_test {
    name: "VtsHalRadioTargetTest",
    defaults: [
        "VtsHalTargetTestDefaults",
        "use_libaidlvintf_gtest_helper_static",
    ],
    tidy_timeout_srcs: [
        "radio_messaging_test.cpp",
        "radio_network_test.cpp",
        "radio_sim_test.cpp",
        "radio_voice_test.cpp",
    ],
    srcs: [
        "radio_aidl_hal_utils.cpp",
        "radio_config_indication.cpp",
        "radio_config_response.cpp",
        "radio_config_test.cpp",
        "radio_data_indication.cpp",
        "radio_data_response.cpp",
        "radio_data_test.cpp",
        "radio_ims_indication.cpp",
        "radio_ims_response.cpp",
        "radio_ims_test.cpp",
        "radio_imsmedia_listener.cpp",
        "radio_imsmedia_session_listener.cpp",
        "radio_imsmedia_test.cpp",
        "radio_messaging_indication.cpp",
        "radio_messaging_response.cpp",
        "radio_messaging_test.cpp",
        "radio_modem_indication.cpp",
        "radio_modem_response.cpp",
        "radio_modem_test.cpp",
        "radio_network_indication.cpp",
        "radio_network_response.cpp",
        "radio_network_test.cpp",
        "radio_sap_callback.cpp",
        "radio_sap_test.cpp",
        "radio_sim_indication.cpp",
        "radio_sim_response.cpp",
        "radio_sim_test.cpp",
        "radio_voice_indication.cpp",
        "radio_voice_response.cpp",
        "radio_voice_test.cpp",
        "VtsHalRadioTargetTest.cpp",
    ],
    header_libs: [
        "jni_headers",
    ],
    shared_libs: [
        "libbinder_ndk",
        "libvintf",
        "server_configurable_flags",
    ],
    static_libs: [
        "android.hardware.radio-V3-ndk",
        "android.hardware.radio.config-V3-ndk",
        "android.hardware.radio.data-V3-ndk",
        "android.hardware.radio.ims-V2-ndk",
        "android.hardware.radio.ims.media-V2-ndk",
        "android.hardware.radio.messaging-V3-ndk",
        "android.hardware.radio.modem-V3-ndk",
        "android.hardware.radio.network-V3-ndk",
        "android.hardware.radio.sap-V1-ndk",
        "android.hardware.radio.sim-V3-ndk",
        "android.hardware.radio.voice-V3-ndk",
        "telephony_flags_c_lib",
    ],
    test_suites: [
        "general-tests",
        "vts",
    ],
}
