# 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("bundles") {
  testonly = true
  deps = [
    ":framework",
    ":tools",
  ]
}

group("tools") {
  testonly = true
  public_deps = [
    ":testing",
    "//src/modular/bin/basemgr_launcher",
    "//src/modular/bin/sessionctl",
  ]
}

group("framework") {
  public_deps = [
    "//src/modular/bin/basemgr",
    "//src/modular/bin/sessionmgr",
  ]
}

# Packages used for authoring and running integration tests.
group("testing") {
  testonly = true
  public_deps = [
    "//garnet/packages/testing:environment_delegating_runner",
    "//src/modular/bin/modular_test_harness",
  ]
}

# TODO: How is this group different from "testing" above?
group("integration_testing") {
  testonly = true
  public_deps = [
    ":framework",
    ":testing",
    "//garnet/packages/prod:test_runner",
    "//src/modular/bin/sessionmgr:dev_session_shell",
    "//src/modular/bin/sessionmgr/story_runner:dev_story_shell",
  ]
}

# Packages which contain tests.
group("tests") {
  testonly = true
  public_deps = [
    ":testing",
    "//src/modular:tests",
  ]
}
