# 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")

group("test") {
  testonly = true
  deps = [
    ":tz_version_parrot_test",
  ]
}

executable("tz_version_parrot_test_bin") {
  testonly = true
  output_name = "tz_version_parrot_test"

  sources = [
    "tz_version_parrot_test.cc",
  ]

  deps = [
    "//examples/intl/tz_version_parrot",
    "//garnet/public/lib/fsl",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gmock",
  ]
}

test_package("tz_version_parrot_test") {
  deps = [
    ":tz_version_parrot_test_bin",
  ]

  tests = [
    {
      name = "tz_version_parrot_test"
      environments = basic_envs
    },
  ]
}
