From bb0e48f94f456e099ae58848537c22c87438ea9f Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Fri, 1 Dec 2023 18:05:19 +0000 Subject: [PATCH] Make number of threads a test argument Remove hard coded number of threads. Signed-off-by: Paul Elliott --- tests/suites/test_suite_ctr_drbg.data | 4 ++-- tests/suites/test_suite_ctr_drbg.function | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/suites/test_suite_ctr_drbg.data b/tests/suites/test_suite_ctr_drbg.data index 1cc51e302f..b519da8951 100644 --- a/tests/suites/test_suite_ctr_drbg.data +++ b/tests/suites/test_suite_ctr_drbg.data @@ -1098,11 +1098,11 @@ ctr_drbg_special_behaviours: CTR_DRBG Threads: no reseed depends_on:!MBEDTLS_CTR_DRBG_USE_128_BIT_KEY:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH:!MBEDTLS_ENTROPY_FORCE_SHA256:MBEDTLS_SHA512_C -ctr_drbg_threads:"1fafa98bc83d95e10f2d5ed339a553e1":0 +ctr_drbg_threads:"1fafa98bc83d95e10f2d5ed339a553e1":0:5 CTR_DRBG Threads: reseed depends_on:!MBEDTLS_CTR_DRBG_USE_128_BIT_KEY:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH:!MBEDTLS_ENTROPY_FORCE_SHA256:MBEDTLS_SHA512_C -ctr_drbg_threads:"B10A961F2EA39927B4C48AEDDD299026":1 +ctr_drbg_threads:"B10A961F2EA39927B4C48AEDDD299026":1:5 CTR_DRBG self test ctr_drbg_selftest: diff --git a/tests/suites/test_suite_ctr_drbg.function b/tests/suites/test_suite_ctr_drbg.function index 329c222cf9..a5a85a0eba 100644 --- a/tests/suites/test_suite_ctr_drbg.function +++ b/tests/suites/test_suite_ctr_drbg.function @@ -343,16 +343,17 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_THREADING_PTHREAD */ -void ctr_drbg_threads(data_t *expected_result, int reseed) +void ctr_drbg_threads(data_t *expected_result, int reseed, int arg_thread_count) { -#define THREAD_CNT 5 - pthread_t threads[THREAD_CNT]; + size_t thread_count = (size_t) arg_thread_count; + pthread_t *threads = NULL; unsigned char out[16]; unsigned char *entropy = NULL; - const size_t n_random_calls = THREAD_CNT * thread_random_reps + 1; + const size_t n_random_calls = thread_count * thread_random_reps + 1; + TEST_CALLOC(threads, sizeof(pthread_t) * thread_count); memset(out, 0, sizeof(out)); mbedtls_ctr_drbg_context ctx; @@ -380,14 +381,14 @@ void ctr_drbg_threads(data_t *expected_result, int reseed) mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_entropy_func, entropy, NULL, 0), 0); - for (size_t i = 0; i < THREAD_CNT; i++) { + for (size_t i = 0; i < thread_count; i++) { TEST_EQUAL( pthread_create(&threads[i], NULL, thread_random_function, (void *) &ctx), 0); } - for (size_t i = 0; i < THREAD_CNT; i++) { + for (size_t i = 0; i < thread_count; i++) { TEST_EQUAL(pthread_join(threads[i], NULL), 0); } @@ -399,8 +400,8 @@ void ctr_drbg_threads(data_t *expected_result, int reseed) exit: mbedtls_ctr_drbg_free(&ctx); mbedtls_free(entropy); + mbedtls_free(threads); } -#undef THREAD_CNT /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */