# 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("//src/sys/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",
  ]
}
