# 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/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/go/toolchain.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

go_library("device_settings") {
  name = "device_settings"
}

go_test("device_settings_integration_test") {
  gopackages = [ "device_settings" ]

  deps = [
    ":device_settings",
    "//sdk/fidl/fuchsia.devicesettings($go_toolchain)",
    "//sdk/fidl/fuchsia.sys($go_toolchain)",
    "//src/lib/component/go/src/app",
  ]
}

test_package("device_settings_gotests") {
  deps = [ ":device_settings_integration_test" ]
  tests = [
    {
      name = "device_settings_integration_test"
      environments = basic_envs
    },
  ]
}
