# 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 = [
    "cleanup:tests",
    "cmdline:tests",
    "compiler:tests",
    "core:tests",
    "cprng:tests",
    "ctor:tests",
    "dash:tests",
    "dlopen-indirect-deps:tests",
    "errno:tests",
    "exit:tests",
    "fidl-utils:tests",
    "fpu:tests",
    "getentropy:tests",
    "inspector:tests",
    "int-types:tests",
    "libc:tests",
    "memfs:tests",
    "posixio:tests",
    "psutils:tests",
    "pty:tests",
    "qsort:tests",
    "service:tests",
    "stdio:stdio-test-package",
    "sysconf:tests",
    "thread-safe-deleter:tests",
    "trace:tests",
  ]
  if (current_os == "linux") {
    deps += [
      "ftl-mtd:ftl-volume-wrapper-integration($host_toolchain)",
      "mtd($host_toolchain)",
    ]
  }
}
