# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
import("//src/lib/isolated_devmgr/devmgr_manifest.gni")

devmgr_manifest("devmgr-manifest") {
}

test_package("telephony-tests") {
  package_name = "telephony-tests"

  public_deps = [
    ":devmgr-manifest",
    "component-integration:fake-at-driver-test",
    "component-integration:fake-qmi-query",
    "component-integration:snooper",
    "driver-integration:telephony-qmi-usb-integration-test",
    "driver-unit:tel-driver-unit-test",
  ]

  extra = [ "$target_gen_dir/devmgr.manifest" ]

  tests = [
    {
      name = "telephony-qmi-usb-integration-test"
      environments = basic_envs
    },
    {
      name = "tel-driver-unit-test"
      environments = basic_envs
    },
    {
      name = "tel_fake_qmi_query"
      environments = basic_envs
    },
    {
      name = "tel_fake_at_driver_test"
      environments = basic_envs
    },
    {
      name = "tel_snooper_multi_clients"
      environments = basic_envs
    },
  ]
}
