# Copyright 2020 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/components.gni")
import("//build/rust/rustc_test.gni")
import("//src/tests/fidl/conformance_suite/gidl-conformance-suite.gni")
import("//tools/fidl/gidl/gidl.gni")

conformance_test_source = "$target_gen_dir/src/conformance_test.rs"

gidl("generate_conformance_test") {
  type = "conformance"
  language = "rust"
  inputs = conformance_suite_gidl_files
  fidl = conformance_suite_fidl_target
  output = conformance_test_source
}

rustc_test("fidl_rust_conformance_tests_bin") {
  output_name = "fidl_rust_conformance_tests"
  edition = "2018"
  source_root = conformance_test_source
  deps = [
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fidl/rust/gidl_util",
    "//src/lib/zircon/rust:fuchsia-zircon-status",
    "//src/tests/fidl/conformance_suite:conformance_fidl-rustc",
    "//third_party/rust_crates:assert_matches",
  ]
  non_rust_deps = [ ":generate_conformance_test" ]
  sources = [ conformance_test_source ]
}

fuchsia_unittest_package("fidl_rust_conformance_tests") {
  deps = [ ":fidl_rust_conformance_tests_bin" ]
}

group("tests") {
  testonly = true
  deps = [
    ":fidl_rust_conformance_tests",
    ":fidl_rust_conformance_tests_bin($host_toolchain)",
    "external_tests",
    "fidl:tests",
    "handle_tests",
  ]
}
