# 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/test.gni")
import("//build/testing/bootfs_test.gni")
import("//src/sys/build/fuchsia_unittest_package.gni")

group("psutils") {
  testonly = true
  deps = [
    ":handles",
    ":ps",
  ]
}

test("ps") {
  output_name = "ps-test"
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [ "ps_test.c" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/sys/bin/psutils:ps_internal",
    "//zircon/public/lib/pretty",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/task-utils",
  ]
}

test("handles") {
  output_name = "handles-test"
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [ "handles_test.cc" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/sys/bin/psutils:handles_internal",
    "//zircon/public/lib/pretty",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/task-utils",
  ]
}

bootfs_test("ps-bootfs-test") {
  name = "ps-test"
  deps = [ ":ps" ]
}

fuchsia_unittest_package("handles-test-pkg") {
  package_name = "handles-test"
  deps = [ ":handles" ]
}

group("tests") {
  testonly = true
  deps = [ ":handles-test-pkg" ]
}
