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

import("//src/modular/build/tests_package.gni")

group("modular") {
  testonly = true

  deps = [
    ":tests",
    "bin",
    "bundles",
    "lib",
  ]
}

group("tests") {
  testonly = true

  public_deps = [
    ":modular_lib_tests",
    "tests",  # tests/ directory
    "//garnet/packages/prod:test_runner",
    "//garnet/packages/testing:run_test_component",
    "//sdk/lib/modular/cpp:modular_cpp_tests",
    "//sdk/lib/modular/testing/cpp:modular_testing_cpp_tests",
    "//src/modular/bin/basemgr:auto_login_base_shell_test",
    "//src/modular/bin/basemgr:basemgr_unittests",
    "//src/modular/bin/basemgr_launcher:tests",
    "//src/modular/bin/modular_test_harness:tests",
    "//src/modular/bin/sessionctl:sessionctl_unittests",
    "//src/modular/bin/sessionmgr:sessionmgr_unittests",
    "//src/modular/bin/sessionmgr/agent_runner:agent_runner_unittests",
    "//src/modular/bin/sessionmgr/puppet_master:puppet_master_unittests",
    "//src/modular/bin/sessionmgr/storage:storage_unittests",
    "//src/modular/bin/sessionmgr/story/model:story_model_unittests",
    "//src/modular/bin/sessionmgr/story_runner:story_runner_unittests",
    "//src/modular/bundles:integration_testing",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture_test",
    "//src/modular/tests/modular_config:test_config",
  ]
}

hermetic_tests_package("modular_lib_tests") {
  deps = [ "//src/modular/lib:modular_lib_unittests" ]
  environments = basic_envs
}
