Converted the bio_enc tests to use new test framework.
[openssl.git] / test / ssltestlib.c
index 8a4dd49d5c7eff624ef76029c1b56fab0fdd9260..6fce12e0fc72faa2d9f8fb77ccbd33c2a12570e3 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <string.h>
 
+#include "e_os.h"
 #include "ssltestlib.h"
 
 static int tls_dump_new(BIO *bi);
@@ -641,7 +642,7 @@ int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,
     return 0;
 }
 
-int create_ssl_connection(SSL *serverssl, SSL *clientssl)
+int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want)
 {
     int retc = -1, rets = -1, err, abortctr = 0;
     int clienterr = 0, servererr = 0;
@@ -660,6 +661,8 @@ int create_ssl_connection(SSL *serverssl, SSL *clientssl)
             printf("SSL_connect() failed %d, %d\n", retc, err);
             clienterr = 1;
         }
+        if (want != SSL_ERROR_NONE && err == want)
+            return 0;
 
         err = SSL_ERROR_WANT_WRITE;
         while (!servererr && rets <= 0 && err == SSL_ERROR_WANT_WRITE) {
@@ -672,6 +675,8 @@ int create_ssl_connection(SSL *serverssl, SSL *clientssl)
             printf("SSL_accept() failed %d, %d\n", rets, err);
             servererr = 1;
         }
+        if (want != SSL_ERROR_NONE && err == want)
+            return 0;
         if (clienterr && servererr)
             return 0;
         if (++abortctr == MAXLOOPS) {