summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/utest/mutex_pi_tc.c31
-rw-r--r--src/utest/mutex_tc.c31
2 files changed, 62 insertions, 0 deletions
diff --git a/src/utest/mutex_pi_tc.c b/src/utest/mutex_pi_tc.c
index 7615fdbc19..a854df7ce0 100644
--- a/src/utest/mutex_pi_tc.c
+++ b/src/utest/mutex_pi_tc.c
@@ -6,6 +6,37 @@
* Change Logs:
* Date Author Notes
*/
+
+/**
+ * Test Case Name: RT-Thread Mutex Priority Inheritance & Timeout Behavior Test
+ * Test Objectives:
+ * - Verify RT-Thread mutex behavior under priority inheritance (PI)
+ * - Validate timeout, wake-up, chained mutex dependency, and recursive PI updates
+ * - Test APIs: rt_mutex_init/detach, rt_mutex_take/trytake/release,
+ * rt_thread_create/startup, rt_thread_resume, rt_timer usage
+ * Test Scenarios:
+ * - Multiple threads contending for shared mutexes with different priorities
+ * - Main thread holding chained mutexes to trigger multi-level PI updates
+ * - Mutex timeout behavior (RT_ETIMEOUT) with concurrent holder priority changes
+ * - Wake-up of a waiting high-priority thread via external resume event
+ * - Recursive dependency chain causing full-chain PI propagation and restoration
+ * Verification Metrics:
+ * - Correct return codes (RT_EOK, -RT_ETIMEOUT, -RT_EINTR)
+ * - Correct priority inheritance and rollback to init_priority
+ * - Expected thread scheduling order and priority transitions
+ * - All synchronization flags increment to expected values
+ * Dependencies:
+ * - RT-Thread kernel with mutex and IPC components enabled
+ * - Preemptive scheduler with priority-based dispatching
+ * - System tick timer accuracy for delay/timeout verification
+ * - Sufficient thread stack size for multi-thread test
+ * Expected Results:
+ * - PI activates and restores correctly across simple and recursive mutex chains
+ * - Timeout and wake-up tests return expected error codes
+ * - All test units complete successfully with correct thread priorities
+ * - Console/log confirms all UTEST cases pass
+ */
+
#define __RT_IPC_SOURCE__
#include <rtthread.h>
diff --git a/src/utest/mutex_tc.c b/src/utest/mutex_tc.c
index ef1fa0a8e2..514ded6300 100644
--- a/src/utest/mutex_tc.c
+++ b/src/utest/mutex_tc.c
@@ -8,6 +8,37 @@
* 2021-09.01 luckyzjq the first version
* 2023-09-15 xqyjlj change stack size in cpu64
*/
+
+/**
+ * Test Case Name: RT-Thread Mutex Functional and Scheduling Validation
+ * Test Objectives:
+ * - Verify correctness of static and dynamic mutex operations
+ * - Validate priority inheritance, recursive locking, timeout handling, and error cases
+ * - Test core mutex APIs: rt_mutex_init/detach, rt_mutex_create/delete,
+ * rt_mutex_take/trytake/release, and related thread scheduling functions
+ * Test Scenarios:
+ * - Mutex acquisition under contention with multi-thread scheduling
+ * - Try-take on locked mutex, timeout-based take, recursive take sequence
+ * - Priority inheritance when high-priority threads are blocked by lower-priority holders
+ * - Behavior differences between static and dynamic mutexes
+ * - Mutex release error handling, invalid release, and cleanup
+ * Verification Metrics:
+ * - Correct return codes for all mutex operations (RT_EOK, timeouts, error states)
+ * - Proper priority inheritance and restoration during contention
+ * - Expected thread wake-up and state transition behavior
+ * - Successful thread synchronization via _sync_flag
+ * Dependencies:
+ * - RT-Thread kernel with IPC and mutex support enabled
+ * - Heap availability when testing dynamic mutex creation
+ * - Scheduler operating normally with multi-thread preemption
+ * - Accurate system tick for timeout and delay validation
+ * Expected Results:
+ * - All mutex APIs behave according to RT-Thread specifications
+ * - Static and dynamic mutex tests complete successfully
+ * - Priority inversion resolved via priority inheritance
+ * - Console/log output indicates all UTEST cases pass
+ */
+
#define __RT_IPC_SOURCE__
#include <rtthread.h>