Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos M
提交
b9830c61
K
Kernel Liteos M
项目概览
OpenHarmony
/
Kernel Liteos M
10 个月 前同步成功
通知
20
Star
28
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos M
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
b9830c61
编写于
2月 15, 2022
作者:
O
openharmony_ci
提交者:
Gitee
2月 15, 2022
浏览文件
操作
浏览文件
下载
差异文件
!592 【liteos_m】kernel接口融合修改
Merge pull request !592 from LiteOS/master
上级
ffd228cd
cee9714a
变更
48
隐藏空白更改
内联
并排
Showing
48 changed file
with
1306 addition
and
88 deletion
+1306
-88
arch/arm/cortex-m55/gcc/NTZ/los_timer.c
arch/arm/cortex-m55/gcc/NTZ/los_timer.c
+1
-1
arch/csky/v2/gcc/los_interrupt.c
arch/csky/v2/gcc/los_interrupt.c
+1
-3
arch/include/los_interrupt.h
arch/include/los_interrupt.h
+9
-0
kal/posix/src/pthread_mutex.c
kal/posix/src/pthread_mutex.c
+3
-3
kernel/include/los_mux.h
kernel/include/los_mux.h
+3
-3
kernel/include/los_queue.h
kernel/include/los_queue.h
+12
-2
kernel/include/los_task.h
kernel/include/los_task.h
+2
-19
kernel/include/los_tick.h
kernel/include/los_tick.h
+61
-0
kernel/src/los_mux.c
kernel/src/los_mux.c
+6
-1
kernel/src/los_queue.c
kernel/src/los_queue.c
+7
-3
kernel/src/los_task.c
kernel/src/los_task.c
+2
-14
kernel/src/los_tick.c
kernel/src/los_tick.c
+56
-0
kernel/src/mm/los_memory.c
kernel/src/mm/los_memory.c
+8
-8
testsuites/sample/kernel/hwi/BUILD.gn
testsuites/sample/kernel/hwi/BUILD.gn
+5
-0
testsuites/sample/kernel/hwi/It_los_hwi.c
testsuites/sample/kernel/hwi/It_los_hwi.c
+5
-0
testsuites/sample/kernel/hwi/it_los_hwi.h
testsuites/sample/kernel/hwi/it_los_hwi.h
+6
-0
testsuites/sample/kernel/hwi/it_los_hwi_036.c
testsuites/sample/kernel/hwi/it_los_hwi_036.c
+75
-0
testsuites/sample/kernel/hwi/it_los_hwi_037.c
testsuites/sample/kernel/hwi/it_los_hwi_037.c
+58
-0
testsuites/sample/kernel/hwi/it_los_hwi_038.c
testsuites/sample/kernel/hwi/it_los_hwi_038.c
+60
-0
testsuites/sample/kernel/hwi/it_los_hwi_039.c
testsuites/sample/kernel/hwi/it_los_hwi_039.c
+72
-0
testsuites/sample/kernel/hwi/it_los_hwi_040.c
testsuites/sample/kernel/hwi/it_los_hwi_040.c
+168
-0
testsuites/sample/kernel/mem/It_los_mem_004.c
testsuites/sample/kernel/mem/It_los_mem_004.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_013.c
testsuites/sample/kernel/mux/It_los_mutex_013.c
+3
-3
testsuites/sample/kernel/mux/It_los_mutex_016.c
testsuites/sample/kernel/mux/It_los_mutex_016.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_017.c
testsuites/sample/kernel/mux/It_los_mutex_017.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_019.c
testsuites/sample/kernel/mux/It_los_mutex_019.c
+4
-4
testsuites/sample/kernel/mux/It_los_mutex_020.c
testsuites/sample/kernel/mux/It_los_mutex_020.c
+2
-2
testsuites/sample/kernel/queue/It_los_queue_021.c
testsuites/sample/kernel/queue/It_los_queue_021.c
+2
-2
testsuites/sample/kernel/queue/It_los_queue_030.c
testsuites/sample/kernel/queue/It_los_queue_030.c
+2
-2
testsuites/sample/kernel/queue/It_los_queue_065.c
testsuites/sample/kernel/queue/It_los_queue_065.c
+1
-2
testsuites/sample/kernel/queue/It_los_queue_066.c
testsuites/sample/kernel/queue/It_los_queue_066.c
+1
-2
testsuites/sample/kernel/queue/It_los_queue_head_015.c
testsuites/sample/kernel/queue/It_los_queue_head_015.c
+2
-2
testsuites/sample/kernel/queue/It_los_queue_head_022.c
testsuites/sample/kernel/queue/It_los_queue_head_022.c
+2
-2
testsuites/sample/kernel/swtmr/BUILD.gn
testsuites/sample/kernel/swtmr/BUILD.gn
+2
-0
testsuites/sample/kernel/swtmr/It_los_swtmr.c
testsuites/sample/kernel/swtmr/It_los_swtmr.c
+2
-0
testsuites/sample/kernel/swtmr/It_los_swtmr.h
testsuites/sample/kernel/swtmr/It_los_swtmr.h
+2
-0
testsuites/sample/kernel/swtmr/It_los_swtmr_068.c
testsuites/sample/kernel/swtmr/It_los_swtmr_068.c
+2
-2
testsuites/sample/kernel/swtmr/It_los_swtmr_080.c
testsuites/sample/kernel/swtmr/It_los_swtmr_080.c
+87
-0
testsuites/sample/kernel/swtmr/It_los_swtmr_081.c
testsuites/sample/kernel/swtmr/It_los_swtmr_081.c
+84
-0
testsuites/sample/kernel/task/BUILD.gn
testsuites/sample/kernel/task/BUILD.gn
+5
-0
testsuites/sample/kernel/task/It_los_task.c
testsuites/sample/kernel/task/It_los_task.c
+5
-1
testsuites/sample/kernel/task/It_los_task.h
testsuites/sample/kernel/task/It_los_task.h
+5
-0
testsuites/sample/kernel/task/It_los_task_124.c
testsuites/sample/kernel/task/It_los_task_124.c
+90
-0
testsuites/sample/kernel/task/It_los_task_125.c
testsuites/sample/kernel/task/It_los_task_125.c
+92
-0
testsuites/sample/kernel/task/It_los_task_126.c
testsuites/sample/kernel/task/It_los_task_126.c
+87
-0
testsuites/sample/kernel/task/It_los_task_127.c
testsuites/sample/kernel/task/It_los_task_127.c
+94
-0
testsuites/sample/kernel/task/It_los_task_128.c
testsuites/sample/kernel/task/It_los_task_128.c
+103
-0
utils/los_compiler.h
utils/los_compiler.h
+1
-1
未找到文件。
arch/arm/cortex-m55/gcc/NTZ/los_timer.c
浏览文件 @
b9830c61
...
...
@@ -35,7 +35,7 @@
#include "los_debug.h"
STATIC
UINT32
SysTickStart
(
HWI_PROC_FUNC
handler
);
STATIC
VOID
SysTickReload
(
UINT64
nextResponseTime
);
STATIC
UINT64
SysTickReload
(
UINT64
nextResponseTime
);
STATIC
UINT64
SysTickCycleGet
(
UINT32
*
period
);
STATIC
VOID
SysTickLock
(
VOID
);
STATIC
VOID
SysTickUnlock
(
VOID
);
...
...
arch/csky/v2/gcc/los_interrupt.c
浏览文件 @
b9830c61
...
...
@@ -256,7 +256,7 @@ VOID OsSetVector(UINT32 num, HWI_PROC_FUNC vector)
**************************************************************************** */
STATIC
UINT32
HwiNumGet
(
VOID
)
{
return
HalGetPsr
()
;
return
(
HalGetPsr
()
>>
PSR_VEC_OFFSET
)
&
MASK_8_BITS
;
}
HwiControllerOps
g_archHwiOps
=
{
...
...
@@ -283,7 +283,6 @@ inline UINT32 ArchIsIntActive(VOID)
LITE_OS_SEC_TEXT_MINOR
VOID
HalHwiDefaultHandler
(
VOID
)
{
UINT32
irqNum
=
HwiNumGet
();
irqNum
=
(
irqNum
>>
PSR_VEC_OFFSET
)
&
MASK_8_BITS
;
PRINT_ERR
(
"%s irqnum:%x
\n
"
,
__FUNCTION__
,
irqNum
);
while
(
1
)
{}
}
...
...
@@ -317,7 +316,6 @@ LITE_OS_SEC_TEXT VOID HalInterrupt(VOID)
LOS_IntRestore
(
intSave
);
hwiIndex
=
HwiNumGet
();
hwiIndex
=
(
hwiIndex
>>
PSR_VEC_OFFSET
)
&
MASK_8_BITS
;
OsHookCall
(
LOS_HOOK_TYPE_ISR_ENTER
,
hwiIndex
);
HalPreInterruptHandler
(
hwiIndex
);
...
...
arch/include/los_interrupt.h
浏览文件 @
b9830c61
...
...
@@ -80,6 +80,7 @@ UINT32 ArchIsIntActive(VOID);
#define LOS_HwiDisable ArchIntDisable
#define LOS_HwiClear ArchIntClear
#define LOS_HwiSetPriority ArchIntSetPriority
#define LOS_HwiCurIrqNum ArchIntCurIrqNum
UINT32
ArchIntLock
(
VOID
);
#define LOS_IntLock ArchIntLock
...
...
@@ -193,6 +194,14 @@ STATIC INLINE UINT32 ArchIntSetPriority(HWI_HANDLE_T hwiNum, HWI_PRIOR_T priorit
return
g_archHwiOps
.
setIrqPriority
(
hwiNum
,
priority
);
}
STATIC
INLINE
UINT32
ArchIntCurIrqNum
(
VOID
)
{
if
(
g_archHwiOps
.
getCurIrqNum
==
NULL
)
{
return
LOS_NOK
;
}
return
g_archHwiOps
.
getCurIrqNum
();
}
STATIC
INLINE
HwiControllerOps
*
ArchIntOpsGet
(
VOID
)
{
return
&
g_archHwiOps
;
...
...
kal/posix/src/pthread_mutex.c
浏览文件 @
b9830c61
...
...
@@ -49,7 +49,7 @@ static inline int MapError(UINT32 err)
switch
(
err
)
{
case
LOS_OK
:
return
0
;
case
LOS_ERRNO_MUX_
PEND
_INTERR
:
case
LOS_ERRNO_MUX_
IN
_INTERR
:
return
EPERM
;
case
LOS_ERRNO_MUX_PEND_IN_LOCK
:
return
EDEADLK
;
...
...
@@ -134,7 +134,7 @@ int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexA
if
(
mutex
==
NULL
)
{
return
EINVAL
;
}
if
(
mutexAttr
==
NULL
)
{
(
VOID
)
pthread_mutexattr_init
(
&
useAttr
);
}
else
{
...
...
@@ -324,7 +324,7 @@ int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *absTi
UINT64
timeoutNs
;
struct
timespec
curTime
=
{
0
};
LosMuxCB
*
muxPended
=
NULL
;
ret
=
MuxPreCheck
(
mutex
,
OS_TCB_FROM_TID
(
LOS_CurTaskIDGet
()));
if
(
ret
!=
0
)
{
return
(
INT32
)
ret
;
...
...
kernel/include/los_mux.h
浏览文件 @
b9830c61
...
...
@@ -104,7 +104,7 @@ extern "C" {
*
* Solution: Check whether the mutex is being locked during an interrupt.
*/
#define LOS_ERRNO_MUX_
PEND
_INTERR LOS_ERRNO_OS_ERROR(LOS_MOD_MUX, 0x05)
#define LOS_ERRNO_MUX_
IN
_INTERR LOS_ERRNO_OS_ERROR(LOS_MOD_MUX, 0x05)
/**
* @ingroup los_mux
...
...
@@ -256,7 +256,7 @@ extern UINT32 LOS_MuxDelete(UINT32 muxHandle);
* is not applicable for the current operation.
* @retval #LOS_ERRNO_MUX_UNAVAILABLE The mutex fails to be locked because it is locked by another thread and
* a period of time is not set for waiting for the mutex to become available.
* @retval #LOS_ERRNO_MUX_
PEND
_INTERR The mutex is being locked during an interrupt.
* @retval #LOS_ERRNO_MUX_
IN
_INTERR The mutex is being locked during an interrupt.
* @retval #LOS_ERRNO_MUX_PEND_IN_LOCK The mutex is waited on when the task scheduling is disabled.
* @retval #LOS_ERRNO_MUX_TIMEOUT The mutex waiting times out.
* @retval #LOS_OK The mutex is successfully locked.
...
...
@@ -284,7 +284,7 @@ extern UINT32 LOS_MuxPend(UINT32 muxHandle, UINT32 timeout);
*
* @retval #LOS_ERRNO_MUX_INVALID The mutex state (for example, the mutex does not exist or is not in use
* or owned by other thread) is not applicable for the current operation.
* @retval #LOS_ERRNO_MUX_
PEND
_INTERR The mutex is being released during an interrupt.
* @retval #LOS_ERRNO_MUX_
IN
_INTERR The mutex is being released during an interrupt.
* @retval #LOS_OK The mutex is successfully released.
* @par Dependency:
* <ul><li>los_mux.h: the header file that contains the API declaration.</li></ul>
...
...
kernel/include/los_queue.h
浏览文件 @
b9830c61
...
...
@@ -333,7 +333,17 @@ extern "C" {
/**
* @ingroup los_queue
* In struct QUEUE_INFO_S, the length of each waitReadTask/waitWriteTask/waitMemTask array depends on the value
* Queue error code: The buffer size passed in during queue readding or writting is bigger than the biggest size.
*
* Value: 0x02000620
*
* Solution: Decrease the buffer size.
*/
#define LOS_ERRNO_QUEUE_BUFFER_SIZE_TOO_BIG LOS_ERRNO_OS_ERROR(LOS_MOD_QUE, 0x20)
/**
* @ingroup los_queue
* In struct QueueInfo, the length of each waitReadTask/waitWriteTask/waitMemTask array depends on the value
* LOSCFG_BASE_CORE_TSK_LIMIT. The type of each array element is UINT32, which means that each element could mark 32(=2^5) tasks.
* OS_WAIT_TASK_ARRAY_LEN is used to calculate the array length.
* OS_WAIT_TASK_ID_TO_ARRAY_IDX is used to transfer task ID to array index.
...
...
@@ -387,7 +397,7 @@ typedef struct tagQueueInfo {
* <ul><li>los_queue.h: the header file that contains the API declaration.</li></ul>
* @see LOS_QueueDelete
*/
extern
UINT32
LOS_QueueCreate
(
CHAR
*
queueName
,
extern
UINT32
LOS_QueueCreate
(
const
CHAR
*
queueName
,
UINT16
len
,
UINT32
*
queueID
,
UINT32
flags
,
...
...
kernel/include/los_task.h
浏览文件 @
b9830c61
...
...
@@ -1142,25 +1142,6 @@ extern UINT32 LOS_NewTaskIDGet(VOID);
*/
extern
CHAR
*
LOS_TaskNameGet
(
UINT32
taskID
);
/* *
* @ingroup los_task
* @brief: cpu delay.
*
* @par Description:
* This API is used to cpu delay, no task switching.
*
* @attention:
* <ul><li>None.</li></ul>
*
* @param UINT64 [IN] delay times, microseconds.
*
* @retval: None.
* @par Dependency:
* <ul><li>los_task.h: the header file that contains the API declaration.</li></ul>
* @see None.
*/
extern
VOID
LOS_UDelay
(
UINT64
microseconds
);
/* *
* @ingroup los_task
* @brief: cpu delay.
...
...
@@ -1779,6 +1760,8 @@ STATIC INLINE LosTaskCB *OsCurrTaskGet(VOID)
return
g_losTask
.
runTask
;
}
extern
VOID
LOS_TaskResRecycle
(
VOID
);
#ifdef __cplusplus
#if __cplusplus
}
...
...
kernel/include/los_tick.h
浏览文件 @
b9830c61
...
...
@@ -137,6 +137,8 @@ extern UINT32 g_sysClock;
#define OS_SYS_NS_PER_SECOND 1000000000
#define OS_SYS_NS_PER_MS 1000000
#define OS_SYS_NS_PER_US 1000
#define OS_CYCLE_PER_TICK (g_sysClock / LOSCFG_BASE_CORE_TICK_PER_SECOND)
...
...
@@ -359,6 +361,63 @@ extern UINT32 LOS_MS2Tick(UINT32 millisec);
*/
extern
UINT32
LOS_TickTimerRegister
(
const
ArchTickTimer
*
timer
,
const
HWI_PROC_FUNC
tickHandler
);
/* *
* @ingroup los_task
* @brief: cpu delay.
*
* @par Description:
* This API is used to cpu delay, no task switching.
*
* @attention:
* <ul><li>None.</li></ul>
*
* @param UINT64 [IN] delay times, microseconds.
*
* @retval: None.
* @par Dependency:
* <ul><li>los_task.h: the header file that contains the API declaration.</li></ul>
* @see None.
*/
extern
VOID
LOS_UDelay
(
UINT64
microseconds
);
/* *
* @ingroup los_task
* @brief: cpu delay.
*
* @par Description:
* This API is used to cpu delay, no task switching.
*
* @attention:
* <ul><li>None.</li></ul>
*
* @param UINT32 [IN] delay times, millisecond.
*
* @retval: None.
* @par Dependency:
* <ul><li>los_task.h: the header file that contains the API declaration.</li></ul>
* @see None.
*/
extern
VOID
LOS_MDelay
(
UINT32
millisec
);
/* *
* @ingroup los_task
* @brief: cpu nanosecond get.
*
* @par Description:
* This API is used to get the current number of nanoseconds.
*
* @attention:
* <ul><li>None.</li></ul>
*
* @param none.
*
* @retval: None.
* @par Dependency:
* <ul><li>los_task.h: the header file that contains the API declaration.</li></ul>
* @see None.
*/
extern
UINT64
LOS_CurrNanosec
(
VOID
);
/**
* @ingroup los_tick
* @brief Handle the system tick timeout.
...
...
@@ -407,6 +466,8 @@ typedef struct TagCpuTick {
*/
#define OS_SYS_US_PER_SECOND 1000000
#define OS_SYS_US_PER_MS 1000
/**
* @ingroup los_tick
* The maximum length of name.
...
...
kernel/src/los_mux.c
浏览文件 @
b9830c61
...
...
@@ -165,7 +165,7 @@ STATIC_INLINE UINT32 OsMuxValidCheck(LosMuxCB *muxPended)
}
if
(
OS_INT_ACTIVE
)
{
return
LOS_ERRNO_MUX_
PEND
_INTERR
;
return
LOS_ERRNO_MUX_
IN
_INTERR
;
}
if
(
g_losTaskLock
)
{
...
...
@@ -279,6 +279,11 @@ LITE_OS_SEC_TEXT UINT32 LOS_MuxPost(UINT32 muxHandle)
OS_RETURN_ERROR
(
LOS_ERRNO_MUX_INVALID
);
}
if
(
OS_INT_ACTIVE
)
{
LOS_IntRestore
(
intSave
);
OS_RETURN_ERROR
(
LOS_ERRNO_MUX_IN_INTERR
);
}
runningTask
=
(
LosTaskCB
*
)
g_losTask
.
runTask
;
if
((
muxPosted
->
muxCount
==
0
)
||
(
muxPosted
->
owner
!=
runningTask
))
{
LOS_IntRestore
(
intSave
);
...
...
kernel/src/los_queue.c
浏览文件 @
b9830c61
...
...
@@ -90,7 +90,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsQueueInit(VOID)
Output : queueID --- Queue ID
Return : LOS_OK on success or error code on failure
*****************************************************************************/
LITE_OS_SEC_TEXT_INIT
UINT32
LOS_QueueCreate
(
CHAR
*
queueName
,
LITE_OS_SEC_TEXT_INIT
UINT32
LOS_QueueCreate
(
const
CHAR
*
queueName
,
UINT16
len
,
UINT32
*
queueID
,
UINT32
flags
,
...
...
@@ -234,9 +234,9 @@ static INLINE VOID OsQueueBufferOperate(LosQueueCB *queueCB, UINT32 operateType,
if
(
OS_QUEUE_IS_POINT
(
operateType
))
{
if
(
OS_QUEUE_IS_READ
(
operateType
))
{
*
(
UINT
32
*
)
bufferAddr
=
*
(
UINT32
*
)(
VOID
*
)
queueNode
;
*
(
UINT
PTR
*
)
bufferAddr
=
*
(
UINTPTR
*
)(
VOID
*
)
queueNode
;
}
else
{
*
(
UINT
32
*
)(
VOID
*
)
queueNode
=
*
(
UINT32
*
)
bufferAddr
;
// change to pp when calling OsQueueOperate
*
(
UINT
PTR
*
)(
VOID
*
)
queueNode
=
*
(
UINTPTR
*
)
bufferAddr
;
}
}
else
{
if
(
OS_QUEUE_IS_READ
(
operateType
))
{
...
...
@@ -271,6 +271,10 @@ static INLINE UINT32 OsQueueOperateParamCheck(const LosQueueCB *queueCB, UINT32
return
LOS_ERRNO_QUEUE_WRITE_SIZE_TOO_BIG
;
}
if
(
*
bufferSize
>=
SECUREC_MEM_MAX_LEN
)
{
return
LOS_ERRNO_QUEUE_BUFFER_SIZE_TOO_BIG
;
}
return
LOS_OK
;
}
...
...
kernel/src/los_task.c
浏览文件 @
b9830c61
...
...
@@ -1486,19 +1486,7 @@ LITE_OS_SEC_TEXT_MINOR VOID LOS_Msleep(UINT32 mSecs)
(
VOID
)
LOS_TaskDelay
(
interval
);
}
VOID
LOS_
UDelay
(
UINT64
microseconds
)
VOID
LOS_
TaskResRecycle
(
VOID
)
{
UINT64
endTime
;
if
(
microseconds
==
0
)
{
return
;
}
endTime
=
(
microseconds
/
OS_SYS_US_PER_SECOND
)
*
g_sysClock
+
(
microseconds
%
OS_SYS_US_PER_SECOND
)
*
g_sysClock
/
OS_SYS_US_PER_SECOND
;
endTime
=
LOS_SysCycleGet
()
+
endTime
;
while
(
LOS_SysCycleGet
()
<
endTime
)
{
}
return
;
OsRecyleFinishedTask
();
}
kernel/src/los_tick.c
浏览文件 @
b9830c61
...
...
@@ -36,6 +36,7 @@
#include "los_swtmr.h"
#include "los_sched.h"
#include "los_debug.h"
#include "stdint.h"
LITE_OS_SEC_BSS
STATIC
ArchTickTimer
*
g_sysTickTimer
=
NULL
;
LITE_OS_SEC_BSS
UINT32
g_ticksPerSec
;
...
...
@@ -347,3 +348,58 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsCpuTick2US(CpuTick *cpuTick, UINT32 *usHi, UINT32
return
LOS_OK
;
}
/*****************************************************************************
Function : LOS_MS2Tick
Description : get current nanoseconds
Input : None
Output : None
Return : nanoseconds
*****************************************************************************/
UINT64
LOS_CurrNanosec
(
VOID
)
{
UINT64
nanos
;
nanos
=
LOS_SysCycleGet
()
*
(
OS_SYS_NS_PER_SECOND
/
OS_SYS_NS_PER_MS
)
/
(
g_sysClock
/
OS_SYS_NS_PER_MS
);
return
nanos
;
}
/*****************************************************************************
Function : LOS_UDelay
Description : cpu delay function
Input : microseconds ---------- microseconds
Output : None
Return : None
*****************************************************************************/
VOID
LOS_UDelay
(
UINT64
microseconds
)
{
UINT64
endTime
;
if
(
microseconds
==
0
)
{
return
;
}
endTime
=
(
microseconds
/
OS_SYS_US_PER_SECOND
)
*
g_sysClock
+
(
microseconds
%
OS_SYS_US_PER_SECOND
)
*
g_sysClock
/
OS_SYS_US_PER_SECOND
;
endTime
=
LOS_SysCycleGet
()
+
endTime
;
while
(
LOS_SysCycleGet
()
<
endTime
)
{
}
return
;
}
/*****************************************************************************
Function : LOS_MDelay
Description : cpu delay function
Input : millisec ---------- milliseconds
Output : None
Return : None
*****************************************************************************/
VOID
LOS_MDelay
(
UINT32
millisec
)
{
UINT32
delayUs
=
(
UINT32_MAX
/
OS_SYS_US_PER_MS
)
*
OS_SYS_US_PER_MS
;
while
(
millisec
>
UINT32_MAX
/
OS_SYS_US_PER_MS
)
{
LOS_UDelay
(
delayUs
);
millisec
-=
(
UINT32_MAX
/
OS_SYS_US_PER_MS
);
}
LOS_UDelay
(
millisec
*
OS_SYS_US_PER_MS
);
return
;
}
kernel/src/mm/los_memory.c
浏览文件 @
b9830c61
...
...
@@ -1037,24 +1037,24 @@ STATIC UINT32 OsMemPoolDelete(VOID *pool)
UINT32
LOS_MemInit
(
VOID
*
pool
,
UINT32
size
)
{
if
((
pool
==
NULL
)
||
(
size
<=
OS_MEM_MIN_POOL_SIZE
))
{
return
OS_ERROR
;
return
LOS_NOK
;
}
if
(((
UINTPTR
)
pool
&
(
OS_MEM_ALIGN_SIZE
-
1
))
||
\
(
size
&
(
OS_MEM_ALIGN_SIZE
-
1
)))
{
PRINT_ERR
(
"LiteOS heap memory address or size configured not aligned:address:0x%x,size:0x%x, alignsize:%d
\n
"
,
\
(
UINTPTR
)
pool
,
size
,
OS_MEM_ALIGN_SIZE
);
return
OS_ERROR
;
return
LOS_NOK
;
}
if
(
OsMemPoolInit
(
pool
,
size
))
{
return
OS_ERROR
;
return
LOS_NOK
;
}
#if (LOSCFG_MEM_MUL_POOL == 1)
if
(
OsMemPoolAdd
(
pool
,
size
))
{
(
VOID
)
OsMemPoolDeinit
(
pool
);
return
OS_ERROR
;
return
LOS_NOK
;
}
#endif
...
...
@@ -1067,11 +1067,11 @@ UINT32 LOS_MemInit(VOID *pool, UINT32 size)
UINT32
LOS_MemDeInit
(
VOID
*
pool
)
{
if
(
pool
==
NULL
)
{
return
OS_ERROR
;
return
LOS_NOK
;
}
if
(
OsMemPoolDelete
(
pool
))
{
return
OS_ERROR
;
return
LOS_NOK
;
}
OsMemPoolDeinit
(
pool
);
...
...
@@ -1593,11 +1593,11 @@ UINT32 LOS_MemFreeByTaskID(VOID *pool, UINT32 taskID)
{
UINT32
args
[
2
]
=
{
taskID
,
(
UINT32
)(
UINTPTR
)
pool
};
if
(
pool
==
NULL
)
{
return
OS_ERROR
;
return
LOS_NOK
;
}
if
(
taskID
>=
LOSCFG_BASE_CORE_TSK_LIMIT
)
{
return
OS_ERROR
;
return
LOS_NOK
;
}
OsAllMemNodeDoHandle
(
pool
,
MemNodeFreeByTaskIDHandle
,
(
VOID
*
)
args
);
...
...
testsuites/sample/kernel/hwi/BUILD.gn
浏览文件 @
b9830c61
...
...
@@ -64,6 +64,11 @@ static_library("test_hwi") {
"it_los_hwi_032.c",
"it_los_hwi_033.c",
"it_los_hwi_034.c",
"it_los_hwi_036.c",
"it_los_hwi_037.c",
"it_los_hwi_038.c",
"it_los_hwi_039.c",
"it_los_hwi_040.c",
"llt_los_hwi_035.c",
]
...
...
testsuites/sample/kernel/hwi/It_los_hwi.c
浏览文件 @
b9830c61
...
...
@@ -57,6 +57,11 @@ VOID ItSuiteLosHwi()
ItLosHwi030
();
ItLosHwi031
();
ItLosHwi034
();
ItLosHwi036
();
ItLosHwi037
();
ItLosHwi038
();
ItLosHwi039
();
ItLosHwi040
();
#if (LOS_KERNEL_MULTI_HWI_TEST == 1)
ItLosHwi003
();
ItLosHwi005
();
...
...
testsuites/sample/kernel/hwi/it_los_hwi.h
浏览文件 @
b9830c61
...
...
@@ -73,6 +73,12 @@ extern VOID ItLosHwi030(VOID);
extern
VOID
ItLosHwi031
(
VOID
);
extern
VOID
ItLosHwi034
(
VOID
);
extern
VOID
LltLosHwi035
(
VOID
);
extern
VOID
ItLosHwi036
(
VOID
);
extern
VOID
ItLosHwi037
(
VOID
);
extern
VOID
ItLosHwi038
(
VOID
);
extern
VOID
ItLosHwi039
(
VOID
);
extern
VOID
ItLosHwi040
(
VOID
);
#if (LOS_KERNEL_MULTI_HWI_TEST == 1)
extern
VOID
ItLosHwi003
(
VOID
);
...
...
testsuites/sample/kernel/hwi/it_los_hwi_036.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "it_los_hwi.h"
static
UINT32
Testcase
(
VOID
)
{
UINT32
intSave
;
UINT32
deltaTicks
;
UINT64
timeRecordNS
;
UINT64
timeUpdateNS
;
UINT64
delayMs
=
10
;
// delay 10 MS
UINT32
deltaMs
;
UINT64
delayTicks
;
UINT32
loop
=
10
;
// loop 10 time
delayTicks
=
delayMs
*
LOSCFG_BASE_CORE_TICK_PER_SECOND
/
OS_SYS_MS_PER_SECOND
;
for
(
int
i
=
0
;
i
<=
loop
;
i
++
,
delayTicks
++
)
{
timeRecordNS
=
LOS_CurrNanosec
();
LOS_TaskDelay
(
delayTicks
);
timeUpdateNS
=
LOS_CurrNanosec
();
deltaTicks
=
((
timeUpdateNS
-
timeRecordNS
)
*
LOSCFG_BASE_CORE_TICK_PER_SECOND
/
OS_SYS_NS_PER_SECOND
);
if
(
deltaTicks
>=
(
delayTicks
-
1
)
&&
deltaTicks
<=
(
delayTicks
+
1
))
{
continue
;
}
else
{
ICUNIT_ASSERT_EQUAL
(
deltaTicks
,
delayTicks
,
deltaTicks
);
}
}
intSave
=
LOS_IntLock
();
for
(
int
i
=
1
;
i
<=
loop
;
i
++
)
{
timeRecordNS
=
LOS_CurrNanosec
();
LOS_MDelay
(
i
);
timeUpdateNS
=
LOS_CurrNanosec
();
deltaMs
=
(
timeUpdateNS
-
timeRecordNS
)
/
OS_SYS_NS_PER_MS
;
ICUNIT_ASSERT_EQUAL
(
deltaMs
,
i
,
deltaMs
);
}
LOS_IntRestore
(
intSave
);
return
LOS_OK
;
}
VOID
ItLosHwi036
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosHwi036"
,
Testcase
,
TEST_LOS
,
TEST_HWI
,
TEST_LEVEL3
,
TEST_PRESSURE
);
}
testsuites/sample/kernel/hwi/it_los_hwi_037.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "it_los_hwi.h"
static
UINT32
Testcase
(
VOID
)
{
UINT32
intSave
;
UINT64
timeRecordNS
;
UINT64
timeUpdateNS
;
UINT32
deltaMs
;
UINT32
loop
=
10
;
// loop 10 time
intSave
=
LOS_IntLock
();
for
(
int
i
=
1
;
i
<=
loop
;
i
++
)
{
timeRecordNS
=
LOS_CurrNanosec
();
LOS_MDelay
(
i
);
timeUpdateNS
=
LOS_CurrNanosec
();
deltaMs
=
(
timeUpdateNS
-
timeRecordNS
)
/
OS_SYS_NS_PER_MS
;
ICUNIT_ASSERT_EQUAL
(
deltaMs
,
i
,
deltaMs
);
}
LOS_IntRestore
(
intSave
);
return
LOS_OK
;
}
VOID
ItLosHwi037
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosHwi037"
,
Testcase
,
TEST_LOS
,
TEST_HWI
,
TEST_LEVEL3
,
TEST_PRESSURE
);
}
testsuites/sample/kernel/hwi/it_los_hwi_038.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "it_los_hwi.h"
static
UINT32
Testcase
(
VOID
)
{
UINT32
deltaTicks
;
UINT64
timeRecordNS
;
UINT64
timeUpdateNS
;
UINT64
tickRecord
;
UINT64
tickUpdate
;
UINT32
loop
=
10
;
// loop 10 time.
timeRecordNS
=
LOS_CurrNanosec
();
tickRecord
=
LOS_TickCountGet
();
LOS_TaskDelay
(
1
);
for
(
int
i
=
1
;
i
<=
loop
;
i
++
)
{
LOS_MDelay
(
i
*
10
);
// i * 10, Set delay time.
timeUpdateNS
=
LOS_CurrNanosec
();
tickUpdate
=
LOS_TickCountGet
();
deltaTicks
=
(
UINT32
)((
timeUpdateNS
-
timeRecordNS
)
*
LOSCFG_BASE_CORE_TICK_PER_SECOND
/
OS_SYS_NS_PER_SECOND
);
ICUNIT_ASSERT_WITHIN_EQUAL
(
deltaTicks
,
tickUpdate
-
tickRecord
-
1
,
tickUpdate
-
tickRecord
+
1
,
deltaTicks
);
}
return
LOS_OK
;
}
VOID
ItLosHwi038
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosHwi038"
,
Testcase
,
TEST_LOS
,
TEST_HWI
,
TEST_LEVEL3
,
TEST_PRESSURE
);
}
testsuites/sample/kernel/hwi/it_los_hwi_039.c
0 → 100755
浏览文件 @
b9830c61
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "it_los_hwi.h"
static
VOID
HwiF01
(
VOID
)
{
TestHwiClear
(
HWI_NUM_TEST
);
g_testCount
++
;
EXIT:
return
;
}
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
HWI_PRIOR_T
hwiPrio
=
2
;
HWI_MODE_T
mode
=
0
;
HWI_ARG_T
arg
=
0
;
g_testCount
=
0
;
ret
=
LOS_HwiCreate
(
HWI_NUM_TEST
,
hwiPrio
,
mode
,
(
HWI_PROC_FUNC
)
HwiF01
,
arg
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
LOS_HwiDisable
(
HWI_NUM_TEST
);
TestHwiTrigger
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
0
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 0.
LOS_HwiEnable
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
1
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 1.
TestHwiDelete
(
HWI_NUM_TEST
);
return
LOS_OK
;
EXIT:
TestHwiDelete
(
HWI_NUM_TEST
);
return
LOS_OK
;
}
VOID
ItLosHwi039
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosHwi039"
,
Testcase
,
TEST_LOS
,
TEST_HWI
,
TEST_LEVEL3
,
TEST_PRESSURE
);
}
testsuites/sample/kernel/hwi/it_los_hwi_040.c
0 → 100755
浏览文件 @
b9830c61
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "it_los_hwi.h"
static
UINT32
TesttriggerIrq
(
HWI_HANDLE_T
hwiNum
)
{
g_testCount
++
;
printf
(
"This is TesttriggerIrq
\n
"
);
return
LOS_OK
;
}
static
UINT32
TestclearIrq
(
HWI_HANDLE_T
hwiNum
)
{
g_testCount
++
;
printf
(
"This is TestclearIrq
\n
"
);
return
LOS_OK
;
}
static
UINT32
TestenableIrq
(
HWI_HANDLE_T
hwiNum
)
{
g_testCount
++
;
printf
(
"This is TestenableIrq
\n
"
);
return
LOS_OK
;
}
static
UINT32
TestdisableIrq
(
HWI_HANDLE_T
hwiNum
)
{
g_testCount
++
;
printf
(
"This is TestdisableIrq
\n
"
);
return
LOS_OK
;
}
static
UINT32
TestsetIrqPriority
(
HWI_HANDLE_T
hwiNum
,
UINT8
priority
)
{
g_testCount
++
;
printf
(
"This is TestsetIrqPriority
\n
"
);
return
LOS_OK
;
}
static
UINT32
TestgetCurIrqNum
(
VOID
)
{
g_testCount
++
;
printf
(
"This is TestgetCurIrqNum
\n
"
);
return
HWI_NUM_TEST
;
}
static
VOID
HwiF01
(
VOID
)
{
TestHwiClear
(
HWI_NUM_TEST
);
g_testCount
++
;
return
;
}
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
=
LOS_OK
;
UINT32
irqNum
=
0
;
HWI_PRIOR_T
hwiPrio
=
2
;
// 2, Set hwi priority.
HWI_MODE_T
mode
=
0
;
HWI_ARG_T
arg
=
0
;
HwiControllerOps
*
ops
=
NULL
;
HwiControllerOps
*
opsBac
=
(
HwiControllerOps
*
)
malloc
(
sizeof
(
HwiControllerOps
));
if
(
opsBac
==
NULL
)
{
ret
=
LOS_NOK
;
}
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
(
VOID
)
memset_s
(
opsBac
,
sizeof
(
HwiControllerOps
),
0
,
sizeof
(
HwiControllerOps
));
g_testCount
=
0
;
ret
=
LOS_HwiCreate
(
HWI_NUM_TEST
,
hwiPrio
,
mode
,
(
HWI_PROC_FUNC
)
HwiF01
,
arg
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ret
=
LOS_HwiTrigger
(
LOSCFG_PLATFORM_HWI_LIMIT
+
1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERRNO_HWI_NUM_INVALID
,
ret
);
ret
=
LOS_HwiEnable
(
LOSCFG_PLATFORM_HWI_LIMIT
+
1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERRNO_HWI_NUM_INVALID
,
ret
);
ret
=
LOS_HwiDisable
(
LOSCFG_PLATFORM_HWI_LIMIT
+
1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERRNO_HWI_NUM_INVALID
,
ret
);
ret
=
LOS_HwiClear
(
LOSCFG_PLATFORM_HWI_LIMIT
+
1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERRNO_HWI_NUM_INVALID
,
ret
);
hwiPrio
=
3
;
// 3, Set hwi priority.
ret
=
LOS_HwiSetPriority
(
LOSCFG_PLATFORM_HWI_LIMIT
+
1
,
hwiPrio
);
ICUNIT_ASSERT_NOT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ops
=
LOS_HwiOpsGet
();
(
VOID
)
memcpy_s
(
opsBac
,
sizeof
(
HwiControllerOps
),
ops
,
sizeof
(
HwiControllerOps
));
ops
->
triggerIrq
=
TesttriggerIrq
;
ops
->
enableIrq
=
TestenableIrq
;
ops
->
disableIrq
=
TestdisableIrq
;
ops
->
setIrqPriority
=
TestsetIrqPriority
;
ops
->
getCurIrqNum
=
TestgetCurIrqNum
;
ops
->
clearIrq
=
TestclearIrq
;
LOS_HwiTrigger
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
1
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 1.
LOS_HwiEnable
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
2
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 2.
LOS_HwiDisable
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
3
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 3.
LOS_HwiClear
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
4
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 4.
LOS_HwiSetPriority
(
HWI_NUM_TEST
,
3
);
// 3, Set hwi priority.
ICUNIT_GOTO_EQUAL
(
g_testCount
,
5
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 5.
irqNum
=
LOS_HwiCurIrqNum
();
ICUNIT_ASSERT_EQUAL
(
irqNum
,
HWI_NUM_TEST
,
irqNum
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
6
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 6.
ops
->
triggerIrq
=
opsBac
->
triggerIrq
;
ops
->
enableIrq
=
opsBac
->
enableIrq
;
ops
->
disableIrq
=
opsBac
->
disableIrq
;
ops
->
setIrqPriority
=
opsBac
->
setIrqPriority
;
ops
->
getCurIrqNum
=
opsBac
->
getCurIrqNum
;
ops
->
clearIrq
=
opsBac
->
clearIrq
;
free
(
opsBac
);
ret
=
LOS_HwiDisable
(
HWI_NUM_TEST
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
LOS_HwiTrigger
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
6
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 6.
ret
=
LOS_HwiEnable
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
7
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 7.
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
LOS_HwiTrigger
(
HWI_NUM_TEST
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
8
,
g_testCount
,
EXIT
);
// Compare wiht the expected value 8.
TestHwiDelete
(
HWI_NUM_TEST
);
return
LOS_OK
;
EXIT:
TestHwiDelete
(
HWI_NUM_TEST
);
free
(
opsBac
);
return
LOS_OK
;
}
VOID
ItLosHwi040
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosHwi040"
,
Testcase
,
TEST_LOS
,
TEST_HWI
,
TEST_LEVEL3
,
TEST_PRESSURE
);
}
testsuites/sample/kernel/mem/It_los_mem_004.c
浏览文件 @
b9830c61
...
...
@@ -38,10 +38,10 @@ static UINT32 TestCase(VOID)
UINT32
ret
;
ret
=
LOS_MemInit
(
NULL
,
TEST_MEM_SIZE
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERROR
,
ret
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_NOK
,
ret
);
ret
=
LOS_MemInit
(
g_memPool
,
MIN_MEM_POOL_SIZE
-
1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
OS_ERROR
,
ret
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_NOK
,
ret
);
return
LOS_OK
;
}
...
...
testsuites/sample/kernel/mux/It_los_mutex_013.c
浏览文件 @
b9830c61
...
...
@@ -43,14 +43,14 @@ static VOID HwiF01(void)
ret
=
LOS_MuxPend
(
g_mutexTest
,
0
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
PEND
_INTERR
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
IN
_INTERR
,
ret
);
ret
=
LOS_MuxPend
(
g_mutexTest
,
LOS_WAIT_FOREVER
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
PEND
_INTERR
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
IN
_INTERR
,
ret
);
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_IN
VALID
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_IN
_INTERR
,
ret
);
ret
=
LOS_MuxDelete
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_016.c
浏览文件 @
b9830c61
...
...
@@ -40,7 +40,7 @@ static VOID HwiF01(void)
TestHwiClear
(
HWI_NUM_TEST
);
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
OK
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
ERRNO_MUX_IN_INTERR
,
ret
);
g_testCount
++
;
}
...
...
@@ -65,7 +65,7 @@ static UINT32 Testcase(VOID)
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_
ERRNO_MUX_INVALID
,
ret
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_
OK
,
ret
);
ret
=
LOS_MuxDelete
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_017.c
浏览文件 @
b9830c61
...
...
@@ -40,7 +40,7 @@ static VOID HwiF01(void)
TestHwiClear
(
HWI_NUM_TEST
);
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
OK
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
ERRNO_MUX_IN_INTERR
,
ret
);
g_testCount
++
;
}
...
...
@@ -64,7 +64,7 @@ static UINT32 Testcase(VOID)
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_
ERRNO_MUX_INVALID
,
ret
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_
OK
,
ret
);
ret
=
LOS_MuxDelete
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_019.c
浏览文件 @
b9830c61
...
...
@@ -46,15 +46,15 @@ static VOID Func01(void)
TestHwiDelete
(
HWI_NUM_TEST
);
}
else
if
(
g_testCount
==
3
)
{
// 3, Here, The current possible value of the variable.
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
PEND
_INTERR
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
IN
_INTERR
,
ret
);
}
ret
=
LOS_MuxPost
(
g_mutexTest
);
if
(
g_testCount
==
3
)
{
// 3, Here, The current possible value of the variable.
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
OK
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
ERRNO_MUX_IN_INTERR
,
ret
);
}
else
if
(
g_testCount
==
4
)
{
// 4, Here, The current possible value of the variable.
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
ERRNO_MUX_INVALID
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_
OK
,
ret
);
}
g_testCount
++
;
...
...
@@ -64,7 +64,7 @@ static VOID HwiF01(void)
{
TestHwiClear
(
HWI_NUM_TEST
);
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
g_testCount
++
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_020.c
浏览文件 @
b9830c61
...
...
@@ -45,7 +45,7 @@ static VOID HwiF02(void)
g_testCount
++
;
ret
=
LOS_MuxPost
(
g_mutexTest
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_IN
VALID
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_IN
_INTERR
,
ret
);
}
static
VOID
HwiF01
(
void
)
...
...
@@ -57,7 +57,7 @@ static VOID HwiF01(void)
g_testCount
++
;
ret
=
LOS_MuxPend
(
g_mutexTest
,
LOS_WAIT_FOREVER
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
PEND
_INTERR
,
ret
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_ERRNO_MUX_
IN
_INTERR
,
ret
);
ret
=
LOS_HwiCreate
(
HWI_NUM_TEST0
,
1
,
0
,
(
HWI_PROC_FUNC
)
HwiF02
,
0
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/queue/It_los_queue_021.c
浏览文件 @
b9830c61
...
...
@@ -45,10 +45,10 @@ static UINT32 Testcase(VOID)
ret
=
LOS_QueueCreate
(
NULL
,
QUEUE_BASE_NUM
,
&
queueID
[
index
],
0
,
QUEUE_BASE_MSGSIZE
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
}
ret
=
LOS_QueueWrite
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueWrite
(
queueID
[
limit
-
1
]
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueRead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueRead
(
queueID
[
limit
-
1
]
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueCreate
(
"Q1"
,
QUEUE_BASE_NUM
,
&
queueID
[
index
],
0
,
QUEUE_BASE_MSGSIZE
);
...
...
testsuites/sample/kernel/queue/It_los_queue_030.c
浏览文件 @
b9830c61
...
...
@@ -46,11 +46,11 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
}
// 2, is test for LOSCFG_BASE_IPC_QUEUE_LIMIT - 2
ret
=
LOS_QueueWrite
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
2
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueWrite
(
queueID
[
limit
-
1
]
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
// 2, is test for LOSCFG_BASE_IPC_QUEUE_LIMIT - 2
ret
=
LOS_QueueRead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
2
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueRead
(
queueID
[
limit
-
1
]
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
EXIT:
...
...
testsuites/sample/kernel/queue/It_los_queue_065.c
浏览文件 @
b9830c61
...
...
@@ -45,8 +45,7 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueRead
(
g_testQueueID01
,
&
buff2
,
0xffffffff
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
*
((
char
*
)(
intptr_t
)
buff2
+
7
),
buff1
[
7
],
*
((
char
*
)(
intptr_t
)
buff2
+
7
),
EXIT
);
// 7, QUEUE_BASE_MSGSIZE - 1
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_ERRNO_QUEUE_BUFFER_SIZE_TOO_BIG
,
ret
,
EXIT
);
ret
=
LOS_QueueDelete
(
g_testQueueID01
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/queue/It_los_queue_066.c
浏览文件 @
b9830c61
...
...
@@ -45,8 +45,7 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueRead
(
g_testQueueID01
,
&
buff2
,
(
0xffffffff
-
1
),
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
*
((
char
*
)(
intptr_t
)
buff2
+
7
),
buff1
[
7
],
*
((
char
*
)(
intptr_t
)
buff2
+
7
),
EXIT
);
// 7, Verify that the data is correct
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_ERRNO_QUEUE_BUFFER_SIZE_TOO_BIG
,
ret
,
EXIT
);
ret
=
LOS_QueueDelete
(
g_testQueueID01
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/queue/It_los_queue_head_015.c
浏览文件 @
b9830c61
...
...
@@ -46,10 +46,10 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
}
ret
=
LOS_QueueWriteHead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueWriteHead
(
queueID
[
limit
-
1
]
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueRead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueRead
(
queueID
[
limit
-
1
]
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueCreate
(
"Q1"
,
QUEUE_BASE_NUM
,
&
queueID
[
index
],
0
,
QUEUE_BASE_MSGSIZE
);
...
...
testsuites/sample/kernel/queue/It_los_queue_head_022.c
浏览文件 @
b9830c61
...
...
@@ -46,10 +46,10 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
}
ret
=
LOS_QueueWriteHead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueWriteHead
(
queueID
[
limit
-
1
]
,
&
buff1
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_QueueRead
(
LOSCFG_BASE_IPC_QUEUE_LIMIT
-
1
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ret
=
LOS_QueueRead
(
queueID
[
limit
-
1
]
,
&
buff2
,
QUEUE_BASE_MSGSIZE
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
EXIT:
...
...
testsuites/sample/kernel/swtmr/BUILD.gn
浏览文件 @
b9830c61
...
...
@@ -107,6 +107,8 @@ static_library("test_swtmr") {
"It_los_swtmr_077.c",
"It_los_swtmr_078.c",
"It_los_swtmr_079.c",
"It_los_swtmr_080.c",
"It_los_swtmr_081.c",
"It_los_swtmr_Align_001.c",
"It_los_swtmr_Align_002.c",
"It_los_swtmr_Align_003.c",
...
...
testsuites/sample/kernel/swtmr/It_los_swtmr.c
浏览文件 @
b9830c61
...
...
@@ -114,6 +114,8 @@ VOID ItSuiteLosSwtmr(void)
ItLosSwtmr077
();
ItLosSwtmr078
();
ItLosSwtmr079
();
ItLosSwtmr080
();
ItLosSwtmr081
();
#if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1)
ItLosSwtmrAlign005
();
ItLosSwtmrAlign006
();
...
...
testsuites/sample/kernel/swtmr/It_los_swtmr.h
浏览文件 @
b9830c61
...
...
@@ -148,6 +148,8 @@ extern VOID ItLosSwtmr076(VOID);
extern
VOID
ItLosSwtmr077
(
VOID
);
extern
VOID
ItLosSwtmr078
(
VOID
);
extern
VOID
ItLosSwtmr079
(
VOID
);
extern
VOID
ItLosSwtmr080
(
VOID
);
extern
VOID
ItLosSwtmr081
(
VOID
);
extern
VOID
ItLosSwtmrAlign001
(
VOID
);
extern
VOID
ItLosSwtmrAlign002
(
VOID
);
...
...
testsuites/sample/kernel/swtmr/It_los_swtmr_068.c
浏览文件 @
b9830c61
...
...
@@ -72,8 +72,8 @@ static UINT32 Testcase(VOID)
ret
=
LOS_SwtmrTimeGet
(
swTmrID
,
&
tick
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
//
2 -
1, Here, assert that uwTick is equal to this .
ICUNIT_GOTO_EQUAL
(
tick
,
2
-
1
,
tick
,
EXIT
);
// 1, Here, assert that uwTick is equal to this .
ICUNIT_GOTO_EQUAL
(
tick
,
1
,
tick
,
EXIT
);
// 2, Here, assert that g_testCount is equal to this .
ICUNIT_GOTO_EQUAL
(
g_testCount
,
2
,
g_testCount
,
EXIT
);
...
...
testsuites/sample/kernel/swtmr/It_los_swtmr_080.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_swtmr.h"
static
UINT32
g_testCount1
=
0
;
static
VOID
Case1
(
UINT32
arg
)
{
g_testCount1
++
;
return
;
}
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
g_testCount1
=
0
;
UINT64
tickRecord
;
UINT64
tickUpdate
;
UINT64
delayTicks
;
const
UINT64
delayMs
=
10
;
// delay 10 MS
// 4, Timeout interval of a periodic software timer.
ret
=
LOS_SwtmrCreate
(
4
,
LOS_SWTMR_MODE_PERIOD
,
Case1
,
&
g_swtmrId1
,
0xffff
#if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1)
,
OS_SWTMR_ROUSES_ALLOW
,
OS_SWTMR_ALIGN_INSENSITIVE
#endif
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ret
=
LOS_SwtmrStart
(
g_swtmrId1
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
tickRecord
=
LOS_TickCountGet
();
LOS_MDelay
(
delayMs
);
tickUpdate
=
LOS_TickCountGet
();
// 0, Here, assert that g_testCount is equal to this.
ICUNIT_ASSERT_EQUAL
(
g_testCount1
,
0
,
g_testCount
);
delayTicks
=
delayMs
*
LOSCFG_BASE_CORE_TICK_PER_SECOND
/
OS_SYS_MS_PER_SECOND
;
ICUNIT_ASSERT_WITHIN_EQUAL
(
delayTicks
,
tickUpdate
-
tickRecord
-
1
,
tickUpdate
-
tickRecord
+
1
,
delayTicks
);
// 10, set task delay time.
LOS_TaskDelay
(
10
);
// 2, Here, assert that g_testCount is equal to this.
ICUNIT_ASSERT_EQUAL
(
g_testCount1
,
2
,
g_testCount
);
EXIT:
LOS_SwtmrDelete
(
g_swtmrId1
);
return
LOS_OK
;
}
VOID
ItLosSwtmr080
()
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosSwtmr080"
,
Testcase
,
TEST_LOS
,
TEST_SWTMR
,
TEST_LEVEL1
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/swtmr/It_los_swtmr_081.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_swtmr.h"
static
UINT32
g_testCount1
=
0
;
static
UINT64
g_timeRecordNS
=
0
;
static
UINT64
g_timeUpdateNS
=
0
;
#define SWTMR_PERIODIC 4
static
VOID
Case1
(
UINT32
arg
)
{
g_testCount1
++
;
g_timeUpdateNS
=
LOS_CurrNanosec
();
return
;
}
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
g_testCount1
=
0
;
UINT64
tickRecord
;
UINT64
tickUpdate
;
UINT64
deltaTicks
;
// 4, Timeout interval of a periodic software timer.
ret
=
LOS_SwtmrCreate
(
SWTMR_PERIODIC
,
LOS_SWTMR_MODE_ONCE
,
Case1
,
&
g_swtmrId1
,
0xffff
#if (LOSCFG_BASE_CORE_SWTMR_ALIGN == 1)
,
OS_SWTMR_ROUSES_ALLOW
,
OS_SWTMR_ALIGN_INSENSITIVE
#endif
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
g_timeRecordNS
=
LOS_CurrNanosec
();
ret
=
LOS_SwtmrStart
(
g_swtmrId1
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
// 10, SSet task delay time.
LOS_TaskDelay
(
10
);
deltaTicks
=
(
g_timeUpdateNS
-
g_timeRecordNS
)
*
LOSCFG_BASE_CORE_TICK_PER_SECOND
/
OS_SYS_NS_PER_SECOND
;
ICUNIT_ASSERT_EQUAL
(
deltaTicks
,
SWTMR_PERIODIC
,
deltaTicks
);
EXIT:
LOS_SwtmrDelete
(
g_swtmrId1
);
return
LOS_OK
;
}
VOID
ItLosSwtmr081
()
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosSwtmr081"
,
Testcase
,
TEST_LOS
,
TEST_SWTMR
,
TEST_LEVEL1
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/BUILD.gn
浏览文件 @
b9830c61
...
...
@@ -150,6 +150,11 @@ static_library("test_task") {
"It_los_task_121.c",
"It_los_task_122.c",
"It_los_task_123.c",
"It_los_task_124.c",
"It_los_task_125.c",
"It_los_task_126.c",
"It_los_task_127.c",
"It_los_task_128.c",
]
configs += [ "//kernel/liteos_m/testsuites:include" ]
...
...
testsuites/sample/kernel/task/It_los_task.c
浏览文件 @
b9830c61
...
...
@@ -123,7 +123,11 @@ VOID ItSuiteLosTask()
ItLosTask121
();
ItLosTask122
();
ItLosTask123
();
ItLosTask124
();
ItLosTask125
();
ItLosTask126
();
ItLosTask127
();
ItLosTask128
();
#if (LOS_KERNEL_TEST_FULL == 1)
ItLosTask039
();
ItLosTask040
();
...
...
testsuites/sample/kernel/task/It_los_task.h
浏览文件 @
b9830c61
...
...
@@ -178,6 +178,11 @@ extern VOID ItLosTask120(VOID);
extern
VOID
ItLosTask121
(
VOID
);
extern
VOID
ItLosTask122
(
VOID
);
extern
VOID
ItLosTask123
(
VOID
);
extern
VOID
ItLosTask124
(
VOID
);
extern
VOID
ItLosTask125
(
VOID
);
extern
VOID
ItLosTask126
(
VOID
);
extern
VOID
ItLosTask127
(
VOID
);
extern
VOID
ItLosTask128
(
VOID
);
#ifdef __cplusplus
#if __cplusplus
...
...
testsuites/sample/kernel/task/It_los_task_124.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_task.h"
static
UINT32
GetfreeMemSize
(
void
*
pool
)
{
return
LOS_MemPoolSizeGet
(
pool
)
-
LOS_MemTotalUsedGet
(
pool
);
}
static
VOID
TaskF01
(
UINT32
arg
)
{
g_testCount
++
;
return
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
freeMem
;
UINT32
freeMem1
;
UINT32
freeMem2
;
UINT32
freeMem3
;
UINT32
freeMem4
;
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk124A"
;
task1
.
usTaskPrio
=
8
;
// 8, set task priortiy value.
g_testCount
=
0
;
freeMem
=
GetfreeMemSize
(
m_aucSysMem0
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
freeMem1
=
GetfreeMemSize
(
m_aucSysMem0
);
LOS_TaskDelete
(
g_testTaskID01
);
freeMem2
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem2
,
freeMem1
,
freeMem2
);
LOS_TaskResRecycle
();
freeMem3
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem3
,
freeMem
,
freeMem3
);
LOS_TaskDelay
(
10
);
// 10, task delay times.
freeMem4
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem4
,
freeMem
,
freeMem4
);
return
LOS_OK
;
}
VOID
ItLosTask124
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask124"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/It_los_task_125.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_task.h"
static
UINT32
GetfreeMemSize
(
void
*
pool
)
{
return
LOS_MemPoolSizeGet
(
pool
)
-
LOS_MemTotalUsedGet
(
pool
);
}
static
VOID
TaskF01
(
UINT32
arg
)
{
g_testCount
++
;
return
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
freeMem
;
UINT32
freeMem1
;
UINT32
freeMem2
;
UINT32
freeMem3
;
UINT32
freeMem4
;
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk125A"
;
task1
.
usTaskPrio
=
8
;
// 8, set task priortiy value.
g_testCount
=
0
;
freeMem
=
GetfreeMemSize
(
m_aucSysMem0
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
freeMem1
=
GetfreeMemSize
(
m_aucSysMem0
);
LOS_TaskDelete
(
g_testTaskID01
);
freeMem2
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem2
,
freeMem1
,
freeMem2
);
LOS_TaskDelay
(
10
);
// 10, task delay times.
freeMem3
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem3
,
freeMem
,
freeMem3
);
LOS_TaskResRecycle
();
freeMem4
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem4
,
freeMem
,
freeMem4
);
return
LOS_OK
;
}
VOID
ItLosTask125
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask125"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/It_los_task_126.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_task.h"
static
UINT32
GetfreeMemSize
(
void
*
pool
)
{
return
LOS_MemPoolSizeGet
(
pool
)
-
LOS_MemTotalUsedGet
(
pool
);
}
static
VOID
TaskF01
(
UINT32
arg
)
{
g_testCount
++
;
return
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
freeMem
;
UINT32
freeMem1
;
UINT32
freeMem2
;
UINT32
freeMem3
;
UINT32
freeMem4
;
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk016A"
;
task1
.
usTaskPrio
=
8
;
// 8, set task priortiy value.
g_testCount
=
0
;
freeMem
=
GetfreeMemSize
(
m_aucSysMem0
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
freeMem1
=
GetfreeMemSize
(
m_aucSysMem0
);
LOS_TaskDelay
(
10
);
// 10, task delay times.
freeMem2
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem2
,
freeMem
,
freeMem2
);
LOS_TaskResRecycle
();
freeMem3
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem3
,
freeMem
,
freeMem3
);
return
LOS_OK
;
}
VOID
ItLosTask126
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask126"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/It_los_task_127.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_task.h"
static
UINT32
GetfreeMemSize
(
void
*
pool
)
{
return
LOS_MemPoolSizeGet
(
pool
)
-
LOS_MemTotalUsedGet
(
pool
);
}
static
VOID
TaskF01
(
UINT32
arg
)
{
ICUNIT_GOTO_EQUAL
(
g_testCount
,
0
,
g_testCount
,
EXIT
);
g_testCount
++
;
EXIT:
LOS_TaskDelete
(
g_testTaskID01
);
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
freeMem
;
UINT32
freeMem1
;
UINT32
freeMem2
;
UINT32
freeMem3
;
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk127A"
;
task1
.
usTaskPrio
=
8
;
// 8, set task priortiy value.
task1
.
uwResved
=
LOS_TASK_ATTR_JOINABLE
;
g_testCount
=
0
;
freeMem
=
GetfreeMemSize
(
m_aucSysMem0
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
freeMem1
=
GetfreeMemSize
(
m_aucSysMem0
);
LOS_TaskResRecycle
();
freeMem2
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem2
,
freeMem1
,
freeMem2
);
ret
=
LOS_TaskJoin
(
g_testTaskID01
,
NULL
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
1
,
g_testCount
,
EXIT
);
freeMem3
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem3
,
freeMem
,
freeMem3
);
return
LOS_OK
;
EXIT:
LOS_TaskDelete
(
g_testTaskID01
);
return
LOS_OK
;
}
VOID
ItLosTask127
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask127"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/It_los_task_128.c
0 → 100644
浏览文件 @
b9830c61
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "osTest.h"
#include "It_los_task.h"
static
UINT32
g_freeMem1
=
0
;
static
UINT32
g_freeMem2
=
0
;
static
UINT32
GetfreeMemSize
(
void
*
pool
)
{
return
LOS_MemPoolSizeGet
(
pool
)
-
LOS_MemTotalUsedGet
(
pool
);
}
static
VOID
TaskF02
(
VOID
)
{
g_testCount
++
;
return
;
}
static
VOID
TaskF01
(
VOID
)
{
g_testCount
++
;
return
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
freeMem
;
UINT32
freeMem1
;
UINT32
freeMem2
;
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk128A"
;
task1
.
usTaskPrio
=
TASK_PRIO_TEST
-
1
;
task1
.
uwResved
=
LOS_TASK_STATUS_DETACHED
;
g_testCount
=
0
;
freeMem
=
GetfreeMemSize
(
m_aucSysMem0
);
LOS_TaskLock
();
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
0
,
g_testCount
);
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF02
;
task1
.
pcName
=
"Tsk128B"
;
task1
.
usTaskPrio
=
TASK_PRIO_TEST
-
3
;
// TASK_PRIO_TEST - 3, Set task prio.
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
0
,
g_testCount
);
LOS_TaskUnlock
();
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
2
,
g_testCount
);
// 2, Here, assert that g_testCount is equal to 2.
LOS_TaskResRecycle
();
freeMem2
=
GetfreeMemSize
(
m_aucSysMem0
);
ICUNIT_ASSERT_EQUAL
(
freeMem2
,
freeMem
,
freeMem2
);
return
LOS_OK
;
}
VOID
ItLosTask128
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask128"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
utils/los_compiler.h
浏览文件 @
b9830c61
...
...
@@ -351,7 +351,7 @@ typedef volatile INT64 Atomic64;
#endif
#ifndef LOS_NOK
#define LOS_NOK
1U
#define LOS_NOK
(UINT32)(-1)
#endif
#define OS_FAIL 1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录