@@ -183,13 +183,31 @@ fn unix_stream_pair() {
183183 target_os = "hurd" ,
184184 ignore = "getting pathname isn't supported on GNU/Hurd"
185185) ]
186- #[ cfg_attr( target_os = "cygwin" , ignore = "nonblocking connect doesn't handshake" ) ]
187186fn unix_stream_peer_addr ( ) {
188187 init ( ) ;
189188 let ( handle, expected_addr) = new_echo_listener ( 1 , "unix_stream_peer_addr" ) ;
190189 let expected_path = expected_addr. as_pathname ( ) . expect ( "failed to get pathname" ) ;
191190
192191 let stream = UnixStream :: connect ( expected_path) . unwrap ( ) ;
192+ // Complete handshake to unblock the server thread.
193+ #[ cfg( target_os = "cygwin" ) ]
194+ let stream = {
195+ let mut stream = stream;
196+ let ( mut poll, mut events) = init_with_poll ( ) ;
197+ poll. registry ( )
198+ . register (
199+ & mut stream,
200+ TOKEN_1 ,
201+ Interest :: READABLE . add ( Interest :: WRITABLE ) ,
202+ )
203+ . unwrap ( ) ;
204+ expect_events (
205+ & mut poll,
206+ & mut events,
207+ vec ! [ ExpectEvent :: new( TOKEN_1 , Interest :: WRITABLE ) ] ,
208+ ) ;
209+ stream
210+ } ;
193211
194212 assert_eq ! (
195213 stream. peer_addr( ) . unwrap( ) . as_pathname( ) . unwrap( ) ,
@@ -485,13 +503,30 @@ fn unix_stream_reregister() {
485503 target_os = "hurd" ,
486504 ignore = "getting pathname isn't supported on GNU/Hurd"
487505) ]
488- #[ cfg_attr( target_os = "cygwin" , ignore = "nonblocking connect doesn't handshake" ) ]
489506fn unix_stream_deregister ( ) {
490507 let ( mut poll, mut events) = init_with_poll ( ) ;
491508 let ( handle, remote_addr) = new_echo_listener ( 1 , "unix_stream_deregister" ) ;
492509 let path = remote_addr. as_pathname ( ) . expect ( "failed to get pathname" ) ;
493510
494511 let mut stream = UnixStream :: connect ( path) . unwrap ( ) ;
512+ // Complete handshake to unblock the server thread.
513+ #[ cfg( target_os = "cygwin" ) ]
514+ {
515+ let ( mut poll, mut events) = init_with_poll ( ) ;
516+ poll. registry ( )
517+ . register (
518+ & mut stream,
519+ TOKEN_1 ,
520+ Interest :: READABLE . add ( Interest :: WRITABLE ) ,
521+ )
522+ . unwrap ( ) ;
523+ expect_events (
524+ & mut poll,
525+ & mut events,
526+ vec ! [ ExpectEvent :: new( TOKEN_1 , Interest :: WRITABLE ) ] ,
527+ ) ;
528+ poll. registry ( ) . deregister ( & mut stream) . unwrap ( ) ;
529+ }
495530 poll. registry ( )
496531 . register ( & mut stream, TOKEN_1 , Interest :: WRITABLE )
497532 . unwrap ( ) ;
0 commit comments