22
33use iroh_net:: { key:: SecretKey , NodeAddr } ;
44use quic_rpc:: { transport, RpcClient , RpcServer } ;
5- use tokio:: task:: JoinHandle ;
5+ use testresult:: TestResult ;
6+
7+ use crate :: transport:: iroh_net:: { IrohNetConnector , IrohNetListener } ;
68
79mod math;
810use math:: * ;
11+ use tokio_util:: task:: AbortOnDropHandle ;
912mod util;
1013
1114const ALPN : & [ u8 ] = b"quic-rpc/iroh-net/test" ;
@@ -44,13 +47,10 @@ impl Endpoints {
4447 }
4548}
4649
47- fn run_server ( server : iroh_net:: Endpoint ) -> JoinHandle < anyhow:: Result < ( ) > > {
48- tokio:: task:: spawn ( async move {
49- let connection = transport:: iroh_net:: IrohNetListener :: new ( server) ?;
50- let server = RpcServer :: new ( connection) ;
51- ComputeService :: server ( server) . await ?;
52- anyhow:: Ok ( ( ) )
53- } )
50+ fn run_server ( server : iroh_net:: Endpoint ) -> AbortOnDropHandle < ( ) > {
51+ let connection = IrohNetListener :: new ( server) . unwrap ( ) ;
52+ let server = RpcServer :: new ( connection) ;
53+ ComputeService :: server ( server)
5454}
5555
5656// #[tokio::test(flavor = "multi_thread", worker_threads = 2)]
@@ -64,17 +64,12 @@ async fn iroh_net_channel_bench() -> anyhow::Result<()> {
6464 server_node_addr,
6565 } = Endpoints :: new ( ) . await ?;
6666 tracing:: debug!( "Starting server" ) ;
67- let server_handle = run_server ( server) ;
67+ let _server_handle = run_server ( server) ;
6868 tracing:: debug!( "Starting client" ) ;
6969
70- let client = RpcClient :: new ( transport:: iroh_net:: IrohNetConnector :: new (
71- client,
72- server_node_addr,
73- ALPN . into ( ) ,
74- ) ) ;
70+ let client = RpcClient :: new ( IrohNetConnector :: new ( client, server_node_addr, ALPN . into ( ) ) ) ;
7571 tracing:: debug!( "Starting benchmark" ) ;
7672 bench ( client, 50000 ) . await ?;
77- server_handle. abort ( ) ;
7873 Ok ( ( ) )
7974}
8075
@@ -86,11 +81,9 @@ async fn iroh_net_channel_smoke() -> anyhow::Result<()> {
8681 server,
8782 server_node_addr,
8883 } = Endpoints :: new ( ) . await ?;
89- let server_handle = run_server ( server) ;
90- let client_connection =
91- transport:: iroh_net:: IrohNetConnector :: new ( client, server_node_addr, ALPN . into ( ) ) ;
84+ let _server_handle = run_server ( server) ;
85+ let client_connection = IrohNetConnector :: new ( client, server_node_addr, ALPN . into ( ) ) ;
9286 smoke_test ( client_connection) . await ?;
93- server_handle. abort ( ) ;
9487 Ok ( ( ) )
9588}
9689
@@ -99,7 +92,7 @@ async fn iroh_net_channel_smoke() -> anyhow::Result<()> {
9992///
10093/// This is a regression test.
10194#[ tokio:: test]
102- async fn server_away_and_back ( ) -> anyhow :: Result < ( ) > {
95+ async fn server_away_and_back ( ) -> TestResult < ( ) > {
10396 tracing_subscriber:: fmt:: try_init ( ) . ok ( ) ;
10497 tracing:: info!( "Creating endpoints" ) ;
10598
@@ -128,7 +121,7 @@ async fn server_away_and_back() -> anyhow::Result<()> {
128121 // create the RPC Server
129122 let connection = transport:: iroh_net:: IrohNetListener :: new ( server_endpoint. clone ( ) ) ?;
130123 let server = RpcServer :: new ( connection) ;
131- let server_handle = tokio:: task :: spawn ( ComputeService :: server_bounded ( server, 1 ) ) ;
124+ let server_handle = tokio:: spawn ( ComputeService :: server_bounded ( server, 1 ) ) ;
132125
133126 // wait a bit for connection due to Windows test failing on CI
134127 tokio:: time:: sleep ( tokio:: time:: Duration :: from_millis ( 300 ) ) . await ;
@@ -151,7 +144,7 @@ async fn server_away_and_back() -> anyhow::Result<()> {
151144 // make the server run again
152145 let connection = transport:: iroh_net:: IrohNetListener :: new ( server_endpoint. clone ( ) ) ?;
153146 let server = RpcServer :: new ( connection) ;
154- let server_handle = tokio:: task :: spawn ( ComputeService :: server_bounded ( server, 5 ) ) ;
147+ let server_handle = tokio:: spawn ( ComputeService :: server_bounded ( server, 5 ) ) ;
155148
156149 // wait a bit for connection due to Windows test failing on CI
157150 tokio:: time:: sleep ( tokio:: time:: Duration :: from_millis ( 300 ) ) . await ;
@@ -163,7 +156,6 @@ async fn server_away_and_back() -> anyhow::Result<()> {
163156 // server is running, this should work
164157 let SqrResponse ( response) = client. rpc ( Sqr ( 3 ) ) . await ?;
165158 assert_eq ! ( response, 9 ) ;
166-
167159 server_handle. abort ( ) ;
168160 Ok ( ( ) )
169161}
0 commit comments