Files
luban-lite/bsp/peripheral/wireless/asr/certificate_test/case/test_timer.c
刘可亮 803cac77d5 V1.0.6
2024-09-03 11:16:08 +08:00

75 lines
1.8 KiB
C

#include "test_main.h"
static asr_semaphore_t g_sem;
static asr_timer_t g_timer;
static unsigned int g_var = 0;
#if (TEST_CONFIG_TIMER_ENABLED > 0)
static void timer_handler(void *arg)
{
TEST_PRINT("timer handler");
if(++g_var == 10) {
asr_rtos_set_semaphore(&g_sem);
}
}
CASE(asrosal_test_timer, asrosal_1_021)
{
OSStatus ret = -1;
g_var = 0;
asr_rtos_init_semaphore(&g_sem, 0);
ASSERT_NE(g_sem, NULL);
ret = asr_rtos_init_timer(&g_timer, 200, timer_handler, NULL);
ASSERT_EQ(ret, kNoErr);
asr_rtos_start_timer(&g_timer);
asr_rtos_get_semaphore(&g_sem, -1);
asr_rtos_deinit_semaphore(&g_sem);
ret = asr_rtos_deinit_timer(&g_timer);
ASSERT_EQ(ret, kNoErr);
}
CASE(asrosal_test_timer, asrosal_1_022)
{
OSStatus ret = kNoErr;
g_var = 0;
ret = asr_rtos_init_semaphore(&g_sem, 0);
ASSERT_EQ(ret, kNoErr);
ASSERT_NE(g_sem, NULL);
ret = asr_rtos_init_timer(&g_timer, 200, timer_handler, NULL);
ASSERT_EQ(ret, kNoErr);
asr_rtos_start_timer(&g_timer); // TODO: ?
asr_rtos_delay_milliseconds(1000);
asr_rtos_stop_timer(&g_timer);
TEST_PRINT("timer stopped!");
asr_rtos_delay_milliseconds(1000);
asr_rtos_update_timer(&g_timer, 1000);
TEST_PRINT("timer changed!");
asr_rtos_start_timer(&g_timer);
TEST_PRINT("timer started!");
asr_rtos_get_semaphore(&g_sem, -1);
asr_rtos_deinit_semaphore(&g_sem);
// stop and free
asr_rtos_stop_timer(&g_timer);
ret = asr_rtos_deinit_timer(&g_timer);
ASSERT_EQ(ret, kNoErr);
}
#endif /* TEST_CONFIG_TIMER_ENABLED */
/* timer test suite */
SUITE(asrosal_test_timer) = {
#if (TEST_CONFIG_TIMER_ENABLED > 0)
ADD_CASE(asrosal_test_timer, asrosal_1_021),
ADD_CASE(asrosal_test_timer, asrosal_1_022),
#endif
ADD_CASE_NULL
};