@@ -288,7 +288,6 @@ fn reconnect_udp_socket_sending() {
288
288
}
289
289
290
290
#[ test]
291
- #[ cfg_attr( windows, ignore = "fails on Windows, see #1080" ) ]
292
291
fn reconnect_udp_socket_receiving ( ) {
293
292
let ( mut poll, mut events) = init_with_poll ( ) ;
294
293
@@ -334,7 +333,11 @@ fn reconnect_udp_socket_receiving() {
334
333
let mut buf = [ 0 ; 20 ] ;
335
334
expect_read ! ( socket1. recv( & mut buf) , DATA1 ) ;
336
335
336
+ //this will reregister socket1 resetting the interests
337
+ assert_would_block ( socket1. recv ( & mut buf) ) ;
338
+
337
339
socket1. connect ( address3) . unwrap ( ) ;
340
+
338
341
checked_write ! ( socket3. send( DATA2 ) ) ;
339
342
340
343
expect_events (
@@ -343,12 +346,16 @@ fn reconnect_udp_socket_receiving() {
343
346
vec ! [ ExpectEvent :: new( ID1 , Interests :: READABLE ) ] ,
344
347
) ;
345
348
346
- // Read only a part of the data.
347
- let max = 4 ;
348
- expect_read ! ( socket1. recv( & mut buf[ ..max] ) , & DATA2 [ ..max] ) ;
349
+ // Read all data.
350
+ // On Windows, reading part of data returns error WSAEMSGSIZE (10040).
351
+ expect_read ! ( socket1. recv( & mut buf) , DATA2 ) ;
352
+
353
+ //this will reregister socket1 resetting the interests
354
+ assert_would_block ( socket1. recv ( & mut buf) ) ;
349
355
350
356
// Now connect back to socket 2, dropping the unread data.
351
357
socket1. connect ( address2) . unwrap ( ) ;
358
+
352
359
checked_write ! ( socket2. send( DATA2 ) ) ;
353
360
354
361
expect_events (
@@ -365,7 +372,6 @@ fn reconnect_udp_socket_receiving() {
365
372
}
366
373
367
374
#[ test]
368
- #[ cfg_attr( windows, ignore = "fails on Windows, see #1080" ) ]
369
375
fn unconnected_udp_socket_connected_methods ( ) {
370
376
let ( mut poll, mut events) = init_with_poll ( ) ;
371
377
@@ -387,7 +393,15 @@ fn unconnected_udp_socket_connected_methods() {
387
393
) ;
388
394
389
395
// Socket is unconnected, but we're using an connected method.
390
- assert_error ( socket1. send ( DATA1 ) , "address required" ) ;
396
+ if cfg ! ( not( target_os = "windows" ) ) {
397
+ assert_error ( socket1. send ( DATA1 ) , "address required" ) ;
398
+ }
399
+ if cfg ! ( target_os = "windows" ) {
400
+ assert_error (
401
+ socket1. send ( DATA1 ) ,
402
+ "no address was supplied. (os error 10057)" ,
403
+ ) ;
404
+ }
391
405
392
406
// Now send some actual data.
393
407
checked_write ! ( socket1. send_to( DATA1 , address2) ) ;
0 commit comments