Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos M
提交
021e5299
K
Kernel Liteos M
项目概览
OpenHarmony
/
Kernel Liteos M
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
未验证
提交
021e5299
编写于
2月 21, 2022
作者:
O
openharmony_ci
提交者:
Gitee
2月 21, 2022
浏览文件
操作
浏览文件
下载
差异文件
!593 feat: 支持任务栈可配置
Merge pull request !593 from zhushengle/task_stack
上级
4983542b
96cc92d0
变更
35
隐藏空白更改
内联
并排
Showing
35 changed file
with
386 addition
and
105 deletion
+386
-105
kal/cmsis/cmsis_liteos2.c
kal/cmsis/cmsis_liteos2.c
+24
-12
kal/posix/src/pthread.c
kal/posix/src/pthread.c
+29
-14
kal/posix/src/pthread_attr.c
kal/posix/src/pthread_attr.c
+15
-13
kernel/include/los_task.h
kernel/include/los_task.h
+9
-0
kernel/src/los_task.c
kernel/src/los_task.c
+41
-29
testsuites/sample/kernel/hwi/it_los_hwi_015.c
testsuites/sample/kernel/hwi/it_los_hwi_015.c
+1
-1
testsuites/sample/kernel/hwi/it_los_hwi_016.c
testsuites/sample/kernel/hwi/it_los_hwi_016.c
+1
-1
testsuites/sample/kernel/hwi/it_los_hwi_017.c
testsuites/sample/kernel/hwi/it_los_hwi_017.c
+1
-1
testsuites/sample/kernel/hwi/it_los_hwi_018.c
testsuites/sample/kernel/hwi/it_los_hwi_018.c
+1
-1
testsuites/sample/kernel/hwi/it_los_hwi_019.c
testsuites/sample/kernel/hwi/it_los_hwi_019.c
+1
-1
testsuites/sample/kernel/hwi/it_los_hwi_020.c
testsuites/sample/kernel/hwi/it_los_hwi_020.c
+2
-2
testsuites/sample/kernel/hwi/it_los_hwi_021.c
testsuites/sample/kernel/hwi/it_los_hwi_021.c
+2
-2
testsuites/sample/kernel/hwi/it_los_hwi_024.c
testsuites/sample/kernel/hwi/it_los_hwi_024.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_007.c
testsuites/sample/kernel/mux/It_los_mutex_007.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_009.c
testsuites/sample/kernel/mux/It_los_mutex_009.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_011.c
testsuites/sample/kernel/mux/It_los_mutex_011.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_012.c
testsuites/sample/kernel/mux/It_los_mutex_012.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_014.c
testsuites/sample/kernel/mux/It_los_mutex_014.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_015.c
testsuites/sample/kernel/mux/It_los_mutex_015.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_021.c
testsuites/sample/kernel/mux/It_los_mutex_021.c
+2
-2
testsuites/sample/kernel/mux/It_los_mutex_023.c
testsuites/sample/kernel/mux/It_los_mutex_023.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_024.c
testsuites/sample/kernel/mux/It_los_mutex_024.c
+1
-1
testsuites/sample/kernel/mux/It_los_mutex_026.c
testsuites/sample/kernel/mux/It_los_mutex_026.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_027.c
testsuites/sample/kernel/mux/It_los_mutex_027.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_029.c
testsuites/sample/kernel/mux/It_los_mutex_029.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_030.c
testsuites/sample/kernel/mux/It_los_mutex_030.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_031.c
testsuites/sample/kernel/mux/It_los_mutex_031.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_033.c
testsuites/sample/kernel/mux/It_los_mutex_033.c
+3
-2
testsuites/sample/kernel/mux/It_los_mutex_034.c
testsuites/sample/kernel/mux/It_los_mutex_034.c
+3
-2
testsuites/sample/kernel/queue/It_los_queue_head_032.c
testsuites/sample/kernel/queue/It_los_queue_head_032.c
+1
-1
testsuites/sample/kernel/task/BUILD.gn
testsuites/sample/kernel/task/BUILD.gn
+2
-0
testsuites/sample/kernel/task/It_los_task.c
testsuites/sample/kernel/task/It_los_task.c
+3
-0
testsuites/sample/kernel/task/It_los_task.h
testsuites/sample/kernel/task/It_los_task.h
+2
-0
testsuites/sample/kernel/task/It_los_task_129.c
testsuites/sample/kernel/task/It_los_task_129.c
+78
-0
testsuites/sample/kernel/task/It_los_task_130.c
testsuites/sample/kernel/task/It_los_task_130.c
+139
-0
未找到文件。
kal/cmsis/cmsis_liteos2.c
浏览文件 @
021e5299
...
...
@@ -244,37 +244,49 @@ osThreadId_t osThreadNew(osThreadFunc_t func, void *argument, const osThreadAttr
{
UINT32
tid
;
UINT32
ret
;
LosTaskCB
*
pstTaskCB
=
NULL
;
TSK_INIT_PARAM_S
stTskInitParam
=
{
NULL
};
osThreadAttr_t
attrTemp
=
{
0
}
;
TSK_INIT_PARAM_S
stTskInitParam
=
{
0
};
UINT16
priority
;
if
(
OS_INT_ACTIVE
||
(
func
==
NULL
))
{
return
(
osThreadId_t
)
NULL
;
}
priority
=
attr
?
LOS_PRIORITY
(
attr
->
priority
)
:
LOSCFG_BASE_CORE_TSK_DEFAULT_PRIO
;
if
(
attr
==
NULL
)
{
attrTemp
.
priority
=
osPriorityNormal
,
attr
=
&
attrTemp
;
}
priority
=
LOS_PRIORITY
(
attr
->
priority
);
if
(
!
ISVALID_LOS_PRIORITY
(
priority
))
{
/* unsupported priority */
return
(
osThreadId_t
)
NULL
;
}
stTskInitParam
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
func
;
stTskInitParam
.
uwArg
=
(
UINT32
)
argument
;
stTskInitParam
.
uwStackSize
=
attr
?
attr
->
stack_size
:
LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
;
stTskInitParam
.
pcName
=
(
CHAR
*
)(
attr
?
attr
->
name
:
"[NULL]"
);
stTskInitParam
.
usTaskPrio
=
priority
;
if
((
attr
!=
NULL
)
&&
(
attr
->
attr_bits
==
osThreadJoinable
))
{
if
((
attr
->
stack_mem
!=
NULL
)
&&
(
attr
->
stack_size
!=
0
))
{
stTskInitParam
.
stackAddr
=
(
UINTPTR
)
attr
->
stack_mem
;
stTskInitParam
.
uwStackSize
=
attr
->
stack_size
;
}
else
if
(
attr
->
stack_size
!=
0
)
{
stTskInitParam
.
uwStackSize
=
attr
->
stack_size
;
}
else
{
stTskInitParam
.
uwStackSize
=
LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
;
}
if
(
attr
->
name
!=
NULL
)
{
stTskInitParam
.
pcName
=
(
char
*
)
attr
->
name
;
}
else
{
stTskInitParam
.
pcName
=
"CmsisTask"
;
}
if
(
attr
->
attr_bits
==
osThreadJoinable
)
{
stTskInitParam
.
uwResved
=
LOS_TASK_ATTR_JOINABLE
;
}
stTskInitParam
.
usTaskPrio
=
priority
;
ret
=
LOS_TaskCreate
(
&
tid
,
&
stTskInitParam
);
if
(
ret
!=
LOS_OK
)
{
return
(
osThreadId_t
)
NULL
;
}
pstTaskCB
=
OS_TCB_FROM_TID
(
tid
);
return
(
osThreadId_t
)
pstTaskCB
;
return
(
osThreadId_t
)
OS_TCB_FROM_TID
(
tid
);
}
const
char
*
osThreadGetName
(
osThreadId_t
thread_id
)
...
...
kal/posix/src/pthread.c
浏览文件 @
021e5299
...
...
@@ -92,27 +92,23 @@ static inline bool IsPthread(pthread_t thread)
return
true
;
}
static
int
PthreadCreateAttrInit
(
const
pthread_attr_t
*
attr
,
void
*
(
*
startRoutine
)(
void
*
),
void
*
arg
,
TSK_INIT_PARAM_S
*
taskInitParam
)
static
int
PthreadAttrCheck
(
const
pthread_attr_t
*
threadAttr
,
TSK_INIT_PARAM_S
*
taskInitParam
)
{
const
pthread_attr_t
*
threadAttr
=
attr
;
INT32
ret
;
struct
sched_param
schedParam
=
{
0
};
INT32
policy
=
0
;
pthread_attr_t
attrTmp
;
INT32
ret
;
if
(
!
attr
)
{
(
VOID
)
pthread_attr_init
(
&
attrTmp
);
threadAttr
=
&
attrTmp
;
}
if
(
threadAttr
->
stackaddr_set
!=
0
)
{
return
ENOTSUP
;
}
if
(
threadAttr
->
stacksize
<
PTHREAD_STACK_MIN
)
{
return
EINVAL
;
}
taskInitParam
->
uwStackSize
=
threadAttr
->
stacksize
;
if
((
threadAttr
->
stackaddr_set
!=
0
)
&&
(
threadAttr
->
stacksize_set
!=
0
))
{
taskInitParam
->
stackAddr
=
(
UINTPTR
)
threadAttr
->
stackaddr
;
}
if
(
threadAttr
->
stacksize_set
!=
0
)
{
taskInitParam
->
uwStackSize
=
threadAttr
->
stacksize
;
}
else
{
taskInitParam
->
uwStackSize
=
LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
;
}
if
(
threadAttr
->
inheritsched
==
PTHREAD_EXPLICIT_SCHED
)
{
taskInitParam
->
usTaskPrio
=
(
UINT16
)
threadAttr
->
schedparam
.
sched_priority
;
}
else
if
(
IsPthread
(
pthread_self
()))
{
...
...
@@ -124,6 +120,25 @@ static int PthreadCreateAttrInit(const pthread_attr_t *attr, void *(*startRoutin
}
else
{
taskInitParam
->
usTaskPrio
=
(
UINT16
)
threadAttr
->
schedparam
.
sched_priority
;
}
return
0
;
}
static
int
PthreadCreateAttrInit
(
const
pthread_attr_t
*
attr
,
void
*
(
*
startRoutine
)(
void
*
),
void
*
arg
,
TSK_INIT_PARAM_S
*
taskInitParam
)
{
const
pthread_attr_t
*
threadAttr
=
attr
;
pthread_attr_t
attrTmp
;
INT32
ret
;
if
(
attr
==
NULL
)
{
(
VOID
)
pthread_attr_init
(
&
attrTmp
);
threadAttr
=
&
attrTmp
;
}
ret
=
PthreadAttrCheck
(
threadAttr
,
taskInitParam
);
if
(
ret
!=
0
)
{
return
ret
;
}
PthreadData
*
pthreadData
=
(
PthreadData
*
)
malloc
(
sizeof
(
PthreadData
));
if
(
pthreadData
==
NULL
)
{
...
...
kal/posix/src/pthread_attr.c
浏览文件 @
021e5299
...
...
@@ -219,30 +219,32 @@ int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stackSize)
attr
->
stacksize_set
=
1
;
attr
->
stacksize
=
stackSize
;
return
0
;
}
int
pthread_attr_setstack
(
pthread_attr_t
*
attr
,
void
*
stackAddr
,
size_t
stackSize
)
{
(
void
)
attr
;
(
void
)
stackAddr
;
(
void
)
stackSize
;
PRINT_ERR
(
"%s: Don't support the pthread stack func currently!
\n
"
,
__FUNCTION__
);
errno
=
ENOSYS
;
if
((
attr
==
NULL
)
||
(
stackAddr
==
NULL
)
||
(
stackSize
<
PTHREAD_STACK_MIN
))
{
return
EINVAL
;
}
return
-
1
;
attr
->
stacksize_set
=
1
;
attr
->
stacksize
=
stackSize
;
attr
->
stackaddr_set
=
1
;
attr
->
stackaddr
=
stackAddr
;
return
0
;
}
int
pthread_attr_getstack
(
const
pthread_attr_t
*
attr
,
void
**
stackAddr
,
size_t
*
stackSize
)
{
(
void
)
attr
;
(
void
)
stackAddr
;
(
void
)
stackSize
;
PRINT_ERR
(
"%s: Don't support the pthread stack func currently!
\n
"
,
__FUNCTION__
);
errno
=
ENOSYS
;
if
((
attr
==
NULL
)
||
(
stackAddr
==
NULL
)
||
(
stackSize
==
NULL
)
||
!
attr
->
stacksize_set
||
!
attr
->
stackaddr_set
)
{
return
EINVAL
;
}
return
-
1
;
*
stackAddr
=
attr
->
stackaddr
;
*
stackSize
=
attr
->
stacksize
;
return
0
;
}
int
pthread_attr_getstacksize
(
const
pthread_attr_t
*
attr
,
size_t
*
stackSize
)
...
...
kernel/include/los_task.h
浏览文件 @
021e5299
...
...
@@ -457,6 +457,7 @@ typedef struct tagTskInitParam {
TSK_ENTRY_FUNC
pfnTaskEntry
;
/**< Task entrance function */
UINT16
usTaskPrio
;
/**< Task priority */
UINT32
uwArg
;
/**< Task parameters */
UINTPTR
stackAddr
;
/**< Task satck memory */
UINT32
uwStackSize
;
/**< Task stack size */
CHAR
*
pcName
;
/**< Task name */
UINT32
uwResved
;
/**< Reserved */
...
...
@@ -1276,6 +1277,14 @@ extern UINT32 LOS_TaskDetach(UINT32 taskID);
*/
#define OS_TASK_STATUS_EXIT 0x0100
/**
* @ingroup los_task
* Flag that indicates the task or task control block status.
*
* Task stack allocated by the system.
*/
#define OS_TASK_FLAG_STACK_FREE 0x0800
/**
* @ingroup los_task
* Flag that indicates the task property.
...
...
kernel/src/los_task.c
浏览文件 @
021e5299
...
...
@@ -126,19 +126,28 @@ STATIC_INLINE UINT32 OsCheckTaskIDValid(UINT32 taskID)
return
ret
;
}
STATIC
INLINE
VOID
OsInsertTCBToFreeList
(
LosTaskCB
*
taskCB
)
{
UINT32
taskID
=
taskCB
->
taskID
;
(
VOID
)
memset_s
(
taskCB
,
sizeof
(
LosTaskCB
),
0
,
sizeof
(
LosTaskCB
));
taskCB
->
taskID
=
taskID
;
taskCB
->
taskStatus
=
OS_TASK_STATUS_UNUSED
;
LOS_ListAdd
(
&
g_losFreeTask
,
&
taskCB
->
pendList
);
}
STATIC
VOID
OsRecycleTaskResources
(
LosTaskCB
*
taskCB
,
UINTPTR
*
stackPtr
)
{
if
(
!
(
taskCB
->
taskStatus
&
OS_TASK_STATUS_EXIT
))
{
LOS_ListAdd
(
&
g_losFreeTask
,
&
taskCB
->
pendList
);
taskCB
->
taskStatus
=
OS_TASK_STATUS_UNUSED
;
}
if
(
taskCB
->
topOfStack
!=
0
)
{
if
((
taskCB
->
taskStatus
&
OS_TASK_FLAG_STACK_FREE
)
&&
(
taskCB
->
topOfStack
!=
0
))
{
#if (LOSCFG_EXC_HARDWARE_STACK_PROTECTION == 1)
*
stackPtr
=
taskCB
->
topOfStack
-
OS_TASK_STACK_PROTECT_SIZE
;
#else
*
stackPtr
=
taskCB
->
topOfStack
;
#endif
taskCB
->
topOfStack
=
(
UINT32
)
NULL
;
taskCB
->
taskStatus
&=
~
OS_TASK_FLAG_STACK_FREE
;
}
if
(
!
(
taskCB
->
taskStatus
&
OS_TASK_STATUS_EXIT
))
{
OsInsertTCBToFreeList
(
taskCB
);
}
}
...
...
@@ -667,10 +676,9 @@ LITE_OS_SEC_TEXT_INIT STATIC_INLINE UINT32 OsTaskInitParamCheck(TSK_INIT_PARAM_S
return
LOS_OK
;
}
LITE_OS_SEC_TEXT_INIT
UINT32
OsNewTaskInit
(
LosTaskCB
*
taskCB
,
TSK_INIT_PARAM_S
*
taskInitParam
,
VOID
*
topOfStack
)
STATIC
UINT32
OsNewTaskInit
(
LosTaskCB
*
taskCB
,
TSK_INIT_PARAM_S
*
taskInitParam
)
{
taskCB
->
arg
=
taskInitParam
->
uwArg
;
taskCB
->
topOfStack
=
(
UINT32
)(
UINTPTR
)
topOfStack
;
taskCB
->
stackSize
=
taskInitParam
->
uwStackSize
;
taskCB
->
taskSem
=
NULL
;
taskCB
->
taskMux
=
NULL
;
...
...
@@ -695,9 +703,30 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsNewTaskInit(LosTaskCB *taskCB, TSK_INIT_PARAM_S *
LOS_ListInit
(
&
taskCB
->
joinList
);
}
if
(
taskInitParam
->
stackAddr
==
(
UINTPTR
)
NULL
)
{
#if (LOSCFG_EXC_HARDWARE_STACK_PROTECTION == 1)
UINT32
stackSize
=
taskCB
->
stackSize
+
OS_TASK_STACK_PROTECT_SIZE
;
UINTPTR
stackPtr
=
(
UINTPTR
)
LOS_MemAllocAlign
(
OS_TASK_STACK_ADDR
,
stackSize
,
OS_TASK_STACK_PROTECT_SIZE
);
taskCB
->
topOfStack
=
stackPtr
+
OS_TASK_STACK_PROTECT_SIZE
;
#else
taskCB
->
topOfStack
=
(
UINTPTR
)
LOS_MemAllocAlign
(
OS_TASK_STACK_ADDR
,
taskCB
->
stackSize
,
LOSCFG_STACK_POINT_ALIGN_SIZE
);
#endif
if
(
taskCB
->
topOfStack
==
(
UINTPTR
)
NULL
)
{
return
LOS_ERRNO_TSK_NO_MEMORY
;
}
taskCB
->
taskStatus
|=
OS_TASK_FLAG_STACK_FREE
;
}
else
{
taskCB
->
topOfStack
=
LOS_Align
(
taskInitParam
->
stackAddr
,
LOSCFG_STACK_POINT_ALIGN_SIZE
);
taskCB
->
stackSize
=
ALIGN
(
taskCB
->
stackSize
,
OS_TASK_STACK_ADDR_ALIGN
);
}
/* initialize the task stack, write magic num to stack top */
(
VOID
)
memset_s
((
VOID
*
)
taskCB
->
topOfStack
,
taskCB
->
stackSize
,
(
INT32
)(
OS_TASK_STACK_INIT
&
0xFF
),
taskCB
->
stackSize
);
*
((
UINT32
*
)
taskCB
->
topOfStack
)
=
OS_TASK_MAGIC_WORD
;
taskCB
->
stackPointer
=
ArchTskStackInit
(
taskCB
->
taskID
,
taskCB
->
stackSize
,
(
VOID
*
)
taskCB
->
topOfStack
);
return
LOS_OK
;
}
...
...
@@ -711,7 +740,6 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsNewTaskInit(LosTaskCB *taskCB, TSK_INIT_PARAM_S *
LITE_OS_SEC_TEXT_INIT
UINT32
LOS_TaskCreateOnly
(
UINT32
*
taskID
,
TSK_INIT_PARAM_S
*
taskInitParam
)
{
UINT32
intSave
;
VOID
*
topOfStack
=
NULL
;
LosTaskCB
*
taskCB
=
NULL
;
UINT32
retVal
;
...
...
@@ -734,29 +762,13 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_TaskCreateOnly(UINT32 *taskID, TSK_INIT_PARAM_S
taskCB
=
OS_TCB_FROM_PENDLIST
(
LOS_DL_LIST_FIRST
(
&
g_losFreeTask
));
LOS_ListDelete
(
LOS_DL_LIST_FIRST
(
&
g_losFreeTask
));
LOS_IntRestore
(
intSave
);
#if (LOSCFG_EXC_HARDWARE_STACK_PROTECTION == 1)
UINTPTR
stackPtr
=
(
UINTPTR
)
LOS_MemAllocAlign
(
OS_TASK_STACK_ADDR
,
taskInitParam
->
uwStackSize
+
OS_TASK_STACK_PROTECT_SIZE
,
OS_TASK_STACK_PROTECT_SIZE
);
topOfStack
=
(
VOID
*
)(
stackPtr
+
OS_TASK_STACK_PROTECT_SIZE
);
#else
topOfStack
=
(
VOID
*
)
LOS_MemAllocAlign
(
OS_TASK_STACK_ADDR
,
taskInitParam
->
uwStackSize
,
LOSCFG_STACK_POINT_ALIGN_SIZE
);
#endif
if
(
topOfStack
==
NULL
)
{
retVal
=
OsNewTaskInit
(
taskCB
,
taskInitParam
);
if
(
retVal
!=
LOS_OK
)
{
intSave
=
LOS_IntLock
();
LOS_ListAdd
(
&
g_losFreeTask
,
&
taskCB
->
pendList
);
OsInsertTCBToFreeList
(
taskCB
);
LOS_IntRestore
(
intSave
);
return
LOS_ERRNO_TSK_NO_MEMORY
;
}
/* initialize the task stack, write magic num to stack top */
(
VOID
)
memset_s
(
topOfStack
,
taskInitParam
->
uwStackSize
,
(
INT32
)(
OS_TASK_STACK_INIT
&
0xFF
),
taskInitParam
->
uwStackSize
);
retVal
=
OsNewTaskInit
(
taskCB
,
taskInitParam
,
topOfStack
);
if
(
retVal
!=
LOS_OK
)
{
return
retVal
;
}
...
...
@@ -1110,7 +1122,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_TaskDelete(UINT32 taskID)
if
(
taskCB
->
taskStatus
&
OS_TASK_STATUS_RUNNING
)
{
if
(
!
(
taskCB
->
taskStatus
&
OS_TASK_STATUS_EXIT
))
{
taskCB
->
taskStatus
=
OS_TASK_STATUS_UNUSED
;
taskCB
->
taskStatus
|
=
OS_TASK_STATUS_UNUSED
;
OsRunningTaskDelete
(
taskID
,
taskCB
);
}
LOS_IntRestore
(
intSave
);
...
...
testsuites/sample/kernel/hwi/it_los_hwi_015.c
浏览文件 @
021e5299
...
...
@@ -67,7 +67,7 @@ static UINT32 Testcase(VOID)
HwiIrqParam
irqParam
;
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"Tsk015A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_016.c
浏览文件 @
021e5299
...
...
@@ -102,7 +102,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTsk016A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_017.c
浏览文件 @
021e5299
...
...
@@ -66,7 +66,7 @@ EXIT:
static
VOID
HwiF01
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
TestHwiClear
(
HWI_NUM_TEST
);
...
...
testsuites/sample/kernel/hwi/it_los_hwi_018.c
浏览文件 @
021e5299
...
...
@@ -73,7 +73,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTsk018A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_019.c
浏览文件 @
021e5299
...
...
@@ -82,7 +82,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTsk019A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_020.c
浏览文件 @
021e5299
...
...
@@ -52,7 +52,7 @@ EXIT:
static
VOID
HwiF01
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
TestHwiClear
(
HWI_NUM_TEST
);
...
...
@@ -100,7 +100,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTsk020A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_021.c
浏览文件 @
021e5299
...
...
@@ -47,7 +47,7 @@ EXIT:
static
VOID
HwiF01
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
TestHwiClear
(
HWI_NUM_TEST
);
...
...
@@ -92,7 +92,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTsk021A"
;
...
...
testsuites/sample/kernel/hwi/it_los_hwi_024.c
浏览文件 @
021e5299
...
...
@@ -86,7 +86,7 @@ static UINT32 Testcase(VOID)
(
void
)
memset_s
(
&
irqParam
,
sizeof
(
HwiIrqParam
),
0
,
sizeof
(
HwiIrqParam
));
irqParam
.
pDevId
=
0
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
task
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task
.
pcName
=
"HwiTask024A"
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_007.c
浏览文件 @
021e5299
...
...
@@ -74,8 +74,8 @@ static VOID TaskF02(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task2
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
TSK_INIT_PARAM_S
task2
=
{
0
}
;
g_testCount
=
0
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_009.c
浏览文件 @
021e5299
...
...
@@ -46,7 +46,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_011.c
浏览文件 @
021e5299
...
...
@@ -55,7 +55,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_012.c
浏览文件 @
021e5299
...
...
@@ -59,7 +59,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_014.c
浏览文件 @
021e5299
...
...
@@ -54,8 +54,8 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task2
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
TSK_INIT_PARAM_S
task2
=
{
0
}
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_015.c
浏览文件 @
021e5299
...
...
@@ -61,7 +61,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_021.c
浏览文件 @
021e5299
...
...
@@ -56,7 +56,7 @@ static VOID TaskF01(void)
VOID
TaskF02
(
void
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
;
TSK_INIT_PARAM_S
task1
=
{
0
}
;
g_testCount
++
;
...
...
@@ -83,7 +83,7 @@ VOID TaskF02(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_023.c
浏览文件 @
021e5299
...
...
@@ -57,7 +57,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_024.c
浏览文件 @
021e5299
...
...
@@ -47,7 +47,7 @@ static VOID TaskF01(void)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_026.c
浏览文件 @
021e5299
...
...
@@ -85,7 +85,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
...
...
@@ -144,7 +145,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
...
...
testsuites/sample/kernel/mux/It_los_mutex_027.c
浏览文件 @
021e5299
...
...
@@ -78,7 +78,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -123,7 +124,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
void
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_029.c
浏览文件 @
021e5299
...
...
@@ -78,7 +78,8 @@ static VOID TaskFuncC(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -128,7 +129,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_030.c
浏览文件 @
021e5299
...
...
@@ -73,7 +73,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -121,7 +122,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_031.c
浏览文件 @
021e5299
...
...
@@ -76,7 +76,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -127,7 +128,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_033.c
浏览文件 @
021e5299
...
...
@@ -81,7 +81,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -123,7 +124,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/mux/It_los_mutex_034.c
浏览文件 @
021e5299
...
...
@@ -79,7 +79,8 @@ static VOID TaskFuncB(VOID)
static
VOID
TaskFuncA
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
,
task2
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
=
{
0
};
g_testCount
++
;
ICUNIT_ASSERT_EQUAL_VOID
(
g_testCount
,
1
,
g_testCount
);
// 1, Here, assert that g_testCount is equal to 1.
...
...
@@ -121,7 +122,7 @@ static VOID TaskFuncA(VOID)
static
UINT32
Testcase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task
;
TSK_INIT_PARAM_S
task
=
{
0
}
;
g_testCount
=
0
;
ret
=
LOS_MuxCreate
(
&
g_mutexTest1
);
...
...
testsuites/sample/kernel/queue/It_los_queue_head_032.c
浏览文件 @
021e5299
...
...
@@ -69,7 +69,7 @@ static UINT32 Testcase(VOID)
CHAR
buff1
[
8
]
=
"UniDSP"
;
TSK_INIT_PARAM_S
task1
=
{
0
};
TSK_INIT_PARAM_S
task2
;
TSK_INIT_PARAM_S
task2
=
{
0
}
;
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
ItQueueHead032F01
;
task1
.
pcName
=
"TskName1"
;
...
...
testsuites/sample/kernel/task/BUILD.gn
浏览文件 @
021e5299
...
...
@@ -155,6 +155,8 @@ static_library("test_task") {
"It_los_task_126.c",
"It_los_task_127.c",
"It_los_task_128.c",
"It_los_task_129.c",
"It_los_task_130.c",
]
configs += [ "//kernel/liteos_m/testsuites:include" ]
...
...
testsuites/sample/kernel/task/It_los_task.c
浏览文件 @
021e5299
...
...
@@ -128,6 +128,9 @@ VOID ItSuiteLosTask()
ItLosTask126
();
ItLosTask127
();
ItLosTask128
();
ItLosTask129
();
ItLosTask130
();
#if (LOS_KERNEL_TEST_FULL == 1)
ItLosTask039
();
ItLosTask040
();
...
...
testsuites/sample/kernel/task/It_los_task.h
浏览文件 @
021e5299
...
...
@@ -183,6 +183,8 @@ extern VOID ItLosTask125(VOID);
extern
VOID
ItLosTask126
(
VOID
);
extern
VOID
ItLosTask127
(
VOID
);
extern
VOID
ItLosTask128
(
VOID
);
extern
VOID
ItLosTask129
(
VOID
);
extern
VOID
ItLosTask130
(
VOID
);
#ifdef __cplusplus
#if __cplusplus
...
...
testsuites/sample/kernel/task/It_los_task_129.c
0 → 100644
浏览文件 @
021e5299
/*
* Copyright (c) 2021-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
VOID
*
TaskDeatchf01
(
void
*
argument
)
{
g_testCount
++
;
return
NULL
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
ret
;
UINT32
taskID
;
TSK_INIT_PARAM_S
osTaskInitParam
=
{
0
};
VOID
*
taskStack
=
NULL
;
g_testCount
=
0
;
osTaskInitParam
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskDeatchf01
;
osTaskInitParam
.
uwStackSize
=
OS_TSK_TEST_STACK_SIZE
;
osTaskInitParam
.
pcName
=
"deatch"
;
osTaskInitParam
.
usTaskPrio
=
TASK_PRIO_TEST
-
5
;
/* 5: Relatively high priority */
osTaskInitParam
.
uwResved
=
LOS_TASK_ATTR_JOINABLE
;
taskStack
=
LOS_MemAlloc
(
OS_TASK_STACK_ADDR
,
osTaskInitParam
.
uwStackSize
);
osTaskInitParam
.
stackAddr
=
(
UINTPTR
)
taskStack
;
ICUNIT_ASSERT_NOT_EQUAL
(
osTaskInitParam
.
stackAddr
,
0
,
osTaskInitParam
.
stackAddr
);
ret
=
LOS_TaskCreate
(
&
taskID
,
&
osTaskInitParam
);
ICUNIT_ASSERT_EQUAL
(
ret
,
0
,
ret
);
ICUNIT_ASSERT_EQUAL
(
g_testCount
,
1
,
g_testCount
);
ret
=
LOS_TaskJoin
(
taskID
,
NULL
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
ret
=
LOS_TaskDelete
(
taskID
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_ERRNO_TSK_NOT_CREATED
,
ret
);
ret
=
LOS_MemFree
(
OS_TASK_STACK_ADDR
,
taskStack
);
ICUNIT_ASSERT_EQUAL
(
ret
,
LOS_OK
,
ret
);
return
LOS_OK
;
}
VOID
ItLosTask129
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask129"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL0
,
TEST_FUNCTION
);
}
testsuites/sample/kernel/task/It_los_task_130.c
0 → 100644
浏览文件 @
021e5299
/*
* 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
VOID
TaskF02
(
VOID
)
{
UINT32
ret
;
ICUNIT_GOTO_EQUAL
(
g_testCount
,
2
,
g_testCount
,
EXIT1
);
// 2, Here, assert that g_testCount is equal to 2.
g_testCount
++
;
ret
=
LOS_TaskResume
(
g_testTaskID01
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_OK
,
ret
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
4
,
g_testCount
,
EXIT2
);
// 4, Here, assert that g_testCount is equal to 4.
g_testCount
++
;
LOS_TaskDelete
(
g_testTaskID02
);
return
;
EXIT1:
LOS_TaskDelete
(
g_testTaskID01
);
EXIT2:
LOS_TaskDelete
(
g_testTaskID02
);
return
;
}
static
VOID
TaskF01
(
VOID
)
{
UINT32
ret
;
ICUNIT_GOTO_EQUAL
(
g_testCount
,
0
,
g_testCount
,
EXIT2
);
g_testCount
++
;
ret
=
LOS_TaskSuspend
(
g_testTaskID01
);
ICUNIT_ASSERT_EQUAL_VOID
(
ret
,
LOS_OK
,
ret
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
3
,
g_testCount
,
EXIT1
);
// 3, Here, assert that g_testCount is equal to 3.
g_testCount
++
;
LOS_TaskDelete
(
g_testTaskID01
);
return
;
EXIT1:
LOS_TaskDelete
(
g_testTaskID02
);
EXIT2:
LOS_TaskDelete
(
g_testTaskID01
);
return
;
}
static
UINT32
TestCase
(
VOID
)
{
UINT32
ret
;
TSK_INIT_PARAM_S
task1
=
{
0
};
VOID
*
taskStack1
=
NULL
;
VOID
*
taskStack2
=
NULL
;
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF01
;
task1
.
uwStackSize
=
TASK_STACK_SIZE_TEST
;
task1
.
pcName
=
"Tsk058A"
;
task1
.
usTaskPrio
=
TASK_PRIO_TEST
-
2
;
// 2, set new task priority, it is higher than the current task.
g_testCount
=
0
;
taskStack1
=
LOS_MemAlloc
(
OS_TASK_STACK_ADDR
,
task1
.
uwStackSize
);
task1
.
stackAddr
=
(
UINTPTR
)
taskStack1
;
ICUNIT_ASSERT_NOT_EQUAL
(
task1
.
stackAddr
,
0
,
task1
.
stackAddr
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID01
,
&
task1
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
1
,
g_testCount
,
EXIT
);
g_testCount
++
;
task1
.
pfnTaskEntry
=
(
TSK_ENTRY_FUNC
)
TaskF02
;
task1
.
pcName
=
"Tsk058B"
;
task1
.
usTaskPrio
=
TASK_PRIO_TEST
-
1
;
taskStack2
=
LOS_MemAlloc
(
OS_TASK_STACK_ADDR
,
task1
.
uwStackSize
);
task1
.
stackAddr
=
(
UINTPTR
)
taskStack2
;
ICUNIT_GOTO_NOT_EQUAL
(
task1
.
stackAddr
,
0
,
task1
.
stackAddr
,
EXIT
);
ret
=
LOS_TaskCreate
(
&
g_testTaskID02
,
&
task1
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
g_testCount
,
5
,
g_testCount
,
EXIT
);
// 5, Here, assert that g_testCount is equal to 5.
ret
=
LOS_MemFree
(
OS_TASK_STACK_ADDR
,
taskStack1
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
ret
=
LOS_MemFree
(
OS_TASK_STACK_ADDR
,
taskStack2
);
ICUNIT_GOTO_EQUAL
(
ret
,
LOS_OK
,
ret
,
EXIT
);
return
LOS_OK
;
EXIT:
LOS_TaskDelete
(
g_testTaskID01
);
(
VOID
)
LOS_MemFree
(
OS_TASK_STACK_ADDR
,
taskStack1
);
(
VOID
)
LOS_MemFree
(
OS_TASK_STACK_ADDR
,
taskStack2
);
return
LOS_OK
;
}
VOID
ItLosTask130
(
VOID
)
// IT_Layer_ModuleORFeature_No
{
TEST_ADD_CASE
(
"ItLosTask130"
,
TestCase
,
TEST_LOS
,
TEST_TASK
,
TEST_LEVEL1
,
TEST_FUNCTION
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录