File tree 1 file changed +33
-0
lines changed
1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,39 @@ const ID1: Token = Token(2);
28
28
const ID2 : Token = Token ( 3 ) ;
29
29
const ID3 : Token = Token ( 4 ) ;
30
30
31
+ #[ test]
32
+ fn empty_datagram ( ) {
33
+ const EMPTY : & [ u8 ] = b"" ;
34
+
35
+ let ( mut poll, mut events) = init_with_poll ( ) ;
36
+ let mut s1 = UdpSocket :: bind ( any_local_address ( ) ) . unwrap ( ) ;
37
+ let mut s2 = UdpSocket :: bind ( any_local_address ( ) ) . unwrap ( ) ;
38
+
39
+ poll. registry ( )
40
+ . register ( & mut s1, ID1 , Interest :: WRITABLE )
41
+ . unwrap ( ) ;
42
+ poll. registry ( )
43
+ . register ( & mut s2, ID2 , Interest :: READABLE )
44
+ . unwrap ( ) ;
45
+
46
+ expect_events (
47
+ & mut poll,
48
+ & mut events,
49
+ vec ! [ ExpectEvent :: new( ID1 , Interest :: WRITABLE ) ] ,
50
+ ) ;
51
+
52
+ checked_write ! ( s1. send_to( EMPTY , s2. local_addr( ) . unwrap( ) ) ) ;
53
+
54
+ let mut buf = [ 0 ; 10 ] ;
55
+
56
+ expect_events (
57
+ & mut poll,
58
+ & mut events,
59
+ vec ! [ ExpectEvent :: new( ID2 , Interest :: READABLE ) ] ,
60
+ ) ;
61
+ expect_read ! ( s2. recv_from( & mut buf) , EMPTY , s1. local_addr( ) . unwrap( ) ) ;
62
+ }
63
+
31
64
#[ test]
32
65
fn is_send_and_sync ( ) {
33
66
assert_send :: < UdpSocket > ( ) ;
You can’t perform that action at this time.
0 commit comments