@@ -37,6 +37,11 @@ pub mod tests {
3737 use serde_json:: json;
3838 use serde_json:: Value ;
3939 use std:: collections:: HashMap ;
40+ use std:: net:: IpAddr ;
41+ use std:: net:: Ipv4Addr ;
42+ use std:: net:: Ipv6Addr ;
43+ use std:: net:: SocketAddr ;
44+ use tokio:: net:: TcpListener ;
4045
4146 pub async fn start_server ( port : u16 ) {
4247 let router = Router :: new ( )
@@ -45,10 +50,19 @@ pub mod tests {
4550 . route ( "/json" , post ( handle_json) )
4651 . route ( "/form" , post ( handle_form) )
4752 . route ( "/multipart" , post ( handle_multipart) ) ;
48-
49- let listener = tokio:: net:: TcpListener :: bind ( ( "127.0.0.1" , port) ) . await . unwrap ( ) ;
50- tokio:: spawn ( async move {
51- axum:: serve ( listener, router) . await . unwrap ( ) ;
53+ let listeners = [
54+ TcpListener :: bind ( SocketAddr :: new ( IpAddr :: from ( Ipv4Addr :: UNSPECIFIED ) , port) )
55+ . await
56+ . unwrap ( ) ,
57+ TcpListener :: bind ( SocketAddr :: new ( IpAddr :: from ( Ipv6Addr :: UNSPECIFIED ) , port) )
58+ . await
59+ . unwrap ( ) ,
60+ ] ;
61+ listeners. into_iter ( ) . for_each ( |listener| {
62+ let router = router. to_owned ( ) ;
63+ tokio:: spawn ( async move {
64+ axum:: serve ( listener, router) . await . unwrap ( ) ;
65+ } ) ;
5266 } ) ;
5367 }
5468
0 commit comments