Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions examples/utest/testcases/mm/mm_lwp_tc.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,42 @@
* Change Logs:
* Date Author Notes
* 2023-03-27 WangXiaoyao testcase for lwp
* 2025-12-14 ChuanN-sudo Add standardized utest documentation block
*/

/**
* Test Case Name: MM API lwp Test
*
* Test Objectives:
* - Verify LWP user space virtual area mapping functionality.
* - Test user memory accessibility checking mechanisms.
* - Test core APIs: lwp_create(), lwp_user_space_init(), lwp_map_user_varea(),
* lwp_map_user_varea_ext(), lwp_user_accessible_ext(), lwp_ref_dec()
*
* Test Scenarios:
* - User Map Varea Test (user_map_varea_tc):
* - test_user_map_varea(): Creates LWP, initializes user space, maps virtual area with default flags, verifies varea properties (cached, private mapping).
* - test_user_map_varea_ext(): Creates LWP, maps virtual area with NOCACHE flag, verifies uncached memory attributes.
* - Accessible Test (accessible_tc):
* - test_user_accessible(): Creates LWP with user stack, tests accessibility checks for unmapped and mapped memory regions.
*
* Verification Metrics:
* - Virtual areas should be correctly inserted with proper ordering.
* - Default mapping should have cached attributes (MMU_MAP_U_RWCB).
* - NOCACHE mapping should have uncached attributes (MMU_MAP_U_RW).
* - Virtual addresses should be within user space range.
* - Accessibility check should return false for unmapped memory, true for mapped memory.
*
* Dependencies:
* - Hardware requirements: QEMU emulator or any hardware platform that supports RT-Thread with MMU.
* - Software configuration:
* - RT_UTEST_MM_LWP must be enabled (enable via: RT-Thread Utestcases -> RT-Thread Utestcases -> Memory Management Subsystem Testcase -> Enable Utest for MM API in lwp).
* - RT_USING_SMART must be enabled (enable via: Enable RT-Thread Kernel -> RT-Thread Smart (microkernel on kernel/userland)).
* - Environmental Assumptions: MMU support must be available on the target platform.
*
* Expected Results:
* - Final output: "[ PASSED ] [ result ] testcase (testcases.lwp.mm_tc)"
* - No assertion failures during test execution.
*/

#include "common.h"
Expand Down