# 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/svc/cpp",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/ledger/bin/fidl",
  ]

  configs += [ "//src/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",
  ]
}
