aboutsummaryrefslogtreecommitdiff
path: root/test/context_internal_test.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-02-20 08:21:02 +0100
committerRichard Levitte <levitte@openssl.org>2019-02-20 18:48:49 +0100
commit0b76ce99aaa5678b44cb99df464e977975747928 (patch)
treec738783fb10fbe885b94911e84fffb0bb99f2b4e /test/context_internal_test.c
parent7dec815ecde29c1eabed6b5832c7025c4eafad19 (diff)
downloadopenssl-0b76ce99aaa5678b44cb99df464e977975747928.zip
openssl-0b76ce99aaa5678b44cb99df464e977975747928.tar.gz
openssl-0b76ce99aaa5678b44cb99df464e977975747928.tar.bz2
test/context_internal_test.c: don't initialize as a separate test
Because test order can be randomized, running foo_init() as a separate test is unsafe practice. Instead, we make it possible to call it multiple times, and call it at the start of each separate test. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8288)
Diffstat (limited to 'test/context_internal_test.c')
-rw-r--r--test/context_internal_test.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/test/context_internal_test.c b/test/context_internal_test.c
index 7052de2..aca3db3 100644
--- a/test/context_internal_test.c
+++ b/test/context_internal_test.c
@@ -46,8 +46,10 @@ static const OPENSSL_CTX_METHOD foo_method = {
foo_free
};
-static int foo_init(void) {
- foo_index = openssl_ctx_new_index(&foo_method);
+static int foo_init(void)
+{
+ if (foo_index == -1)
+ foo_index = openssl_ctx_new_index(&foo_method);
return foo_index != -1;
}
@@ -61,15 +63,20 @@ static int test_context(OPENSSL_CTX *ctx)
{
FOO *data = NULL;
- return (TEST_ptr(data = openssl_ctx_get_data(ctx, foo_index))
- /* OPENSSL_zalloc in foo_new() initialized it to zero */
- && TEST_int_eq(data->i, 42));
+ return
+ TEST_true(foo_init())
+ && TEST_ptr(data = openssl_ctx_get_data(ctx, foo_index))
+ /* OPENSSL_zalloc in foo_new() initialized it to zero */
+ && TEST_int_eq(data->i, 42);
}
static int test_app_context(void)
{
OPENSSL_CTX *ctx = NULL;
- int result = (TEST_ptr(ctx = OPENSSL_CTX_new()) && test_context(ctx));
+ int result =
+ TEST_true(foo_init())
+ && TEST_ptr(ctx = OPENSSL_CTX_new())
+ && test_context(ctx);
OPENSSL_CTX_free(ctx);
return result;
@@ -82,7 +89,6 @@ static int test_def_context(void)
int setup_tests(void)
{
- ADD_TEST(foo_init);
ADD_TEST(test_app_context);
ADD_TEST(test_def_context);
return 1;