@@ -22,7 +22,7 @@ use super::sched::{Scheduler, local_sched};
22
22
#[ cfg( test) ] use uint;
23
23
#[ cfg( test) ] use unstable:: run_in_bare_thread;
24
24
#[ cfg( test) ] use super :: sched:: Task ;
25
- #[ cfg( test) ] use super :: test:: next_test_port ;
25
+ #[ cfg( test) ] use super :: test:: * ;
26
26
27
27
pub struct UvEventLoop {
28
28
uvio : UvIoFactory
@@ -336,35 +336,21 @@ impl Stream for UvStream {
336
336
337
337
#[ test]
338
338
fn test_simple_io_no_connect ( ) {
339
- do run_in_bare_thread {
340
- let mut sched = ~UvEventLoop : : new_scheduler ( ) ;
341
- let task = ~do Task :: new ( & mut sched. stack_pool ) {
342
- let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
343
- let addr = Ipv4 ( 127 , 0 , 0 , 1 , next_test_port ( ) ) ;
344
- let maybe_chan = io. connect ( addr) ;
345
- assert ! ( maybe_chan. is_none( ) ) ;
346
- } ;
347
- sched. task_queue . push_back ( task) ;
348
- sched. run ( ) ;
339
+ do run_in_newsched_task {
340
+ let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
341
+ let addr = Ipv4 ( 127 , 0 , 0 , 1 , next_test_port ( ) ) ;
342
+ let maybe_chan = io. connect ( addr) ;
343
+ assert ! ( maybe_chan. is_none( ) ) ;
349
344
}
350
345
}
351
346
352
347
#[ test]
353
348
fn test_simple_tcp_server_and_client ( ) {
354
- do run_in_bare_thread {
355
- let mut sched = ~UvEventLoop : : new_scheduler ( ) ;
349
+ do run_in_newsched_task {
356
350
let addr = Ipv4 ( 127 , 0 , 0 , 1 , next_test_port ( ) ) ;
357
351
358
- let client_task = ~do Task :: new ( & mut sched. stack_pool ) {
359
- unsafe {
360
- let io = local_sched:: unsafe_borrow_io ( ) ;
361
- let mut stream = io. connect ( addr) . unwrap ( ) ;
362
- stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
363
- stream. close ( ) ;
364
- }
365
- } ;
366
-
367
- let server_task = ~do Task :: new ( & mut sched. stack_pool ) {
352
+ // Start the server first so it's listening when we connect
353
+ do spawn_immediately {
368
354
unsafe {
369
355
let io = local_sched:: unsafe_borrow_io ( ) ;
370
356
let mut listener = io. bind ( addr) . unwrap ( ) ;
@@ -379,32 +365,25 @@ fn test_simple_tcp_server_and_client() {
379
365
stream. close ( ) ;
380
366
listener. close ( ) ;
381
367
}
382
- } ;
368
+ }
383
369
384
- // Start the server first so it listens before the client connects
385
- sched. task_queue . push_back ( server_task) ;
386
- sched. task_queue . push_back ( client_task) ;
387
- sched. run ( ) ;
370
+ do spawn_immediately {
371
+ unsafe {
372
+ let io = local_sched:: unsafe_borrow_io ( ) ;
373
+ let mut stream = io. connect ( addr) . unwrap ( ) ;
374
+ stream. write( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
375
+ stream. close( ) ;
376
+ }
377
+ }
388
378
}
389
379
}
390
380
391
381
#[ test] #[ ignore( reason = "busted" ) ]
392
382
fn test_read_and_block ( ) {
393
- do run_in_bare_thread {
394
- let mut sched = ~UvEventLoop : : new_scheduler ( ) ;
383
+ do run_in_newsched_task {
395
384
let addr = Ipv4 ( 127 , 0 , 0 , 1 , next_test_port ( ) ) ;
396
385
397
- let client_task = ~do Task :: new ( & mut sched. stack_pool ) {
398
- let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
399
- let mut stream = io. connect ( addr) . unwrap ( ) ;
400
- stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
401
- stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
402
- stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
403
- stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
404
- stream. close ( ) ;
405
- } ;
406
-
407
- let server_task = ~do Task :: new ( & mut sched. stack_pool ) {
386
+ do spawn_immediately {
408
387
let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
409
388
let mut listener = io. bind ( addr) . unwrap ( ) ;
410
389
let mut stream = listener. listen ( ) . unwrap ( ) ;
@@ -440,22 +419,27 @@ fn test_read_and_block() {
440
419
441
420
stream. close ( ) ;
442
421
listener. close ( ) ;
443
- } ;
422
+ }
423
+
424
+ do spawn_immediately {
425
+ let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
426
+ let mut stream = io. connect ( addr) . unwrap ( ) ;
427
+ stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
428
+ stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
429
+ stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
430
+ stream. write ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ) ;
431
+ stream. close ( ) ;
432
+ }
444
433
445
- // Start the server first so it listens before the client connects
446
- sched. task_queue . push_back ( server_task) ;
447
- sched. task_queue . push_back ( client_task) ;
448
- sched. run ( ) ;
449
434
}
450
435
}
451
436
452
437
#[ test] #[ ignore( reason = "needs server" ) ]
453
438
fn test_read_read_read ( ) {
454
- do run_in_bare_thread {
455
- let mut sched = ~UvEventLoop : : new_scheduler ( ) ;
439
+ do run_in_newsched_task {
456
440
let addr = Ipv4 ( 127 , 0 , 0 , 1 , next_test_port ( ) ) ;
457
441
458
- let client_task = ~ do Task :: new ( & mut sched . stack_pool ) {
442
+ do spawn_immediately {
459
443
let io = unsafe { local_sched:: unsafe_borrow_io ( ) } ;
460
444
let mut stream = io. connect ( addr) . unwrap ( ) ;
461
445
let mut buf = [ 0 , .. 2048 ] ;
@@ -467,9 +451,6 @@ fn test_read_read_read() {
467
451
}
468
452
rtdebug_ ! ( "read %u bytes total" , total_bytes_read as uint) ;
469
453
stream. close ( ) ;
470
- } ;
471
-
472
- sched. task_queue . push_back ( client_task) ;
473
- sched. run ( ) ;
454
+ }
474
455
}
475
456
}
0 commit comments