Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
test_mutex_apis.c File Reference
#include <zephyr/ztest.h>

Macros

#define TIMEOUT   500
 
#define STACK_SIZE   (512 + CONFIG_TEST_EXTRA_STACK_SIZE)
 
#define THREAD_HIGH_PRIORITY   1
 
#define THREAD_MID_PRIORITY   3
 
#define THREAD_LOW_PRIORITY   5
 

Functions

 K_MUTEX_DEFINE (kmutex)
 TESTPOINT: init via K_MUTEX_DEFINE.
 
static K_THREAD_STACK_DEFINE (tstack,(512+CONFIG_TEST_EXTRA_STACK_SIZE))
 
static K_THREAD_STACK_DEFINE (tstack2,(512+CONFIG_TEST_EXTRA_STACK_SIZE))
 
static K_THREAD_STACK_DEFINE (tstack3,(512+CONFIG_TEST_EXTRA_STACK_SIZE))
 
static void tThread_entry_lock_forever (void *p1, void *p2, void *p3)
 
static void tThread_entry_lock_no_wait (void *p1, void *p2, void *p3)
 
static void tThread_entry_lock_timeout_fail (void *p1, void *p2, void *p3)
 
static void tThread_entry_lock_timeout_pass (void *p1, void *p2, void *p3)
 
static void tmutex_test_lock (struct k_mutex *pmutex, void(*entry_fn)(void *, void *, void *))
 
static void tmutex_test_lock_timeout (struct k_mutex *pmutex, void(*entry_fn)(void *, void *, void *))
 
static void tmutex_test_lock_unlock (struct k_mutex *pmutex)
 
static void tThread_T1_priority_inheritance (void *p1, void *p2, void *p3)
 
static void tThread_T2_priority_inheritance (void *p1, void *p2, void *p3)
 
static void tThread_lock_with_time_period (void *p1, void *p2, void *p3)
 
static void tThread_waiter (void *p1, void *p2, void *p3)
 
void test_mutex_reent_lock_forever (void)
 
void test_mutex_reent_lock_no_wait (void)
 
void test_mutex_reent_lock_timeout_fail (void)
 
void test_mutex_reent_lock_timeout_pass (void)
 
void test_mutex_lock_unlock (void)
 
void test_mutex_recursive (void)
 Test recursive mutex.
 
void test_mutex_priority_inheritance (void)
 Test mutex's priority inheritance mechanism.
 
static void tThread_mutex_lock_should_fail (void *p1, void *p2, void *p3)
 
void test_mutex_timeout_race_during_priority_inversion (void)
 Test fix for subtle race during priority inversion.
 
static void * mutex_api_tests_setup (void)
 
 ZTEST_SUITE (mutex_api, NULL, mutex_api_tests_setup, NULL, NULL, NULL)
 
 ZTEST_SUITE (mutex_api_1cpu, NULL, mutex_api_tests_setup, ztest_simple_1cpu_before, ztest_simple_1cpu_after, NULL)
 

Variables

static ZTEST_DMEM int case_type
 
static ZTEST_DMEM int thread_ret = TC_FAIL
 
static struct k_mutex tmutex
 
static struct k_thread tdata
 
static struct k_thread tdata2
 
static struct k_thread tdata3
 

Macro Definition Documentation

◆ STACK_SIZE

#define STACK_SIZE   (512 + CONFIG_TEST_EXTRA_STACK_SIZE)

◆ THREAD_HIGH_PRIORITY

#define THREAD_HIGH_PRIORITY   1

◆ THREAD_LOW_PRIORITY

#define THREAD_LOW_PRIORITY   5

◆ THREAD_MID_PRIORITY

#define THREAD_MID_PRIORITY   3

◆ TIMEOUT

#define TIMEOUT   500

Function Documentation

◆ K_MUTEX_DEFINE()

K_MUTEX_DEFINE ( kmutex )

TESTPOINT: init via K_MUTEX_DEFINE.

◆ K_THREAD_STACK_DEFINE() [1/3]

static K_THREAD_STACK_DEFINE ( tstack ,
(512+CONFIG_TEST_EXTRA_STACK_SIZE)  )
static

◆ K_THREAD_STACK_DEFINE() [2/3]

static K_THREAD_STACK_DEFINE ( tstack2 ,
(512+CONFIG_TEST_EXTRA_STACK_SIZE)  )
static

◆ K_THREAD_STACK_DEFINE() [3/3]

static K_THREAD_STACK_DEFINE ( tstack3 ,
(512+CONFIG_TEST_EXTRA_STACK_SIZE)  )
static

◆ mutex_api_tests_setup()

static void * mutex_api_tests_setup ( void )
static

◆ test_mutex_lock_unlock()

void test_mutex_lock_unlock ( void )

TESTPOINT: test k_mutex_init mutex

TESTPOINT: test K_MUTEX_DEFINE mutex

◆ test_mutex_reent_lock_forever()

void test_mutex_reent_lock_forever ( void )

TESTPOINT: test k_mutex_init mutex

TESTPOINT: test K_MUTEX_DEFINE mutex

◆ test_mutex_reent_lock_no_wait()

void test_mutex_reent_lock_no_wait ( void )

TESTPOINT: test k_mutex_init mutex

TESTPOINT: test K_MUTEX_DEFINE mutex

◆ test_mutex_reent_lock_timeout_fail()

void test_mutex_reent_lock_timeout_fail ( void )

TESTPOINT: test k_mutex_init mutex

TESTPOINT: test K_MUTEX_DEFINE mutex

◆ test_mutex_reent_lock_timeout_pass()

void test_mutex_reent_lock_timeout_pass ( void )

TESTPOINT: test k_mutex_init mutex

TESTPOINT: test K_MUTEX_DEFINE mutex

◆ tmutex_test_lock()

static void tmutex_test_lock ( struct k_mutex * pmutex,
void(* entry_fn )(void *, void *, void *) )
static

◆ tmutex_test_lock_timeout()

static void tmutex_test_lock_timeout ( struct k_mutex * pmutex,
void(* entry_fn )(void *, void *, void *) )
static

TESTPOINT: test k_mutex_init mutex

◆ tmutex_test_lock_unlock()

static void tmutex_test_lock_unlock ( struct k_mutex * pmutex)
static

◆ tThread_entry_lock_forever()

static void tThread_entry_lock_forever ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_entry_lock_no_wait()

static void tThread_entry_lock_no_wait ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_entry_lock_timeout_fail()

static void tThread_entry_lock_timeout_fail ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_entry_lock_timeout_pass()

static void tThread_entry_lock_timeout_pass ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_lock_with_time_period()

static void tThread_lock_with_time_period ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_mutex_lock_should_fail()

static void tThread_mutex_lock_should_fail ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_T1_priority_inheritance()

static void tThread_T1_priority_inheritance ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_T2_priority_inheritance()

static void tThread_T2_priority_inheritance ( void * p1,
void * p2,
void * p3 )
static

◆ tThread_waiter()

static void tThread_waiter ( void * p1,
void * p2,
void * p3 )
static

◆ ZTEST_SUITE() [1/2]

ZTEST_SUITE ( mutex_api ,
NULL ,
mutex_api_tests_setup ,
NULL ,
NULL ,
NULL  )

◆ ZTEST_SUITE() [2/2]

Variable Documentation

◆ case_type

ZTEST_DMEM int case_type
static

◆ tdata

struct k_thread tdata
static

◆ tdata2

struct k_thread tdata2
static

◆ tdata3

struct k_thread tdata3
static

◆ thread_ret

ZTEST_DMEM int thread_ret = TC_FAIL
static

◆ tmutex

struct k_mutex tmutex
static