# Copyright 2020 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.

group("tools") {
  testonly = true

  public_deps = [
    "//tools/sdk-tools/fconfig:fconfig-host",
    "//tools/sdk-tools/fpublish:fpublish-host",
    "//tools/sdk-tools/fserve:fserve-host",
    "//tools/sdk-tools/fssh:fssh-host",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "//tools/sdk-tools/fconfig:fconfig-test($host_toolchain)",
    "//tools/sdk-tools/fpublish:fpublish-test($host_toolchain)",
    "//tools/sdk-tools/fserve:fserve-test($host_toolchain)",
    "//tools/sdk-tools/fssh:fssh-test($host_toolchain)",
    "//tools/sdk-tools/sdkcommon:sdkcommon-test($host_toolchain)",
  ]
}
