about summary refs log tree commit diff
path: root/src/libgreen/basic.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-12-13 19:33:28 -0800
committerAlex Crichton <alex@alexcrichton.com>2013-12-24 19:59:53 -0800
commitaad9fbf6b65137f278d74cc84e0028a8f8aeed03 (patch)
tree01c5e2b2047c3bf5ab1e87d05325567183e4167e /src/libgreen/basic.rs
parent1a6d920e3df3d48168b22879a194538ec10c951a (diff)
downloadrust-aad9fbf6b65137f278d74cc84e0028a8f8aeed03.tar.gz
rust-aad9fbf6b65137f278d74cc84e0028a8f8aeed03.zip
green: Fixing all tests from previous refactorings
Diffstat (limited to 'src/libgreen/basic.rs')
-rw-r--r--src/libgreen/basic.rs58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/libgreen/basic.rs b/src/libgreen/basic.rs
index 6140da08b68..e1e489a2a2b 100644
--- a/src/libgreen/basic.rs
+++ b/src/libgreen/basic.rs
@@ -223,3 +223,61 @@ impl Drop for BasicPausable {
         }
     }
 }
+
+#[cfg(test)]
+mod test {
+    use std::task::TaskOpts;
+
+    use basic;
+    use PoolConfig;
+    use SchedPool;
+
+    fn pool() -> SchedPool {
+        SchedPool::new(PoolConfig {
+            threads: 1,
+            event_loop_factory: Some(basic::event_loop),
+        })
+    }
+
+    fn run(f: proc()) {
+        let mut pool = pool();
+        pool.spawn(TaskOpts::new(), f);
+        pool.shutdown();
+    }
+
+    #[test]
+    fn smoke() {
+        do run {}
+    }
+
+    #[test]
+    fn some_channels() {
+        do run {
+            let (p, c) = Chan::new();
+            do spawn {
+                c.send(());
+            }
+            p.recv();
+        }
+    }
+
+    #[test]
+    fn multi_thread() {
+        let mut pool = SchedPool::new(PoolConfig {
+            threads: 2,
+            event_loop_factory: Some(basic::event_loop),
+        });
+
+        for _ in range(0, 20) {
+            do pool.spawn(TaskOpts::new()) {
+                let (p, c) = Chan::new();
+                do spawn {
+                    c.send(());
+                }
+                p.recv();
+            }
+        }
+
+        pool.shutdown();
+    }
+}