File tree Expand file tree Collapse file tree 6 files changed +351
-282
lines changed Expand file tree Collapse file tree 6 files changed +351
-282
lines changed Original file line number Diff line number Diff line change @@ -223,3 +223,61 @@ impl Drop for BasicPausable {
223
223
}
224
224
}
225
225
}
226
+
227
+ #[ cfg( test) ]
228
+ mod test {
229
+ use std:: task:: TaskOpts ;
230
+
231
+ use basic;
232
+ use PoolConfig ;
233
+ use SchedPool ;
234
+
235
+ fn pool ( ) -> SchedPool {
236
+ SchedPool :: new ( PoolConfig {
237
+ threads : 1 ,
238
+ event_loop_factory : Some ( basic:: event_loop) ,
239
+ } )
240
+ }
241
+
242
+ fn run ( f : proc ( ) ) {
243
+ let mut pool = pool ( ) ;
244
+ pool. spawn ( TaskOpts :: new ( ) , f) ;
245
+ pool. shutdown ( ) ;
246
+ }
247
+
248
+ #[ test]
249
+ fn smoke ( ) {
250
+ do run { }
251
+ }
252
+
253
+ #[ test]
254
+ fn some_channels ( ) {
255
+ do run {
256
+ let ( p, c) = Chan :: new ( ) ;
257
+ do spawn {
258
+ c. send ( ( ) ) ;
259
+ }
260
+ p. recv( ) ;
261
+ }
262
+ }
263
+
264
+ #[ test]
265
+ fn multi_thread ( ) {
266
+ let mut pool = SchedPool :: new ( PoolConfig {
267
+ threads : 2 ,
268
+ event_loop_factory : Some ( basic:: event_loop) ,
269
+ } ) ;
270
+
271
+ for _ in range ( 0 , 20 ) {
272
+ do pool. spawn ( TaskOpts :: new ( ) ) {
273
+ let ( p, c) = Chan :: new ( ) ;
274
+ do spawn {
275
+ c. send ( ( ) ) ;
276
+ }
277
+ p. recv ( ) ;
278
+ }
279
+ }
280
+
281
+ pool. shutdown ( ) ;
282
+ }
283
+ }
Original file line number Diff line number Diff line change @@ -58,8 +58,6 @@ pub mod sleeper_list;
58
58
pub mod stack;
59
59
pub mod task;
60
60
61
- #[ cfg( test) ] mod tests;
62
-
63
61
#[ cfg( stage0) ]
64
62
#[ lang = "start" ]
65
63
pub fn lang_start ( main : * u8 , argc : int , argv : * * u8 ) -> int {
You can’t perform that action at this time.
0 commit comments