# Copyright 2021 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/lib/isolated_devmgr/v2_component/isolated_devmgr.gni")

# Thin wrapper around more generic wrapper. Hardcodes the package name to avoid some minimal amount
# of boilerplate in usage sites.
template("storage_isolated_devmgr_unittest_v2_component") {
  isolated_devmgr_unittest_v2_component(target_name) {
    if (!defined(invoker.manifest)) {
      package_name = "storage-isolated-devmgr"
    }
    forward_variables_from(invoker,
                           [
                             "deps",
                             "executable_path",
                             "manifest",
                             "runner",
                             "visibility",
                             "component_name",
                           ])
  }
}
