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

group("rust") {
  testonly = true
  deps = [
    ":tests",

    # TODO(fxb/50421): This target seems broken.
    # "cdylib",
    "eth-rs",
    "inspect-rs",
    "staticlib",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":garnet-rust-examples",
    "inspect-rs:tests",
    "rust_static_linking:tests",

    # Until such time that these directories have tests, at least check that
    # they compile properly.

    # TODO(fxb/50421): This target seems broken.
    # "cdylib",
    "eth-rs",
    "inspect-rs",
    "staticlib",
  ]
}

test_package("garnet-rust-examples") {
  deps = [ "testing:testing-tests" ]  #TARGET

  # You need to include these for them to end up in the final image
  tests = [
    {
      name = "testing_lib_test"
      environments = basic_envs
    },
    {
      name = "testing_integration_test"
      environments = basic_envs
    },
    {
      name = "testing_integration_test_two"
      environments = basic_envs
    },
  ]
}
