@@ -14,14 +14,14 @@ use std::sync::Arc;
1414use std:: time:: { Duration , Instant } ;
1515use std:: thread;
1616
17- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
17+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
1818use libc;
1919use platform:: { OsIpcSender , OsIpcOneShotServer } ;
2020#[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = "android" ) ) ) ]
2121use libc:: { kill, SIGSTOP , SIGCONT } ;
2222#[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = "android" ) ) ) ]
2323use 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" ) ) ) ]
2525use test:: { get_channel_name_arg, spawn_server} ;
2626
2727#[ test]
@@ -200,7 +200,8 @@ fn with_n_fds(n: usize, size: usize) {
200200
201201// These tests only apply to platforms that need fragmentation.
202202#[ cfg( all( not( feature = "force-inprocess" ) , any( target_os = "linux" ,
203- target_os = "freebsd" ) ) ) ]
203+ target_os = "freebsd" ,
204+ target_os = "windows" ) ) ) ]
204205mod fragment_tests {
205206 use platform;
206207 use super :: with_n_fds;
@@ -648,7 +649,7 @@ fn server_connect_first() {
648649 ( data, vec![ ] , vec![ ] ) ) ;
649650}
650651
651- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
652+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
652653#[ test]
653654fn cross_process_spawn ( ) {
654655 let data: & [ u8 ] = b"1234567" ;
@@ -689,7 +690,7 @@ fn cross_process_fork() {
689690 ( data, vec![ ] , vec![ ] ) ) ;
690691}
691692
692- #[ cfg( not( any( feature = "force-inprocess" , target_os = "windows" , target_os = " android") ) ) ]
693+ #[ cfg( not( any( feature = "force-inprocess" , target_os = "android" ) ) ) ]
693694#[ test]
694695fn cross_process_sender_transfer_spawn ( ) {
695696 let channel_name = get_channel_name_arg ( "server" ) ;
@@ -916,10 +917,16 @@ mod sync_test {
916917 }
917918}
918919
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) ]
923930#[ test]
924931fn cross_process_two_step_transfer_spawn ( ) {
925932 let cookie: & [ u8 ] = b"cookie" ;
0 commit comments