Skip to content

Commit 4c45dfa

Browse files
tmiaskocramertj
authored andcommitted
Sink tests: replace Flag::get with Flag::take
This returns the current flag state and clears it for subsequent use, which is what users of this API should be doing anyway.
1 parent 6c5c648 commit 4c45dfa

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

futures/tests/sink.rs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ impl Flag {
104104
Arc::new(Self(AtomicBool::new(false)))
105105
}
106106

107-
fn get(&self) -> bool {
108-
self.0.load(Ordering::SeqCst)
107+
fn take(&self) -> bool {
108+
self.0.swap(false, Ordering::SeqCst)
109109
}
110110

111111
fn set(&self, v: bool) {
@@ -165,12 +165,11 @@ fn mpsc_blocking_start_send() {
165165
let mut task = StartSendFut::new(tx, 1);
166166

167167
assert!(task.poll_unpin(cx).is_pending());
168-
assert!(!flag.get());
168+
assert!(!flag.take());
169169
sassert_next(&mut rx, 0);
170-
assert!(flag.get());
171-
flag.set(false);
170+
assert!(flag.take());
172171
unwrap(task.poll_unpin(cx));
173-
assert!(!flag.get());
172+
assert!(!flag.take());
174173
sassert_next(&mut rx, 1);
175174
})
176175
}));
@@ -194,7 +193,7 @@ fn with_flush() {
194193
let mut task = sink.flush();
195194
assert!(task.poll_unpin(cx).is_pending());
196195
tx.send(()).unwrap();
197-
assert!(flag.get());
196+
assert!(flag.take());
198197

199198
unwrap(task.poll_unpin(cx));
200199

@@ -241,9 +240,9 @@ fn with_propagates_poll_ready() {
241240

242241
// Should be ready for the second item only after the first one is received.
243242
assert_eq!(tx.as_mut().poll_ready(cx), Poll::Pending);
244-
assert!(!flag.get());
243+
assert!(!flag.take());
245244
sassert_next(&mut rx, 10);
246-
assert!(flag.get());
245+
assert!(flag.take());
247246
assert_eq!(tx.as_mut().poll_ready(cx), Poll::Ready(Ok(())));
248247
assert_eq!(tx.as_mut().start_send(1), Ok(()));
249248
})
@@ -317,10 +316,10 @@ fn with_flush_propagate() {
317316
{
318317
let mut task = sink.flush();
319318
assert!(task.poll_unpin(cx).is_pending());
320-
assert!(!flag.get());
319+
assert!(!flag.take());
321320
}
322321
assert_eq!(sink.get_mut().force_flush(), vec![0, 1]);
323-
assert!(flag.get());
322+
assert!(flag.take());
324323
unwrap(sink.flush().poll_unpin(cx));
325324
})
326325
}
@@ -422,9 +421,9 @@ fn buffer() {
422421
flag_cx(|flag, cx| {
423422
let mut task = sink.send(2);
424423
assert!(task.poll_unpin(cx).is_pending());
425-
assert!(!flag.get());
424+
assert!(!flag.take());
426425
allow.start();
427-
assert!(flag.get());
426+
assert!(flag.take());
428427
unwrap(task.poll_unpin(cx));
429428
assert_eq!(sink.get_ref().data, vec![0, 1, 2]);
430429
})
@@ -451,20 +450,20 @@ fn fanout_backpressure() {
451450

452451
flag_cx(|flag, cx| {
453452
let mut task = sink.send(2);
454-
assert!(!flag.get());
453+
assert!(!flag.take());
455454
assert!(task.poll_unpin(cx).is_pending());
456455
assert_eq!(block_on(left_recv.next()), Some(0));
457-
assert!(flag.get());
456+
assert!(flag.take());
458457
assert!(task.poll_unpin(cx).is_pending());
459458
assert_eq!(block_on(right_recv.next()), Some(0));
460-
assert!(flag.get());
459+
assert!(flag.take());
461460

462461
assert!(task.poll_unpin(cx).is_pending());
463462
assert_eq!(block_on(left_recv.next()), Some(2));
464-
assert!(flag.get());
463+
assert!(flag.take());
465464
assert!(task.poll_unpin(cx).is_pending());
466465
assert_eq!(block_on(right_recv.next()), Some(2));
467-
assert!(flag.get());
466+
assert!(flag.take());
468467

469468
unwrap(task.poll_unpin(cx));
470469
// make sure receivers live until end of test to prevent send errors

0 commit comments

Comments
 (0)