From c70b4a99c99ba60f7097b771f069174480dfaafd Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 23 Sep 2021 15:55:28 +0200 Subject: [PATCH] Remove non-determinism from `zrpc::tests::peer::test_io_error` --- zrpc/src/peer.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/zrpc/src/peer.rs b/zrpc/src/peer.rs index eeda034e9581ce215ee01821cff3e82bab70ed25..d101ed0ca4a724d665c4ddff122bd0434d0a210f 100644 --- a/zrpc/src/peer.rs +++ b/zrpc/src/peer.rs @@ -520,8 +520,7 @@ mod tests { #[test] fn test_io_error() { smol::block_on(async move { - let (client_conn, server_conn, _) = Connection::in_memory(); - drop(server_conn); + let (client_conn, mut server_conn, _) = Connection::in_memory(); let client = Peer::new(); let (connection_id, io_handler, mut incoming) = @@ -529,11 +528,14 @@ mod tests { smol::spawn(io_handler).detach(); smol::spawn(async move { incoming.next().await }).detach(); - let err = client - .request(connection_id, proto::Ping {}) - .await - .unwrap_err(); - assert_eq!(err.to_string(), "connection was closed"); + let response = smol::spawn(client.request(connection_id, proto::Ping {})); + let _request = server_conn.rx.next().await.unwrap().unwrap(); + + drop(server_conn); + assert_eq!( + response.await.unwrap_err().to_string(), + "connection was closed" + ); }); } }