mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-04-01 13:20:30 +00:00
Access the test data mutex via accessor
Remove the use of extern and instead use an accessor to get the address of the test info mutex (defined only if MBEDTLS_TEST_MUTEX_USAGE is defined, to hopefully stop more general usage) Signed-off-by: Paul Elliott <paul.elliott@arm.com>
This commit is contained in:
parent
e2f6662021
commit
3d2db89d5c
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#if defined(MBEDTLS_THREADING_C) && defined(MBEDTLS_THREADING_PTHREAD) && \
|
#if defined(MBEDTLS_THREADING_C) && defined(MBEDTLS_THREADING_PTHREAD) && \
|
||||||
defined(MBEDTLS_TEST_HOOKS)
|
defined(MBEDTLS_TEST_HOOKS)
|
||||||
|
#include "mbedtls/threading.h"
|
||||||
#define MBEDTLS_TEST_MUTEX_USAGE
|
#define MBEDTLS_TEST_MUTEX_USAGE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -230,8 +231,21 @@ void mbedtls_test_set_step(unsigned long step);
|
|||||||
*/
|
*/
|
||||||
void mbedtls_test_info_reset(void);
|
void mbedtls_test_info_reset(void);
|
||||||
|
|
||||||
|
#ifdef MBEDTLS_TEST_MUTEX_USAGE
|
||||||
/**
|
/**
|
||||||
* \brief Record the current test case as a failure if two integers
|
* \brief Get the test info data mutex.
|
||||||
|
*
|
||||||
|
* \note This is designed only to be used by threading_helpers to avoid a
|
||||||
|
* deadlock, not for general access to this mutex.
|
||||||
|
*
|
||||||
|
* \return The test info data mutex.
|
||||||
|
*/
|
||||||
|
mbedtls_threading_mutex_t *mbedtls_test_get_info_mutex(void);
|
||||||
|
|
||||||
|
#endif /* MBEDTLS_TEST_MUTEX_USAGE */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Record the current test case as a failure if two integers
|
||||||
* have a different value.
|
* have a different value.
|
||||||
*
|
*
|
||||||
* This function is usually called via the macro
|
* This function is usually called via the macro
|
||||||
|
@ -288,7 +288,15 @@ void mbedtls_test_increment_case_uses_negative_0(void)
|
|||||||
#endif /* MBEDTLS_THREADING_C */
|
#endif /* MBEDTLS_THREADING_C */
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif /* MBEDTLS_BIGNUM_C */
|
||||||
|
|
||||||
|
#ifdef MBEDTLS_TEST_MUTEX_USAGE
|
||||||
|
mbedtls_threading_mutex_t *mbedtls_test_get_info_mutex(void)
|
||||||
|
{
|
||||||
|
return &mbedtls_test_info_mutex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* MBEDTLS_TEST_MUTEX_USAGE */
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------*/
|
||||||
/* Helper Functions */
|
/* Helper Functions */
|
||||||
|
@ -117,8 +117,6 @@ static void mbedtls_test_mutex_usage_error(mbedtls_threading_mutex_t *mutex,
|
|||||||
* mbedtls_test_mutex_usage_check() will mark it as failed. */
|
* mbedtls_test_mutex_usage_check() will mark it as failed. */
|
||||||
}
|
}
|
||||||
|
|
||||||
extern mbedtls_threading_mutex_t mbedtls_test_info_mutex;
|
|
||||||
|
|
||||||
static int mbedtls_test_mutex_can_test(mbedtls_threading_mutex_t *mutex)
|
static int mbedtls_test_mutex_can_test(mbedtls_threading_mutex_t *mutex)
|
||||||
{
|
{
|
||||||
/* If we attempt to run tests on this mutex then we are going to run into a
|
/* If we attempt to run tests on this mutex then we are going to run into a
|
||||||
@ -127,7 +125,7 @@ static int mbedtls_test_mutex_can_test(mbedtls_threading_mutex_t *mutex)
|
|||||||
* reporting that failure, as we already hold the mutex at that point.
|
* reporting that failure, as we already hold the mutex at that point.
|
||||||
* 2. Given the 'global' position of the initialization and free of this
|
* 2. Given the 'global' position of the initialization and free of this
|
||||||
* mutex, it will be shown as leaked on the first test run. */
|
* mutex, it will be shown as leaked on the first test run. */
|
||||||
if (mutex == &mbedtls_test_info_mutex) {
|
if (mutex == mbedtls_test_get_info_mutex()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user