Let test handshakes stop on certain errors
authorBenjamin Kaduk <bkaduk@akamai.com>
Mon, 13 Feb 2017 21:10:54 +0000 (15:10 -0600)
committerRichard Levitte <levitte@openssl.org>
Thu, 23 Feb 2017 18:40:27 +0000 (19:40 +0100)
commit8e2236eff8e38109a57347c8ad795040b380c936
tree22f926a2a915e28f23f673d75e342aa829093d65
parent694c9180d7f082b896692048052413fc5dc4e467
Let test handshakes stop on certain errors

Certain callback APIs allow the callback to request async processing
by trickling a particular error value up the stack to the application
as an error return from the handshake function.  In those cases,
SSL_want() returns a code specific to the type of async processing
needed.

The create_ssl_connection() helper function for the tests is very
helpful for several things, including creating API tests.  However,
it does not currently let us test the async processing functionality
of these callback interfaces, because the special SSL error codes
are treated as generic errors and the helper continues to loop until
it reaches its maximum iteration count.

Add a new parameter, 'want', that indicates an expected/desired
special SSL error code, so that the helper will terminate when
either side reports that error, giving control back to the calling
function and allowing the test to proceed.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2279)
test/asynciotest.c
test/dtls_mtu_test.c
test/dtlstest.c
test/sslapitest.c
test/sslcorrupttest.c
test/ssltestlib.c
test/ssltestlib.h