# 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 = [ ":hermetic_tests" ]
}

group("hermetic_tests") {
  testonly = true
  deps = [
    ":rust-examples",
    "cdylib:hermetic_tests",
    "dylib:hermetic_tests",
    "rust_static_linking:hermetic_tests",
    "staticlib:hermetic_tests",
  ]
}

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("rust-examples") {
  test_components = [
    ":testing_lib_test",
    ":testing_integration_test",
    ":testing_integration_test_two",
  ]
}
