aboutsummaryrefslogtreecommitdiff
path: root/tests/futures_ordered.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/futures_ordered.rs')
-rw-r--r--tests/futures_ordered.rs31
1 files changed, 24 insertions, 7 deletions
diff --git a/tests/futures_ordered.rs b/tests/futures_ordered.rs
index d06b62f..74a220a 100644
--- a/tests/futures_ordered.rs
+++ b/tests/futures_ordered.rs
@@ -1,12 +1,11 @@
-use futures::channel::oneshot;
-use futures::executor::{block_on, block_on_stream};
-use futures::future::{self, join, Future, FutureExt, TryFutureExt};
-use futures::stream::{StreamExt, FuturesOrdered};
-use futures_test::task::noop_context;
-use std::any::Any;
-
+#[cfg(all(feature = "alloc", feature="executor"))]
#[test]
fn works_1() {
+ use futures::channel::oneshot;
+ use futures::executor::block_on_stream;
+ use futures::stream::{StreamExt, FuturesOrdered};
+ use futures_test::task::noop_context;
+
let (a_tx, a_rx) = oneshot::channel::<i32>();
let (b_tx, b_rx) = oneshot::channel::<i32>();
let (c_tx, c_rx) = oneshot::channel::<i32>();
@@ -26,8 +25,14 @@ fn works_1() {
assert_eq!(None, iter.next());
}
+#[cfg(feature = "alloc")]
#[test]
fn works_2() {
+ use futures::channel::oneshot;
+ use futures::future::{join, FutureExt};
+ use futures::stream::{StreamExt, FuturesOrdered};
+ use futures_test::task::noop_context;
+
let (a_tx, a_rx) = oneshot::channel::<i32>();
let (b_tx, b_rx) = oneshot::channel::<i32>();
let (c_tx, c_rx) = oneshot::channel::<i32>();
@@ -46,8 +51,13 @@ fn works_2() {
assert!(stream.poll_next_unpin(&mut cx).is_ready());
}
+#[cfg(feature = "executor")]
#[test]
fn from_iterator() {
+ use futures::executor::block_on;
+ use futures::future;
+ use futures::stream::{StreamExt, FuturesOrdered};
+
let stream = vec![
future::ready::<i32>(1),
future::ready::<i32>(2),
@@ -57,8 +67,15 @@ fn from_iterator() {
assert_eq!(block_on(stream.collect::<Vec<_>>()), vec![1,2,3]);
}
+#[cfg(feature = "alloc")]
#[test]
fn queue_never_unblocked() {
+ use futures::channel::oneshot;
+ use futures::future::{self, Future, TryFutureExt};
+ use futures::stream::{StreamExt, FuturesOrdered};
+ use futures_test::task::noop_context;
+ use std::any::Any;
+
let (_a_tx, a_rx) = oneshot::channel::<Box<dyn Any + Send>>();
let (b_tx, b_rx) = oneshot::channel::<Box<dyn Any + Send>>();
let (c_tx, c_rx) = oneshot::channel::<Box<dyn Any + Send>>();