// This file is generated by cargo2android.py --run --dependencies --device --tests.
// Do not modify this file as changes will be overridden on upgrade.

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

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
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",
    srcs: ["src/lib.rs"],
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libtokio",
        "libtokio_stream",
    ],
}

rust_defaults {
    name: "tokio-test_defaults",
    crate_name: "tokio_test",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libfutures_util",
        "libtokio",
        "libtokio_stream",
    ],
}

rust_test_host {
    name: "tokio-test_host_test_src_lib",
    defaults: ["tokio-test_defaults"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "tokio-test_device_test_src_lib",
    defaults: ["tokio-test_defaults"],
}

rust_defaults {
    name: "tokio-test_defaults_tokio_test",
    crate_name: "tokio_test",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    rustlibs: [
        "libasync_stream",
        "libbytes",
        "libfutures_core",
        "libfutures_util",
        "libtokio",
        "libtokio_stream",
        "libtokio_test",
    ],
}

rust_test_host {
    name: "tokio-test_host_test_tests_block_on",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/block_on.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "tokio-test_device_test_tests_block_on",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/block_on.rs"],
}

rust_test_host {
    name: "tokio-test_host_test_tests_io",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/io.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "tokio-test_device_test_tests_io",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/io.rs"],
}

rust_test_host {
    name: "tokio-test_host_test_tests_macros",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/macros.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "tokio-test_device_test_tests_macros",
    defaults: ["tokio-test_defaults_tokio_test"],
    srcs: ["tests/macros.rs"],
}

// dependent_library ["feature_list"]
//   async-stream-0.3.0
//   async-stream-impl-0.3.0
//   autocfg-1.0.1
//   bytes-1.0.1 "default,std"
//   cfg-if-1.0.0
//   futures-core-0.3.13 "alloc,default,std"
//   futures-macro-0.3.13
//   futures-task-0.3.13 "alloc,std"
//   futures-util-0.3.13 "alloc,async-await,async-await-macro,default,futures-macro,proc-macro-hack,proc-macro-nested,slab,std"
//   instant-0.1.9
//   libc-0.2.92 "default,std"
//   lock_api-0.4.2
//   log-0.4.14
//   memchr-2.3.4 "default,std"
//   mio-0.7.11 "default,net,os-ext,os-poll,os-util,tcp,udp,uds"
//   num_cpus-1.13.0
//   once_cell-1.7.2 "alloc,default,race,std"
//   parking_lot-0.11.1 "default"
//   parking_lot_core-0.8.3
//   pin-project-lite-0.2.6
//   pin-utils-0.1.0
//   proc-macro-hack-0.5.19
//   proc-macro-nested-0.1.7
//   proc-macro2-1.0.26 "default,proc-macro"
//   quote-1.0.9 "default,proc-macro"
//   scopeguard-1.1.0
//   signal-hook-registry-1.3.0
//   slab-0.4.2
//   smallvec-1.6.1
//   syn-1.0.68 "clone-impls,default,derive,extra-traits,full,parsing,printing,proc-macro,quote,visit-mut"
//   tokio-1.4.0 "bytes,default,fs,full,io-std,io-util,libc,macros,memchr,mio,net,num_cpus,once_cell,parking_lot,process,rt,rt-multi-thread,signal,signal-hook-registry,sync,test-util,time,tokio-macros,winapi"
//   tokio-macros-1.1.0
//   tokio-stream-0.1.5 "default,time"
//   unicode-xid-0.2.1 "default"
