# 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/thermal/drivers/mtk-thermal:mtk-thermal-integration-bootfs-test",  # HW-required.
    "//src/devices/usb/tests/usb:usb-bootfs-test",  # HW-required.
    "//src/lib/framebuffer/test:framebuffer-test-bootfs-test",
    "//src/storage/gpt/test:gpt-unit-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-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",
  ]
}
