Skip to content

Commit 035f0f6

Browse files
committed
fix tokio-util/tests/time_delay_queue.rs
Signed-off-by: ADD-SP <[email protected]>
1 parent d345b3c commit 035f0f6

File tree

1 file changed

+3
-85
lines changed

1 file changed

+3
-85
lines changed

tokio-util/tests/time_delay_queue.rs

Lines changed: 3 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#![cfg(feature = "full")]
44

55
use futures::StreamExt;
6-
use tokio::time::{self, sleep, sleep_until, Duration, Instant};
6+
use tokio::time::{self, sleep, Duration, Instant};
77
use tokio_test::{assert_pending, assert_ready, task};
88
use tokio_util::time::DelayQueue;
99

@@ -82,8 +82,6 @@ async fn single_short_delay() {
8282

8383
sleep(ms(5)).await;
8484

85-
assert!(queue.is_woken());
86-
8785
let entry = assert_ready_some!(poll!(queue));
8886
assert_eq!(*entry.get_ref(), "foo");
8987

@@ -221,7 +219,7 @@ async fn reset_much_later() {
221219

222220
sleep(ms(20)).await;
223221

224-
assert!(queue.is_woken());
222+
assert_ready_some!(poll!(queue));
225223
}
226224

227225
// Reproduces tokio-rs/tokio#849.
@@ -248,7 +246,7 @@ async fn reset_twice() {
248246

249247
sleep(ms(20)).await;
250248

251-
assert!(queue.is_woken());
249+
assert_ready_some!(poll!(queue));
252250
}
253251

254252
/// Regression test: Given an entry inserted with a deadline in the past, so
@@ -412,8 +410,6 @@ async fn expire_first_key_when_reset_to_expire_earlier() {
412410

413411
sleep(ms(100)).await;
414412

415-
assert!(queue.is_woken());
416-
417413
let entry = assert_ready_some!(poll!(queue)).into_inner();
418414
assert_eq!(entry, "one");
419415
}
@@ -435,8 +431,6 @@ async fn expire_second_key_when_reset_to_expire_earlier() {
435431

436432
sleep(ms(100)).await;
437433

438-
assert!(queue.is_woken());
439-
440434
let entry = assert_ready_some!(poll!(queue)).into_inner();
441435
assert_eq!(entry, "two");
442436
}
@@ -457,8 +451,6 @@ async fn reset_first_expiring_item_to_expire_later() {
457451
queue.reset_at(&one, now + ms(300));
458452
sleep(ms(250)).await;
459453

460-
assert!(queue.is_woken());
461-
462454
let entry = assert_ready_some!(poll!(queue)).into_inner();
463455
assert_eq!(entry, "two");
464456
}
@@ -522,43 +514,6 @@ async fn insert_after_ready_poll() {
522514
assert_eq!("3", res[2]);
523515
}
524516

525-
#[tokio::test]
526-
async fn reset_later_after_slot_starts() {
527-
time::pause();
528-
529-
let mut queue = task::spawn(DelayQueue::new());
530-
531-
let now = Instant::now();
532-
533-
let foo = queue.insert_at("foo", now + ms(100));
534-
535-
assert_pending!(poll!(queue));
536-
537-
sleep_until(now + Duration::from_millis(80)).await;
538-
539-
assert!(!queue.is_woken());
540-
541-
// At this point the queue hasn't been polled, so `elapsed` on the wheel
542-
// for the queue is still at 0 and hence the 1ms resolution slots cover
543-
// [0-64). Resetting the time on the entry to 120 causes it to get put in
544-
// the [64-128) slot. As the queue knows that the first entry is within
545-
// that slot, but doesn't know when, it must wake immediately to advance
546-
// the wheel.
547-
queue.reset_at(&foo, now + ms(120));
548-
assert!(queue.is_woken());
549-
550-
assert_pending!(poll!(queue));
551-
552-
sleep_until(now + Duration::from_millis(119)).await;
553-
assert!(!queue.is_woken());
554-
555-
sleep(ms(1)).await;
556-
assert!(queue.is_woken());
557-
558-
let entry = assert_ready_some!(poll!(queue)).into_inner();
559-
assert_eq!(entry, "foo");
560-
}
561-
562517
#[tokio::test]
563518
async fn reset_inserted_expired() {
564519
time::pause();
@@ -584,43 +539,6 @@ async fn reset_inserted_expired() {
584539
assert_eq!(queue.len(), 0);
585540
}
586541

587-
#[tokio::test]
588-
async fn reset_earlier_after_slot_starts() {
589-
time::pause();
590-
591-
let mut queue = task::spawn(DelayQueue::new());
592-
593-
let now = Instant::now();
594-
595-
let foo = queue.insert_at("foo", now + ms(200));
596-
597-
assert_pending!(poll!(queue));
598-
599-
sleep_until(now + Duration::from_millis(80)).await;
600-
601-
assert!(!queue.is_woken());
602-
603-
// At this point the queue hasn't been polled, so `elapsed` on the wheel
604-
// for the queue is still at 0 and hence the 1ms resolution slots cover
605-
// [0-64). Resetting the time on the entry to 120 causes it to get put in
606-
// the [64-128) slot. As the queue knows that the first entry is within
607-
// that slot, but doesn't know when, it must wake immediately to advance
608-
// the wheel.
609-
queue.reset_at(&foo, now + ms(120));
610-
assert!(queue.is_woken());
611-
612-
assert_pending!(poll!(queue));
613-
614-
sleep_until(now + Duration::from_millis(119)).await;
615-
assert!(!queue.is_woken());
616-
617-
sleep(ms(1)).await;
618-
assert!(queue.is_woken());
619-
620-
let entry = assert_ready_some!(poll!(queue)).into_inner();
621-
assert_eq!(entry, "foo");
622-
}
623-
624542
#[tokio::test]
625543
async fn insert_in_past_after_poll_fires_immediately() {
626544
time::pause();

0 commit comments

Comments
 (0)