mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-05-19 12:59:40 +00:00
Add a read_ahead test
This test checks that read_ahead works correctly when dealing with large records. Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 7856332e8c14fd1da1811a9d0afde243dd0f4669)
This commit is contained in:
parent
0f6c9d73cb
commit
3f99bfed67
@ -33,7 +33,7 @@ static X509 *ocspcert = NULL;
|
|||||||
#define NUM_EXTRA_CERTS 40
|
#define NUM_EXTRA_CERTS 40
|
||||||
|
|
||||||
static int execute_test_large_message(const SSL_METHOD *smeth,
|
static int execute_test_large_message(const SSL_METHOD *smeth,
|
||||||
const SSL_METHOD *cmeth)
|
const SSL_METHOD *cmeth, int read_ahead)
|
||||||
{
|
{
|
||||||
SSL_CTX *cctx = NULL, *sctx = NULL;
|
SSL_CTX *cctx = NULL, *sctx = NULL;
|
||||||
SSL *clientssl = NULL, *serverssl = NULL;
|
SSL *clientssl = NULL, *serverssl = NULL;
|
||||||
@ -61,6 +61,14 @@ static int execute_test_large_message(const SSL_METHOD *smeth,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(read_ahead) {
|
||||||
|
/*
|
||||||
|
* Test that read_ahead works correctly when dealing with large
|
||||||
|
* records
|
||||||
|
*/
|
||||||
|
SSL_CTX_set_read_ahead(cctx, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We assume the supplied certificate is big enough so that if we add
|
* We assume the supplied certificate is big enough so that if we add
|
||||||
* NUM_EXTRA_CERTS it will make the overall message large enough. The
|
* NUM_EXTRA_CERTS it will make the overall message large enough. The
|
||||||
@ -107,14 +115,25 @@ static int execute_test_large_message(const SSL_METHOD *smeth,
|
|||||||
|
|
||||||
static int test_large_message_tls(void)
|
static int test_large_message_tls(void)
|
||||||
{
|
{
|
||||||
return execute_test_large_message(TLS_server_method(), TLS_client_method());
|
return execute_test_large_message(TLS_server_method(), TLS_client_method(),
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int test_large_message_tls_read_ahead(void)
|
||||||
|
{
|
||||||
|
return execute_test_large_message(TLS_server_method(), TLS_client_method(),
|
||||||
|
1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DTLS
|
#ifndef OPENSSL_NO_DTLS
|
||||||
static int test_large_message_dtls(void)
|
static int test_large_message_dtls(void)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* read_ahead is not relevant to DTLS because DTLS always acts as if
|
||||||
|
* read_ahead is set.
|
||||||
|
*/
|
||||||
return execute_test_large_message(DTLS_server_method(),
|
return execute_test_large_message(DTLS_server_method(),
|
||||||
DTLS_client_method());
|
DTLS_client_method(), 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -867,6 +886,7 @@ int main(int argc, char *argv[])
|
|||||||
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
|
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
|
||||||
|
|
||||||
ADD_TEST(test_large_message_tls);
|
ADD_TEST(test_large_message_tls);
|
||||||
|
ADD_TEST(test_large_message_tls_read_ahead);
|
||||||
#ifndef OPENSSL_NO_DTLS
|
#ifndef OPENSSL_NO_DTLS
|
||||||
ADD_TEST(test_large_message_dtls);
|
ADD_TEST(test_large_message_dtls);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user