# 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/components.gni")

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

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

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

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

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

fuchsia_unittest_component("testing_lib_test") {
  deps = [ "testing:testing_test" ]
}

fuchsia_unittest_component("testing_integration_test") {
  deps = [ "testing:testing_integration_test" ]
}

fuchsia_unittest_component("testing_integration_test_two") {
  deps = [ "testing:testing_integration_test_two" ]
}

fuchsia_test_package("garnet-rust-examples") {
  test_components = [
    ":testing_lib_test",
    ":testing_integration_test",
    ":testing_integration_test_two",
  ]
}
