@@ -65,11 +65,12 @@ impl<M: TryToBytes + Debug + Sync + Send> DmqPublisherClient<M> for DmqPublisher
6565 . send_submit_tx ( dmq_message. into ( ) )
6666 . await
6767 . with_context ( || "Failed to submit DMQ message" ) ?;
68- let response = client. msg_submission ( ) . recv_submit_tx_response ( ) . await ? ;
68+ let response = client. msg_submission ( ) . recv_submit_tx_response ( ) . await ;
6969 if let Err ( e) = client. msg_submission ( ) . terminate_gracefully ( ) . await {
7070 error ! ( self . logger, "Failed to send Done" ; "error" => ?e) ;
71+ client. abort ( ) . await ;
7172 }
72- client . abort ( ) . await ;
73+ let response = response? ;
7374
7475 if response != Response :: Accepted {
7576 anyhow:: bail!( "Failed to publish DMQ message: {:?}" , response) ;
@@ -84,7 +85,8 @@ mod tests {
8485 use std:: { fs, sync:: Arc , time:: Duration } ;
8586
8687 use pallas_network:: miniprotocols:: {
87- localmsgsubmission:: DmqMsgValidationError , localtxsubmission,
88+ localmsgsubmission:: { DmqMsgRejectReason , DmqMsgValidationError } ,
89+ localtxsubmission,
8890 } ;
8991 use tokio:: { net:: UnixListener , task:: JoinHandle } ;
9092
@@ -102,14 +104,14 @@ mod tests {
102104 TempDir :: create_with_short_path ( "dmq_publisher" , folder_name)
103105 }
104106
105- fn setup_dmq_server ( socket_path : PathBuf , reply_success : bool ) -> JoinHandle < ( ) > {
107+ fn setup_dmq_server ( socket_path : PathBuf , reply_success : bool ) -> JoinHandle < StdResult < ( ) > > {
106108 tokio:: spawn ( {
107109 async move {
108110 // server setup
109111 if socket_path. exists ( ) {
110- fs:: remove_file ( socket_path. clone ( ) ) . unwrap ( ) ;
112+ fs:: remove_file ( socket_path. clone ( ) ) ? ;
111113 }
112- let listener = UnixListener :: bind ( socket_path) . unwrap ( ) ;
114+ let listener = UnixListener :: bind ( socket_path) ? ;
113115 let mut server = pallas_network:: facades:: DmqServer :: accept ( & listener, 0 )
114116 . await
115117 . unwrap ( ) ;
@@ -118,7 +120,7 @@ mod tests {
118120 let server_msg = server. msg_submission ( ) ;
119121
120122 // server waits for request from client and replies to it
121- let request = server_msg. recv_next_request ( ) . await . unwrap ( ) ;
123+ let request = server_msg. recv_next_request ( ) . await ? ;
122124 match & request {
123125 localtxsubmission:: Request :: Submit ( _) => ( ) ,
124126 request => panic ! ( "Expected a Submit request, but received: {request:?}" ) ,
@@ -127,14 +129,18 @@ mod tests {
127129 localtxsubmission:: Response :: Accepted
128130 } else {
129131 localtxsubmission:: Response :: Rejected ( DmqMsgValidationError (
130- "fake error" . to_string ( ) ,
132+ DmqMsgRejectReason :: Other ( "fake error" . to_string ( ) ) ,
131133 ) )
132134 } ;
133- server_msg. send_submit_tx_response ( response) . await . unwrap ( ) ;
135+ server_msg. send_submit_tx_response ( response) . await ? ;
134136
135137 // server receives done from client
136- let request = server_msg. recv_next_request ( ) . await . unwrap ( ) ;
137- assert_eq ! ( localtxsubmission:: Request :: Done , request) ;
138+ let request = server_msg. recv_next_request ( ) . await ?;
139+ if request != localtxsubmission:: Request :: Done {
140+ anyhow:: bail!( "Expected a Done request, but received: {request:?}" ) ;
141+ }
142+
143+ Ok ( ( ) )
138144 }
139145 } )
140146 }
@@ -173,9 +179,10 @@ mod tests {
173179 publisher. publish_message ( DmqMessageTestPayload :: dummy ( ) ) . await
174180 } ) ;
175181
176- let ( _ , res ) = tokio:: join!( server, client) ;
182+ let ( res_server , res_client ) = tokio:: join!( server, client) ;
177183
178- res. unwrap ( ) . unwrap ( ) ;
184+ res_server. unwrap ( ) . unwrap ( ) ;
185+ res_client. unwrap ( ) . unwrap ( ) ;
179186 }
180187
181188 #[ tokio:: test( flavor = "multi_thread" ) ]
@@ -211,8 +218,9 @@ mod tests {
211218 publisher. publish_message ( DmqMessageTestPayload :: dummy ( ) ) . await
212219 } ) ;
213220
214- let ( _ , res ) = tokio:: join!( server, client) ;
221+ let ( res_server , res_client ) = tokio:: join!( server, client) ;
215222
216- res. unwrap ( ) . expect_err ( "Publishing DMQ message should fail" ) ;
223+ res_server. unwrap ( ) . unwrap ( ) ;
224+ res_client. unwrap ( ) . expect_err ( "Publishing DMQ message should fail" ) ;
217225 }
218226}
0 commit comments