File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 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<()> {
4949 Ok ( ( ) )
5050 } )
5151}
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