参考代码
This commit is contained in:
82
components/system/test/os_test.c
Executable file
82
components/system/test/os_test.c
Executable file
@@ -0,0 +1,82 @@
|
||||
#include "os_test.h"
|
||||
#include "sys_init.h"
|
||||
|
||||
Type_OS_TestMem_Def rm_Test; // 用于测试的内存
|
||||
os_work_t test_work_handle[10];
|
||||
os_fifo_t fifo_handle[10];
|
||||
os_queue_t queue_handle[10];
|
||||
os_pipe_t pipe_handle[10];
|
||||
|
||||
os_thread_t *os_test_create_thread(os_thread_t *thread_handle, void (*TaskRoute)(void *), char *name, s16_t Priority)
|
||||
{
|
||||
os_thread_create(thread_handle,
|
||||
name,
|
||||
TaskRoute,
|
||||
0,
|
||||
0x1000,
|
||||
Priority);
|
||||
|
||||
return thread_handle;
|
||||
}
|
||||
//
|
||||
|
||||
/* 具体测试 */
|
||||
extern void os_test_fifo(void);
|
||||
extern void os_test_queue(void);
|
||||
extern void os_test_pipe(void);
|
||||
extern void os_test_yield(uint TestTime);
|
||||
extern void os_test_sem(uint TestTime);
|
||||
extern void os_test_sleep(uint TestTime);
|
||||
|
||||
typedef void (*test_single_t)(void);
|
||||
typedef void (*test_con_t)(uint TestTime);
|
||||
|
||||
static test_con_t const test_tab_rt[] = {
|
||||
os_test_yield,
|
||||
os_test_sem,
|
||||
os_test_sleep,
|
||||
};
|
||||
|
||||
static test_single_t const test_tab_ipc[] = {
|
||||
os_test_fifo,
|
||||
os_test_queue,
|
||||
os_test_pipe,
|
||||
};
|
||||
|
||||
INIT_EXPORT_APP(99)
|
||||
{
|
||||
SYS_LOG_INF("success");
|
||||
os_thread_sleep(200);
|
||||
}
|
||||
|
||||
void os_test_main(void)
|
||||
{
|
||||
rand(); // rand() 用到 malloc()
|
||||
CONS_PRINT("\r\n"); // printf() 用到 _malloc_r()
|
||||
|
||||
SYS_LOG_INF("测试准备中 ... \r\n");
|
||||
|
||||
CONS_PRINT("开始测试...\r\n\r\n");
|
||||
|
||||
for (uint i = 0; i < sizeof(test_tab_rt) / sizeof(test_tab_rt[0]); i++)
|
||||
{
|
||||
test_tab_rt[i](1);
|
||||
CONS_PRINT("\r\n");
|
||||
}
|
||||
|
||||
for (uint i = 0; i < sizeof(test_tab_ipc) / sizeof(test_tab_ipc[0]); i++)
|
||||
{
|
||||
test_tab_ipc[i]();
|
||||
}
|
||||
|
||||
for (uint n = 0; n < sizeof(test_work_handle) / sizeof(test_work_handle[0]); n++)
|
||||
{
|
||||
if (os_work_is_valid(&test_work_handle[n]))
|
||||
{
|
||||
os_work_delete(&test_work_handle[n]);
|
||||
}
|
||||
}
|
||||
|
||||
CONS_PRINT("所有测试结束\r\n");
|
||||
CONS_PRINT("============================\r\n");
|
||||
}
|
||||
Reference in New Issue
Block a user