# 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/package.gni")
import("//build/test/test_package.gni")

group("cobalt") {
  testonly = true
  deps = [
    ":cobalt_lib_tests",
    ":tests",
    ":unittests",
  ]
}

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

  deps = [
    "//src/lib/cobalt/cpp:unittests",
    "//src/lib/fxl/test:gtest_main",
  ]
}

test_package("cobalt_lib_tests") {
  deps = [
    ":unittests",
    "//src/lib/cobalt/rust:fuchsia-cobalt_test",
  ]

  tests = [
    {
      name = "cobalt_lib_unittests"
      environments = basic_envs
    },
    {
      name = "fuchsia_cobalt_lib_test"
      environments = basic_envs
    },
  ]
}

group("tests") {
  testonly = true

  deps = [ ":cobalt_lib_tests" ]
}
