about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-01-07 17:17:34 -0800
committerAlex Crichton <alex@alexcrichton.com>2015-01-07 17:17:34 -0800
commitb21a0cee19ab1cdbe57c7f277a9cc9f2658ebce2 (patch)
tree9ae0e662fc80c622888ad76275664fb109d553dd
parent188bfbfd5d3943ee91b33bf0ebff98854831dcaa (diff)
parent99b39cc98ea03994f376b8389e4366b688334e65 (diff)
downloadrust-b21a0cee19ab1cdbe57c7f277a9cc9f2658ebce2.tar.gz
rust-b21a0cee19ab1cdbe57c7f277a9cc9f2658ebce2.zip
rollup merge of #20704: alexcrichton/hopefully-make-tests-less-spurious
These tests have all been failing spuroiusly on Windows from time to time, and
one suspicion is that the shilc thread outliving the main thread somehow causes
the problem. Switch all the tests over to using Thread::scoped instead of
Thread::spawn to see if it helps the issue.

cc #19120
-rw-r--r--src/test/run-pass/drop-trait-enum.rs4
-rw-r--r--src/test/run-pass/extern-stress.rs2
-rw-r--r--src/test/run-pass/extern-yield.rs2
-rw-r--r--src/test/run-pass/issue-9396.rs2
-rw-r--r--src/test/run-pass/tcp-accept-stress.rs16
-rw-r--r--src/test/run-pass/threads.rs2
-rw-r--r--src/test/run-pass/unique-send-2.rs10
-rw-r--r--src/test/run-pass/unwind-resource.rs2
8 files changed, 20 insertions, 20 deletions
diff --git a/src/test/run-pass/drop-trait-enum.rs b/src/test/run-pass/drop-trait-enum.rs
index f1cc4fb1724..6addfc59a3d 100644
--- a/src/test/run-pass/drop-trait-enum.rs
+++ b/src/test/run-pass/drop-trait-enum.rs
@@ -66,7 +66,7 @@ pub fn main() {
     assert_eq!(receiver.recv().ok(), None);
 
     let (sender, receiver) = channel();
-    let _t = Thread::spawn(move|| {
+    let _t = Thread::scoped(move|| {
         let v = Foo::FailingVariant { on_drop: SendOnDrop { sender: sender } };
     });
     assert_eq!(receiver.recv().unwrap(), Message::Dropped);
@@ -74,7 +74,7 @@ pub fn main() {
 
     let (sender, receiver) = channel();
     let _t = {
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             let mut v = Foo::NestedVariant(box 42u, SendOnDrop {
                 sender: sender.clone()
             }, sender.clone());
diff --git a/src/test/run-pass/extern-stress.rs b/src/test/run-pass/extern-stress.rs
index bb9e9407382..c3e04177cce 100644
--- a/src/test/run-pass/extern-stress.rs
+++ b/src/test/run-pass/extern-stress.rs
@@ -42,7 +42,7 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
 
 pub fn main() {
     range(0u, 100).map(|_| {
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             assert_eq!(count(5), 16);
         })
     }).collect::<Vec<_>>();
diff --git a/src/test/run-pass/extern-yield.rs b/src/test/run-pass/extern-yield.rs
index 46829e9ba6e..f5e91b9de67 100644
--- a/src/test/run-pass/extern-yield.rs
+++ b/src/test/run-pass/extern-yield.rs
@@ -39,7 +39,7 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
 
 pub fn main() {
     range(0, 10u).map(|i| {
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             let result = count(5);
             println!("result = {}", result);
             assert_eq!(result, 16);
diff --git a/src/test/run-pass/issue-9396.rs b/src/test/run-pass/issue-9396.rs
index 34bb50c5cf6..73355d15a27 100644
--- a/src/test/run-pass/issue-9396.rs
+++ b/src/test/run-pass/issue-9396.rs
@@ -15,7 +15,7 @@ use std::time::Duration;
 
 pub fn main() {
     let (tx, rx) = channel();
-    let _t = Thread::spawn(move||{
+    let _t = Thread::scoped(move||{
         let mut timer = Timer::new().unwrap();
         timer.sleep(Duration::milliseconds(10));
         tx.send(()).unwrap();
diff --git a/src/test/run-pass/tcp-accept-stress.rs b/src/test/run-pass/tcp-accept-stress.rs
index cd3cb872fd3..cad71732034 100644
--- a/src/test/run-pass/tcp-accept-stress.rs
+++ b/src/test/run-pass/tcp-accept-stress.rs
@@ -34,11 +34,11 @@ fn test() {
 
     let (srv_tx, srv_rx) = channel();
     let (cli_tx, cli_rx) = channel();
-    for _ in range(0, N) {
+    let _t = range(0, N).map(|_| {
         let a = a.clone();
         let cnt = cnt.clone();
         let srv_tx = srv_tx.clone();
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             let mut a = a;
             loop {
                 match a.accept() {
@@ -52,18 +52,18 @@ fn test() {
                 }
             }
             srv_tx.send(());
-        });
-    }
+        })
+    }).collect::<Vec<_>>();
 
-    for _ in range(0, N) {
+    let _t = range(0, N).map(|_| {
         let cli_tx = cli_tx.clone();
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             for _ in range(0, M) {
                 let _s = TcpStream::connect(addr).unwrap();
             }
             cli_tx.send(());
-        });
-    }
+        })
+    }).collect::<Vec<_>>();
     drop((cli_tx, srv_tx));
 
     // wait for senders
diff --git a/src/test/run-pass/threads.rs b/src/test/run-pass/threads.rs
index c47ca0db2a1..abc2938df00 100644
--- a/src/test/run-pass/threads.rs
+++ b/src/test/run-pass/threads.rs
@@ -13,7 +13,7 @@ use std::thread::Thread;
 pub fn main() {
     let mut i = 10;
     while i > 0 {
-        Thread::spawn({let i = i; move|| child(i)});
+        Thread::scoped({let i = i; move|| child(i)});
         i = i - 1;
     }
     println!("main thread exiting");
diff --git a/src/test/run-pass/unique-send-2.rs b/src/test/run-pass/unique-send-2.rs
index bb3019ede4b..ba75c7629b5 100644
--- a/src/test/run-pass/unique-send-2.rs
+++ b/src/test/run-pass/unique-send-2.rs
@@ -19,13 +19,13 @@ pub fn main() {
     let (tx, rx) = channel();
     let n = 100u;
     let mut expected = 0u;
-    for i in range(0u, n) {
+    let _t = range(0u, n).map(|i| {
+        expected += i;
         let tx = tx.clone();
-        Thread::spawn(move|| {
+        Thread::scoped(move|| {
             child(&tx, i)
-        });
-        expected += i;
-    }
+        })
+    }).collect::<Vec<_>>();
 
     let mut actual = 0u;
     for _ in range(0u, n) {
diff --git a/src/test/run-pass/unwind-resource.rs b/src/test/run-pass/unwind-resource.rs
index 3f59b2c6c76..159bac10183 100644
--- a/src/test/run-pass/unwind-resource.rs
+++ b/src/test/run-pass/unwind-resource.rs
@@ -37,7 +37,7 @@ fn f(tx: Sender<bool>) {
 
 pub fn main() {
     let (tx, rx) = channel();
-    let _t = Thread::spawn(move|| f(tx.clone()));
+    let _t = Thread::scoped(move|| f(tx.clone()));
     println!("hiiiiiiiii");
     assert!(rx.recv().unwrap());
 }