# 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("//src/sys/build/components.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",
  ]
}

fuchsia_unittest_component("cobalt_lib_unittests") {
  deps = [ ":unittests" ]
  manifest = "meta/cobalt_lib_unittests.cmx"
}

fuchsia_unittest_component("fuchsia_cobalt_lib_test") {
  deps = [ "//src/lib/cobalt/rust:fuchsia-cobalt_test" ]
}

fuchsia_test_package("cobalt_lib_tests") {
  test_components = [
    ":cobalt_lib_unittests",
    ":fuchsia_cobalt_lib_test",
  ]
  test_specs = {
    log_settings = {
      max_severity = "FATAL"
    }
  }
}

group("tests") {
  testonly = true

  deps = [ ":cobalt_lib_tests" ]
}
