diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-12-13 19:33:28 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-12-24 19:59:53 -0800 |
| commit | aad9fbf6b65137f278d74cc84e0028a8f8aeed03 (patch) | |
| tree | 01c5e2b2047c3bf5ab1e87d05325567183e4167e /src/libgreen/basic.rs | |
| parent | 1a6d920e3df3d48168b22879a194538ec10c951a (diff) | |
| download | rust-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.rs | 58 |
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(); + } +} |
