# 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/package.gni")
import("//build/rust/rustc_binary.gni")

rustc_binary("bin") {
  name = "cloud_provider_memory_diff"
  edition = "2018"
  deps = [
    "//garnet/public/lib/fidl/rust/fidl",
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-component",
    "//garnet/public/rust/fuchsia-zircon",
    "//sdk/fidl/fuchsia.ledger.cloud:fuchsia.ledger.cloud-rustc",
    "//third_party/rust-crates/rustc_deps:failure",
    "//third_party/rust-crates/rustc_deps:futures-preview",
    "//zircon/public/fidl/fuchsia-mem:fuchsia-mem-rustc",
  ]
}

package("cloud_provider_memory_diff") {
  deps = [
    ":bin",
  ]

  binary = "cloud_provider_memory_diff"

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

package("cloud_provider_memory_diff_tests") {
  testonly = true

  deps = [
    "validation",
  ]

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

  tests = [
    {
      name = "launch_validation_tests_memory_diff"
      environments = basic_envs
    },
  ]
}
