// 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 {
    // 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",
    ],
    shared_libs: [
        "libbinder_ndk",
        "libvintf",
    ],
    static_libs: [
        "android.hardware.radio-V2-ndk",
        "android.hardware.radio.config-V2-ndk",
        "android.hardware.radio.data-V2-ndk",
        "android.hardware.radio.ims-V1-ndk",
        "android.hardware.radio.ims.media-V1-ndk",
        "android.hardware.radio.messaging-V2-ndk",
        "android.hardware.radio.modem-V2-ndk",
        "android.hardware.radio.network-V2-ndk",
        "android.hardware.radio.sap-V1-ndk",
        "android.hardware.radio.sim-V2-ndk",
        "android.hardware.radio.voice-V2-ndk",
    ],
    test_suites: [
        "general-tests",
        "vts",
    ],
}
