# Copyright 2018 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/package.gni")
import("//build/testing/environments.gni")

executable("unittests") {
  testonly = true
  output_name = "garnet_lib_unittests"

  deps = [
    "//garnet/public/lib/backoff:unittests",
    "//garnet/public/lib/callback:unittests",
    "//garnet/public/lib/gtest:unittests",
    "//garnet/public/lib/netconnector/cpp:unittests",
    "//garnet/public/lib/network_wrapper:unittests",
    "//garnet/public/lib/timekeeper:unittests",
    "//third_party/googletest:gtest_main",
  ]
}

package("garnet_lib_tests") {
  testonly = true

  deps = [
    ":unittests",
  ]

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