# Copyright 2017 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/package.gni")

executable("ledger_test_instance_provider_bin") {
  testonly = true

  sources = [
    "ledger_test_instance_provider.cc",
  ]

  deps = [
    "//garnet/public/lib/component/cpp/testing",
    "//garnet/public/lib/svc/cpp",
    "//peridot/bin/ledger/fidl",
  ]

  configs += [ "//peridot/bin/ledger:ledger_config" ]

  public_deps = [
    "//peridot/lib/convert",
    "//peridot/lib/scoped_tmpfs",
  ]
}

package("ledger_test_instance_provider") {
  testonly = true

  meta = [
    {
      path = rebase_path("meta/ledger_test_instance_provider.cmx")
      dest = "ledger_test_instance_provider.cmx"
    },
  ]

  binary = "ledger_test_instance_provider_bin"

  deps = [
    ":ledger_test_instance_provider_bin",
  ]
}
