@@ -110,7 +110,7 @@ struct GenericService<F> {
110110}
111111impl < F > Service < tonic:: codegen:: http:: Request < Body > > for GenericService < F >
112112where
113- F : FnMut ( ) -> Response < Body > ,
113+ F : FnMut ( ) -> BoxFuture < ' static , Response < Body > > ,
114114{
115115 type Response = Response < Body > ;
116116 type Error = Infallible ;
@@ -133,7 +133,7 @@ where
133133 )
134134 . unwrap ( ) ;
135135 let r = ( self . response_maker ) ( ) ;
136- async move { Ok ( r) } . boxed ( )
136+ async move { Ok ( r. await ) } . boxed ( )
137137 }
138138}
139139impl < F > NamedService for GenericService < F > {
@@ -144,12 +144,12 @@ struct FakeServer {
144144 addr : std:: net:: SocketAddr ,
145145 shutdown_tx : oneshot:: Sender < ( ) > ,
146146 header_rx : tokio:: sync:: mpsc:: UnboundedReceiver < String > ,
147- server_handle : tokio:: task:: JoinHandle < ( ) > ,
147+ pub server_handle : tokio:: task:: JoinHandle < ( ) > ,
148148}
149149
150150async fn fake_server < F > ( response_maker : F ) -> FakeServer
151151where
152- F : FnMut ( ) -> Response < Body > + Clone + Send + Sync + ' static ,
152+ F : FnMut ( ) -> BoxFuture < ' static , Response < Body > > + Clone + Send + Sync + ' static ,
153153{
154154 let ( shutdown_tx, shutdown_rx) = oneshot:: channel :: < ( ) > ( ) ;
155155 let ( header_tx, header_rx) = tokio:: sync:: mpsc:: unbounded_channel ( ) ;
@@ -191,7 +191,7 @@ impl FakeServer {
191191
192192#[ tokio:: test]
193193async fn timeouts_respected_one_call_fake_server ( ) {
194- let mut fs = fake_server ( || Response :: new ( Body :: empty ( ) ) ) . await ;
194+ let mut fs = fake_server ( || async { Response :: new ( Body :: empty ( ) ) } . boxed ( ) ) . await ;
195195 let header_rx = & mut fs. header_rx ;
196196
197197 let mut opts = get_integ_server_options ( ) ;
@@ -260,7 +260,11 @@ async fn non_retryable_errors() {
260260 Code :: Unauthenticated ,
261261 Code :: Unimplemented ,
262262 ] {
263- let mut fs = fake_server ( move || Status :: new ( code, "bla" ) . into_http ( ) ) . await ;
263+ let mut fs = fake_server ( move || {
264+ let s = Status :: new ( code, "bla" ) . into_http ( ) ;
265+ async { s } . boxed ( )
266+ } )
267+ . await ;
264268
265269 let mut opts = get_integ_server_options ( ) ;
266270 let uri = format ! ( "http://localhost:{}" , fs. addr. port( ) )
@@ -292,13 +296,13 @@ async fn retryable_errors() {
292296 {
293297 let count = Arc :: new ( AtomicUsize :: new ( 0 ) ) ;
294298 let mut fs = fake_server ( move || {
295- dbg ! ( "Making resp" ) ;
296299 let prev = count. fetch_add ( 1 , Ordering :: Relaxed ) ;
297- if prev < 3 {
300+ let r = if prev < 3 {
298301 Status :: new ( code, "bla" ) . into_http ( )
299302 } else {
300303 make_ok_response ( RespondActivityTaskCanceledResponse :: default ( ) )
301- }
304+ } ;
305+ async { r } . boxed ( )
302306 } )
303307 . await ;
304308
@@ -335,7 +339,7 @@ async fn namespace_header_attached_to_relevant_calls() {
335339 . add_service ( GenericService {
336340 header_to_parse : "Temporal-Namespace" ,
337341 header_tx,
338- response_maker : || Response :: new ( Body :: empty ( ) ) ,
342+ response_maker : || async { Response :: new ( Body :: empty ( ) ) } . boxed ( ) ,
339343 } )
340344 . serve_with_incoming_shutdown (
341345 tokio_stream:: wrappers:: TcpListenerStream :: new ( listener) ,
0 commit comments