@@ -14,14 +14,14 @@ use std::sync::Arc;
14
14
use std:: time:: { Duration , Instant } ;
15
15
use std:: thread;
16
16
17
- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
17
+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
18
18
use libc;
19
19
use platform:: { OsIpcSender , OsIpcOneShotServer } ;
20
20
#[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = "android" ) ) ) ]
21
21
use libc:: { kill, SIGSTOP , SIGCONT } ;
22
22
#[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = "android" ) ) ) ]
23
23
use test:: { fork, Wait } ;
24
- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
24
+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
25
25
use test:: { get_channel_name_arg, spawn_server} ;
26
26
27
27
#[ test]
@@ -200,7 +200,8 @@ fn with_n_fds(n: usize, size: usize) {
200
200
201
201
// These tests only apply to platforms that need fragmentation.
202
202
#[ cfg( all( not( feature = "force-inprocess" ) , any( target_os = "linux" ,
203
- target_os = "freebsd" ) ) ) ]
203
+ target_os = "freebsd" ,
204
+ target_os = "windows" ) ) ) ]
204
205
mod fragment_tests {
205
206
use platform;
206
207
use super :: with_n_fds;
@@ -648,7 +649,7 @@ fn server_connect_first() {
648
649
( data, vec![ ] , vec![ ] ) ) ;
649
650
}
650
651
651
- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
652
+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
652
653
#[ test]
653
654
fn cross_process_spawn ( ) {
654
655
let data: & [ u8 ] = b"1234567" ;
@@ -689,7 +690,7 @@ fn cross_process_fork() {
689
690
( data, vec![ ] , vec![ ] ) ) ;
690
691
}
691
692
692
- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
693
+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
693
694
#[ test]
694
695
fn cross_process_sender_transfer_spawn ( ) {
695
696
let channel_name = get_channel_name_arg ( "server" ) ;
@@ -916,10 +917,16 @@ mod sync_test {
916
917
}
917
918
}
918
919
919
- // TODO -- this fails on OSX with a MACH_SEND_INVALID_RIGHT!
920
- // Needs investigation.
921
- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = "android" ) ) ) ]
922
- #[ cfg_attr( target_os = "macos" , ignore) ]
920
+ // This test panics on Windows, because the other process will panic
921
+ // when it detects that it receives handles that are intended for another
922
+ // process. It's marked as ignore/known-fail on Windows for this reason.
923
+ //
924
+ // TODO -- this fails on OSX as well with a MACH_SEND_INVALID_RIGHT!
925
+ // Needs investigation. It may be a similar underlying issue, just done by
926
+ // the kernel instead of explicitly (ports in a message that's already
927
+ // buffered are intended for only one process).
928
+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
929
+ #[ cfg_attr( any( target_os = "windows" , target_os = "macos" ) , ignore) ]
923
930
#[ test]
924
931
fn cross_process_two_step_transfer_spawn ( ) {
925
932
let cookie: & [ u8 ] = b"cookie" ;
0 commit comments