File tree 1 file changed +45
-0
lines changed
1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -49,3 +49,48 @@ fn incoming_read() -> io::Result<()> {
49
49
Ok ( ( ) )
50
50
} )
51
51
}
52
+
53
+ #[ test]
54
+ fn smoke_std_stream_to_async_listener ( ) -> io:: Result < ( ) > {
55
+ use std:: io:: Write ;
56
+
57
+ task:: block_on ( async {
58
+ let listener = TcpListener :: bind ( "127.0.0.1:0" ) . await ?;
59
+ let addr = listener. local_addr ( ) ?;
60
+
61
+ let mut std_stream = std:: net:: TcpStream :: connect ( & addr) ?;
62
+ std_stream. write_all ( THE_WINTERS_TALE ) ?;
63
+
64
+ let mut buf = vec ! [ 0 ; 1024 ] ;
65
+ let mut incoming = listener. incoming ( ) ;
66
+ let mut stream = incoming. next ( ) . await . unwrap ( ) ?;
67
+
68
+ let n = stream. read ( & mut buf) . await ?;
69
+ assert_eq ! ( & buf[ ..n] , THE_WINTERS_TALE ) ;
70
+
71
+ Ok ( ( ) )
72
+ } )
73
+ }
74
+
75
+ #[ test]
76
+ fn smoke_async_stream_to_std_listener ( ) -> io:: Result < ( ) > {
77
+ use std:: io:: Read ;
78
+
79
+ let std_listener = std:: net:: TcpListener :: bind ( "127.0.0.1:0" ) ?;
80
+ let addr = std_listener. local_addr ( ) ?;
81
+
82
+ task:: block_on ( async move {
83
+ let mut stream = TcpStream :: connect ( & addr) . await ?;
84
+ stream. write_all ( THE_WINTERS_TALE ) . await ?;
85
+ io:: Result :: Ok ( ( ) )
86
+ } ) ?;
87
+
88
+ let mut buf = vec ! [ 0 ; 1024 ] ;
89
+ let mut incoming = std_listener. incoming ( ) ;
90
+ let mut stream = incoming. next ( ) . unwrap ( ) ?;
91
+
92
+ let n = stream. read ( & mut buf) . unwrap ( ) ;
93
+ assert_eq ! ( & buf[ ..n] , THE_WINTERS_TALE ) ;
94
+
95
+ Ok ( ( ) )
96
+ }
You can’t perform that action at this time.
0 commit comments