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

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

executable("config_test") {
  testonly = true
  output_name = "config_test"
  sources = [
    "config_test.cc",
  ]
  deps = [
    "//garnet/bin/sysmgr:lib",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gmock",
  ]
}

package("sysmgr_tests") {
  testonly = true

  deps = [
    ":config_test",
  ]

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

  meta = [
    {
      path = rebase_path("meta/config_test.cmx")
      dest = "config_test.cmx"
    },
  ]
}
