tree 90b6f05b16714ebe22c550fea245ba6d2fb495c9
parent 4880672a9b41a09a0984b55e219f02a2de7ab75e
author Matt Caswell <matt@openssl.org> 1477572417 +0100
committer Matt Caswell <matt@openssl.org> 1477642429 +0100

Add a test for BIO_read() returning 0 in SSL_read() (and also for write)

A BIO_read() 0 return indicates that a failure occurred that may be
retryable. An SSL_read() 0 return indicates a non-retryable failure. Check
that if BIO_read() returns 0, SSL_read() returns <0. Same for SSL_write().

The asyncio test filter BIO already returns 0 on a retryable failure so we
build on that.

Reviewed-by: Richard Levitte <levitte@openssl.org>
