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

group("tests") {
  testonly = true

  # Add the testrunner.
  deps = [ "//src/testing/runtests" ]

  deps += [
    "//src/bringup/bin/console-launcher:shell-permissions-bootfs-test",
    "//src/bringup/bin/console-launcher/qemu-tests:tests",
    "//src/bringup/bin/svchost:crashsvc-test-bootfs-test",
    "//src/bringup/bin/sysinfo:sysinfo-bootfs-test",
    "//src/bringup/tests/bootfs_test:running-on-bootfs-test",
    "//src/devices/block/bin/biotime:biotime-test-bootfs-test",
    "//src/devices/nand/drivers/broker/test:nand-broker-bootfs-test",  # HW-required.
    "//src/devices/nand/drivers/ram-nand:ram-nand-test-bootfs-test",
    "//src/devices/sysmem/tests/sysmem:sysmem-bootfs-test",
    "//src/tests/drivers_serial_log:bringup_tests",
    "//src/tests/reboot/dm_reboot_bringup_test:tests",

    # The devcoordinator-namespace-test assumes the root filesystem and can't be
    # migrated as packages are given their own local filesystem.
    "//src/devices/tests/devcoordinator-namespace:devcoordinator-namespace-bootfs-test",
    "//src/devices/tests/devfs:devfs-bootfs-test",
    "//src/devices/usb/tests/usb:usb-bootfs-test",  # HW-required.
    "//src/lib/framebuffer/test:framebuffer-test-bootfs-test",
    "//src/zircon/tests/entropy:entropy-bootfs-test",
    "//src/zircon/tests/exception:exception-bootfs-test",
    "//src/zircon/tests/futex-ownership:futex-ownership-bootfs-test",
    "//src/zircon/tests/job-policy:policy-bootfs-test",
    "//src/zircon/tests/kcounter:kcounter-bootfs-test",
    "//src/zircon/tests/thread-state:thread-state-bootfs-test",
    "//src/zircon/tests/time:time-bootfs-test",
    "//src/zircon/tests/timers:timers-bootfs-test",
    "//src/zircon/tests/vdso:vdso-base-bootfs-test",
    "//src/zircon/tests/vdso:vdso-bootfs-test",
    "//src/zircon/tests/vdso:vdso-variant-bootfs-test",
    "//zircon/system/ulib/c/test:cdebugdata-test-bootfs-test",
    "//zircon/system/ulib/c/test/sanitizer:sanitizer-utils-bootfs-test",
    "//zircon/system/ulib/elf-search/test:elf-search-bootfs-test",
    "//zircon/system/ulib/launchpad/test:launchpad-bootfs-test",
    "//zircon/system/ulib/syslog/test:syslog-bootfs-test",
    "//zircon/system/ulib/syslog/test:syslog-static-bootfs-test",
    "//zircon/system/ulib/test-utils/test:test-utils-bootfs-test",
    "//zircon/system/ulib/trace-reader/test:trace-reader-test-bootfs-test",
    "//zircon/system/ulib/zbi-bootfs/test:zbi-bootfs-test-bootfs-test",
    "//zircon/system/ulib/zx-panic-libc/test:zx-panic-libc-test-bootfs-test",
    "//zircon/system/ulib/zx/test:zx-bootfs-test",
    "//zircon/system/ulib/zxtest/test:zxtest-bootfs-test",
    "//zircon/system/utest/blobfs-bench:blobfs-bench-bootfs-test",
    "//zircon/system/utest/channel-fatal:channel-fatal-bootfs-test",
    "//zircon/system/utest/core:core-bad-segsel-bootfs-test",
    "//zircon/system/utest/core:core-c11-condvar-bootfs-test",
    "//zircon/system/utest/core:core-c11-mutex-bootfs-test",
    "//zircon/system/utest/core:core-c11-thread-bootfs-test",
    "//zircon/system/utest/core:core-channel-bootfs-test",
    "//zircon/system/utest/core:core-channel-call-etc-bootfs-test",
    "//zircon/system/utest/core:core-channel-iovec-bootfs-test",
    "//zircon/system/utest/core:core-channel-write-etc-bootfs-test",
    "//zircon/system/utest/core:core-clock-bootfs-test",
    "//zircon/system/utest/core:core-elf-tls-bootfs-test",
    "//zircon/system/utest/core:core-event-pair-bootfs-test",
    "//zircon/system/utest/core:core-fifo-bootfs-test",
    "//zircon/system/utest/core:core-fpu-bootfs-test",
    "//zircon/system/utest/core:core-futex-bootfs-test",
    "//zircon/system/utest/core:core-handle-close-bootfs-test",
    "//zircon/system/utest/core:core-handle-dup-bootfs-test",
    "//zircon/system/utest/core:core-handle-info-bootfs-test",
    "//zircon/system/utest/core:core-handle-transfer-bootfs-test",
    "//zircon/system/utest/core:core-handle-wait-bootfs-test",
    "//zircon/system/utest/core:core-job-bootfs-test",
    "//zircon/system/utest/core:core-memory-mapping-bootfs-test",
    "//zircon/system/utest/core:core-object-child-bootfs-test",
    "//zircon/system/utest/core:core-object-info-bootfs-test",
    "//zircon/system/utest/core:core-object-wait-bootfs-test",
    "//zircon/system/utest/core:core-pager-bootfs-test",
    "//zircon/system/utest/core:core-port-bootfs-test",
    "//zircon/system/utest/core:core-process-bootfs-test",
    "//zircon/system/utest/core:core-pthread-barrier-bootfs-test",
    "//zircon/system/utest/core:core-pthread-bootfs-test",
    "//zircon/system/utest/core:core-pthread-tls-bootfs-test",
    "//zircon/system/utest/core:core-socket-bootfs-test",
    "//zircon/system/utest/core:core-stack-bootfs-test",
    "//zircon/system/utest/core:core-stream-bootfs-test",
    "//zircon/system/utest/core:core-sync-completion-bootfs-test",
    "//zircon/system/utest/core:core-sync-condition-bootfs-test",
    "//zircon/system/utest/core:core-sync-mutex-bootfs-test",
    "//zircon/system/utest/core:core-threads-bootfs-test",
    "//zircon/system/utest/core:core-time-bootfs-test",
    "//zircon/system/utest/core:core-version-bootfs-test",
    "//zircon/system/utest/core:core-vmar-bootfs-test",
    "//zircon/system/utest/core:core-vmo-bootfs-test",
    "//zircon/system/utest/core-display:core-display-bootfs-test",
    "//zircon/system/utest/debugger:debugger-bootfs-test",
    "//zircon/system/utest/device-enumeration:device-enumeration-bootfs-test",
    "//zircon/system/utest/dlfcn:dlfcn-bootfs-test",
    "//zircon/system/utest/kernel-unittests:kernel-unittests-bootfs-test",
    "//zircon/system/utest/log:log-bootfs-test",
    "//zircon/system/utest/memfs:memfs-bootfs-test",
    "//zircon/system/utest/miscsvc:miscsvc-bootfs-test",
    "//zircon/system/utest/namespace:namespace-bootfs-test",
    "//zircon/system/utest/psutils:ps-bootfs-test",
    "//zircon/system/utest/race-tests:race-tests-bootfs-test",
    "//zircon/system/utest/runtests-utils:runtests-utils-bootfs-test",
    "//zircon/system/utest/svchost:svchost-bootfs-test",
    "//zircon/system/utest/task-utils:task-utils-bootfs-test",
    "//zircon/system/utest/trace:trace-bootfs-test",
    "//zircon/system/utest/utc-procargs:utc-procargs-bootfs-test",
    "//zircon/third_party/ulib/linenoise/test:linenoise-test-bootfs-test",
  ]

  if (target_cpu == "x64") {
    deps += [
      "//src/devices/bin/acpidump:acpidump-test-bootfs-test",
      "//src/devices/board/drivers/x86:x86-board-bootfs-test",
      "//src/devices/board/drivers/x86:x86-lid-bootfs-test",
      "//src/devices/board/drivers/x86:x86-pwrsrc-bootfs-test",
      "//src/devices/board/drivers/x86:x86-thermal-bootfs-test",
      "//src/devices/board/drivers/x86/test:x86-board-bootfs-test",
      "//src/devices/lib/iommu:iommu-bootfs-test",
      "//src/zircon/tests/mtrace:mtrace-bootfs-test",
      "//src/zircon/tests/x86-umip:x86-umip-bootfs-test",
    ]
  }

  # Add various drivers and binaries used in manual testing.
  deps += [ ":manual_testing" ]
}

group("manual_testing") {
  testonly = true

  deps = [
    "//src/devices/bundles:manual_testing",
    "//src/graphics/display/bin/display-test",
    "//src/security/bin/syscall-check",
    "//src/zircon/testing/mutex_pi_exerciser",
    "//src/zircon/tests/evil",
    "//zircon/system/utest/msd",
  ]
}
