# Copyright 2019 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("src") {
  testonly = true
  deps = [
    ":e2e_tests",
    ":src_no_e2e",
    "connectivity",
    "recovery",
  ]
}

group("src_no_e2e") {
  testonly = true
  deps = [
    ":tests_no_e2e",
    "camera",
    "cast",
    "chromium",
    "cobalt",
    "connectivity:connectivity_no_e2e",
    "dart",
    "developer",
    "devices",
    "diagnostics",
    "experiences",
    "factory",
    "flutter",
    "fonts",
    "graphics",
    "identity",
    "intl",
    "lib",
    "media",
    "modular",
    "power",
    "proc",
    "recovery:recovery_no_e2e",
    "security",
    "session",
    "speech",
    "storage",
    "sys",
    "testing",
    "ui",
    "virtualization",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":e2e_tests",
    ":tests_no_e2e",
  ]
}

group("tests_no_e2e") {
  testonly = true
  assert_no_deps = e2e_test_libs

  deps = [
    "bringup:tests",
    "camera:tests",
    "chromium:tests",
    "cobalt:tests",
    "connectivity:tests_no_e2e",
    "developer:tests",
    "devices:tests",
    "diagnostics:tests",
    "experiences:tests",
    "factory:tests",
    "firmware:tests",
    "flutter:tests",
    "fonts:tests",
    "graphics:tests",
    "hwinfo:tests",
    "identity:tests",
    "intl:tests",
    "lib:tests",
    "media:tests",
    "modular:tests",
    "power:tests",
    "proc:tests",
    "recovery:tests_no_e2e",
    "security:tests",
    "session:tests",
    "speech:tests",
    "storage:tests",
    "sys:tests",
    "testing:tests",
    "ui:tests",
    "virtualization:tests",
    "zircon:tests",
  ]

  # These targets should be removed when the tests are moved to //src.
  deps += [
    "//zircon/kernel:tests",
    "//zircon/system/ulib:tests",
    "//zircon/system/utest:tests",
    "//zircon/tools:tests",
  ]
}

group("e2e_tests") {
  testonly = true
  deps = [
    "connectivity:e2e_tests",
    "recovery:e2e_tests",
    "tests",
    "//src/storage/lib/paver/e2e_tests",
    "//src/sys/pkg:e2e_tests",
  ]
}
