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

# This target holds tests under //zircon/system/utest which are now hosted in
# packages but whose code hasn't yet been migrated to //src.
# When a migration happens, the test needs to be removed from this list and
# placed within the proper `tests` target under //src.

group("tests") {
  testonly = true
  deps = [
    "abi-type-validator",
    "cleanup:tests",
    "cmdline:tests",
    "compiler:tests",
    "cprng:tests",
    "ctor:tests",
    "dash:tests",
    "dlopen-indirect-deps:tests",
    "errno:tests",
    "exit:tests",
    "fidl-utils:tests",
    "fpu:tests",
    "fs-management:tests",
    "fs-test-utils:tests",
    "fvm:tests",
    "getentropy:tests",
    "inspector:tests",
    "int-types:tests",
    "libc:tests",
    "posixio:tests",
    "psutils:tests",
    "pty:tests",
    "qsort:tests",
    "service:tests",
    "stdio:stdio-test-package",
    "syscall-generation:tests",
    "sysconf:tests",
    "thread-safe-deleter:tests",
    "trace:tests",
  ]
  if (current_os == "linux") {
    deps += [
      "ftl-mtd:ftl-volume-wrapper-integration($host_toolchain)",
      "mtd($host_toolchain)",
    ]
  }
}
