# 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",
    "debugger:tests",
    "device-enumeration:device-enumeration-tests",
    "dlopen-indirect-deps:tests",
    "errno:tests",
    "exit:tests",
    "fpu:tests",
    "getentropy:tests",
    "inspector:tests",
    "int-types:tests",
    "libc:tests",
    "posixio:tests",
    "psutils:tests",
    "pty:tests",
    "qsort:tests",
    "stdio:stdio-test-package",
    "sysconf:tests",
    "thread-safe-deleter:tests",
    "trace:tests",
  ]
  if (current_os == "linux") {
    deps += [ "mtd($host_toolchain)" ]
  }
}
