// This file is generated by cargo_embargo.
// Do not modify this file because the changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_tokio-test_license"],
    default_team: "trendy_team_android_rust",
}

license {
    name: "external_rust_crates_tokio-test_license",
    visibility: [":__subpackages__"],
    license_kinds: ["SPDX-license-identifier-MIT"],
    license_text: ["LICENSE"],
}

rust_library {
    name: "libtokio_test",
    host_supported: true,
    crate_name: "tokio_test",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.2",
    crate_root: "src/lib.rs",
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libtokio",
        "libtokio_stream",
    ],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
    product_available: true,
    vendor_available: true,
}

rust_test {
    name: "tokio-test_test_tests_block_on",
    host_supported: true,
    crate_name: "block_on",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.2",
    crate_root: "tests/block_on.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libfutures_util",
        "libtokio",
        "libtokio_stream",
        "libtokio_test",
    ],
}

rust_test {
    name: "tokio-test_test_tests_io",
    host_supported: true,
    crate_name: "io",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.2",
    crate_root: "tests/io.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libfutures_util",
        "libtokio",
        "libtokio_stream",
        "libtokio_test",
    ],
}

rust_test {
    name: "tokio-test_test_tests_macros",
    host_supported: true,
    crate_name: "macros",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.2",
    crate_root: "tests/macros.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libfutures_util",
        "libtokio",
        "libtokio_stream",
        "libtokio_test",
    ],
}
