# 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/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

rustc_library("cm_fidl_translator") {
  with_unit_tests = true
  edition = "2018"
  deps = [
    "//garnet/lib/rust/cm_fidl_validator",
    "//garnet/lib/rust/cm_json",
    "//sdk/fidl/fuchsia.data:fuchsia.data-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//third_party/rust_crates:json5",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//zircon/system/fidl/fuchsia-io2:fuchsia-io2-rustc",
  ]

  test_deps = [ "//src/lib/test_util" ]
}

test_package("cm_fidl_translator_tests") {
  deps = [ ":cm_fidl_translator_test" ]

  tests = [
    {
      name = "cm_fidl_translator_lib_test"
      dest = "cm_fidl_translator_tests"
      environments = basic_envs
    },
  ]
}
