# 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("//build/components.gni")

group("modular") {
  testonly = true

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

group("tests") {
  testonly = true

  public_deps = [
    ":modular_lib_tests",
    "tests",  # tests/ directory
    "//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: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/puppet_master/command_runners:command_runners_unittests",
    "//src/modular/bin/sessionmgr/storage:storage_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",
  ]
}

fuchsia_unittest_package("modular_lib_tests") {
  deps = [ "//src/modular/lib:modular_lib_unittests" ]
  manifest = "meta/modular_lib_unittests.cmx"
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}
