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

group("uapp") {
  testonly = true
  deps = [
    "$zx/system/ulib/driver-info:driverinfo",
    "aslr-analysis",
    "audio",
    "audio-codec",
    "backlight",
    "banjo-dummy",
    "biotime",
    "blktest",
    "blobfs",
    "channel-perf",
    "clock",
    "clock:clkctl",
    "crasher",
    "dd",
    "df",
    "disk-inspect",
    "disk-pave",
    "display-test",
    "dlog",
    "driverctl",
    "ethtool",
    "fs-fsck",
    "fs-mkfs",
    "fs-mount",
    "fs-umount",
    "fvm-check",
    "gfxfractal",
    "gfxtest",
    "goldfish-benchmark",
    "gpt",
    "hid",
    "hidsensor",
    "hidtouch",
    "i2c",
    "ihda",
    "iochk",
    "iotime",
    "kcounter",
    "kstress",
    "ktrace",
    "light",
    "loadgen",
    "lsblk",
    "lsdev",
    "lspwr",
    "lsusb",
    "lz4",
    "midiecho",
    "minfs",
    "mutex_pi_exerciser",
    "namespace",
    "nand-loader",
    "nand-util",
    "netdump",
    "ping",
    "psutils",
    "rng-trials",
    "run-vc",
    "runtests",
    "serial-test",
    "spawn",
    "spiutil",
    "storage-metrics",
    "strerror",
    "suspendtest",
    "sysconfig",
    "system-version",
    "tee-test",
    "thermal-cli",
    "thread-depth",
    "thread-stress",
    "trace-benchmark",
    "trace-example",
    "unbind",
    "usb-fwloader",
    "usbctl",
    "waitfor",
    "watch",
    "xdc-test",
  ]
}
