diff options
Diffstat (limited to 'tests/support/mod.rs')
| -rw-r--r-- | tests/support/mod.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tests/support/mod.rs b/tests/support/mod.rs index f4ccebe8..cc29afe9 100644 --- a/tests/support/mod.rs +++ b/tests/support/mod.rs @@ -444,9 +444,13 @@ pub fn wait_for_message_variants( timeout: Duration, variants: &[u32], ) -> Result<bool, String> { - stream - .set_read_timeout(Some(Duration::from_millis(200))) - .map_err(|e| e.to_string())?; + let read_timeout = Some(Duration::from_millis(200)); + // Darwin can reject resetting the timeout after peer closure with queued data. + if stream.read_timeout().map_err(|e| e.to_string())? != read_timeout { + stream + .set_read_timeout(read_timeout) + .map_err(|e| e.to_string())?; + } let deadline = Instant::now() + timeout; while Instant::now() < deadline { match read_server_message(stream) { |
