From 4ddbb0d4b1edb6f8f1fedf34e4bdc96710402800 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sat, 30 Aug 2014 23:43:20 -0700 Subject: [PATCH] test: Fix the tcp-accept-stress test It was previously asserted that each thread received at least one connection, but this is not guaranteed to always be the case due to scheduling. This test also deadlocked on failure due to a lingering reference to the sending half of the channel, so that reference is now also eagerly dropped so the test can fail properly if something bad happens. Closes #16872 --- src/test/run-pass/tcp-accept-stress.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/test/run-pass/tcp-accept-stress.rs b/src/test/run-pass/tcp-accept-stress.rs index 19097c8e26c..372f6a473b2 100644 --- a/src/test/run-pass/tcp-accept-stress.rs +++ b/src/test/run-pass/tcp-accept-stress.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-macos #16872 spurious deadlock - #![feature(phase)] #[phase(plugin)] @@ -49,11 +47,9 @@ fn test() { let tx = tx.clone(); spawn(proc() { let mut a = a; - let mut mycnt = 0u; loop { match a.accept() { Ok(..) => { - mycnt += 1; if cnt.fetch_add(1, atomic::SeqCst) == N * M - 1 { break } @@ -62,7 +58,6 @@ fn test() { Err(e) => fail!("{}", e), } } - assert!(mycnt > 0); tx.send(()); }); } @@ -77,6 +72,7 @@ fn test() { tx.send(()); }); } + drop(tx); // wait for senders assert_eq!(rx.iter().take(N).count(), N); -- 2.44.0