Docs API - Shaofa/AliOS-Things-Certification-Manual GitHub Wiki

AliOS Things Kernel 规范

内存管理

动态内存分配与释放

测试用例编号 AOS-1-1
测试用例 动态内存分配与释放
测试目的 验证aos_malloc/aos_free能否正常分配与释放堆内存
测试属性 必选 | P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_malloc分配堆内存 512字节
-读写该512字节堆内存
-调用aos_free释放该512字节内存
预期结果 -分配和释放堆内存成功
-读写分配的堆内存成功
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

动态内存分配与释放并初始化为0

测试用例编号 AOS-1-2
测试用例 动态内存分配与释放并初始化为0
测试目的 验证aos_zalloc能否正常分配与释放堆内存并将分配的内存初始化为0
测试属性 必选 | P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -用aos_zalloc分配堆内存512 Bytes
-该512 Bytes堆内存,判断是否为0
-用aos_free释放该内存
预期结果 -配和释放堆内存成功
-配的512 Bytes内存被初始化为0
-无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

动态扩大分配的堆内存

测试用例编号 AOS-1-3
测试用例 动态扩大分配的堆内存
测试目的 验证aos_realloc能否正常扩大堆内存大小
测试属性 必选 | P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -用aos_malloc分配堆内存512 Bytes,起始地址为A
-512 Bytes写为0x5A
-用aos_realloc将起始地址为A的512 Bytes内存块扩大为1024 Bytes
-A地址开始的512 Bytes,与0x5A比较
-写A+512地址开始的512 Bytes内存
-用aos_free释放该内存
预期结果
-配和释放堆内存成功
-骤4读出的512 Bytes全部为0x5A
-骤5读写扩大的512 Bytes成功
-统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

动态减小分配的堆内存

测试用例编号 AOS-1-4
测试用例 动态减小分配的堆内存
测试目的 验证aos_realloc能否正常减小堆内存大小
测试属性 必选 | P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_malloc分配堆内存512 Bytes,起始地址为A
-将512 Bytes写为0x5A
-调用aos_realloc将起始地址为A的512 Bytes内存块减小为256 Bytes
-读A地址开始的256 Bytes,与0x5A比较
-调用aos_free释放该内存
预期结果 -分配和释放堆内存成功
-步骤4读出的256 Bytes全部为0x5A
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

大内存动态分配与释放

测试用例编号 AOS-1-5
测试用例 大内存动态分配与释放
测试目的 验证AliOS Things在大内存反复分配与释放时稳定工作
测试属性 必选 | P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_malloc分配堆内存1024 Bytes,起始地址为A
-起始地址为A的1024字节初始化为0x000~0x3FF
-调用aos_free释放起始地址为A的1024字节内存
-步骤1~3重复10W次
预期结果 -10W次分配和释放堆内存成功率≥99.9%
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

任务管理

创建与销毁任务

测试用例编号 AOS-1-6
测试用例 创建与销毁任务
测试目的 验证aos_task_new正确创建任务
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建任务,指定任务函数,栈空间大小为1024
-任务函数中调用aos_task_name获取任务名称并打印10次
-调用aos_task_exit退出任务
预期结果 -串口正确打印出任务名称
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

创建与销毁任务(ext)

测试用例编号 AOS-1-7
测试用例 创建与销毁任务(ext)
测试目的 验证aos_task_new_ext正确创建任务
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new_ext创建任务,指定任务函数,栈空间大小为1024
-任务函数中调用aos_task_name获取任务名称并打印10次
-调用aos_task_exit退出任务
预期结果 -串口正确打印出任务名称
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

创建任务key

测试用例编号 AOS-1-8
测试用例 创建任务key
测试目的 验证aos_task_key_create创建任务key
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建任务
-任务函数中调用aos_task_key_create创建任务key
-任务函数中调用aos_task_name获取任务名称并打印10次
-调用aos_task_exit退出任务
预期结果 -步骤2中创建的任务key非NULL
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

删除任务key

测试用例编号 AOS-1-9
测试用例 删除任务key
测试目的 验证aos_task_key_delete删除任务key
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建任务
-任务函数中调用aos_task_key_create创建任务key
-调用aos_task_key_delete删除任务key
-任务函数中调用aos_task_name获取任务名称并打印10次
-调用aos_task_exit退出任务
预期结果 -步骤2中创建的任务key非NULL
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

设置/获取任务值

测试用例编号 AOS-1-10
测试用例 设置/获取任务值
测试目的 验证aos_task_setspecific/aos_task_getspecific设置/获取任务私有值
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建任务
-任务函数中调用aos_task_key_create创建任务key
-调用aos_task_setspecific设置任务值,入参为整型全局变量A指针,值为0x5a5a
-调用aos_task_getspecific获取任务值
-修改全局变量A的值为0xa5a5
-再次调用aos_task_getspecific获取任务值
-任务函数中调用aos_task_name获取任务名称并打印10次
-调用aos_task_exit退出任务
预期结果 -步骤2中创建的任务key非NULL
-步骤4获取的任务值为0x5a5a
-步骤6获取的任务值为0xa5a5
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

创建大量任务

测试用例编号 AOS-1-11
测试用例 创建大量任务
测试目的 验证aos_task_new创建大量任务并稳定运行
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建20个任务T1~T20(任务名各不相同)
-任务T1~T20中调用aos_task_name打印任务名称
-任务T1~T20调用aos_task_exit退出任务
预期结果 -20个任务创建成功并打印出20个任务名称
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

反复创建/销毁任务

测试用例编号 AOS-1-12
测试用例 反复创建/销毁任务
测试目的 验证反复创建/销毁任务系统稳定运行
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -初始化全局变量A=0
-调用aos_sem_new创建用于同步的信号量S0,count=0
-循环体中调用aos_task_new创建任务T0
-T0中休眠100ms后调用aos_sem_signal释放信号量,count=1,A++,
-调用aos_task_exit退出任务
-循环体中调用aos_sem_wait(S0,-1)阻塞获取信号量(直到T0释放信号量)
-循环10W次任务创建与销毁
预期结果 -10W次循环结束后A=100000
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

多任务通信

互斥锁创建与销毁

测试用例编号 AOS-1-13
测试用例 互斥锁创建与销毁
测试目的 验证aos_mutex_new /aos_mutex_free互斥锁创建与销毁
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_mutex_new创建互斥锁M0
-调用aos_mutex_lock(M0, 1000)尝试上锁
-调用aos_mutex_lock(M0, 1000)尝试上锁
-调用aos_mutex_unlock(M0)解锁
-调用aos_mutex_free销毁互斥锁
预期结果 -互斥锁创建/销毁成功
-步骤2上锁成功,无阻塞
-步骤3上锁失败,阻塞时间约1000ms
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用互斥锁任务同步

测试用例编号 AOS-1-14
测试用例 使用互斥锁任务同步
测试目的 验证aos_mutex_lock /aos_mutex_unlock互斥锁任务同步
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -初始化全局变量signed int A=0
-调用aos_mutex_new创建互斥锁M0
-调用aos_task_new创建5个任务T1~T5
-任务T1~T2上锁,全局变量A--,解锁,共循环10W次,aos_task_exit
-任务T3~T5上锁,全局变量A++,解锁,共循环10W次,aos_task_exit
-等待T1~T5任务退出,打印全局变量A的值
-调用aos_task_free销毁互斥锁
预期结果 -任务T1~T5创建成功
-互斥锁M0创建/销毁成功
-步骤6全局变量A=100000
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

信号量创建与销毁

测试用例编号 AOS-1-15
测试用例 信号量创建与销毁
测试目的 验证aos_sem_new /aos_sem_free互斥锁创建与销毁
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_sem_new创建信号量S0,count=0
-调用aos_sem_wait(S0,1000)
-调用aos_sem_signal(S0)
-调用aos_sem_wait(S0,1000)
-调用aos_sem_free销毁信号量S0
预期结果 -信号量创建/销毁成功
-步骤2获取信号量失败,阻塞1000ms
-步骤4获取信号量成功,无阻塞
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用信号量任务同步

测试用例编号 AOS-1-16
测试用例 使用信号量任务同步
测试目的 验证aos_sem_wait /aos_sem_signal互斥锁任务同步
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_sem_new创建信号量S0,count=-9
-调用aos_task_new创建10个任务T1~T10
-任务T1~T10调用aos_msleep(1000),aos_sem_signal(S0)释放信号量,aos_task_exit
-父任务调用aos_sem_wait(S0,-1)等待10个信号量被释放
-调用aos_sem_free销毁信号量对象
预期结果 -任务T1~T10创建成功
-信号量S0创建/销毁成功
-步骤4阻塞10s后退出
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

队列创建与销毁

测试用例编号 AOS-1-17
测试用例 队列创建与销毁
测试目的 验证aos_queue_new /aos_queue_free创建与销毁队列
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 一个设备串口连接PC
测试预置条件 设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤 -调用aos_queue_new创建队列Q0
-调用aos_queue_recv(Q0,1000,msg,size)从队列Q0接收数据,阻塞1000ms
-调用aos_queue_send(Q0,msg,size)向队列Q0发送数据
-调用aos_queue_recv(Q0,1000,msg,size)从队列Q0接收数据,阻塞1000ms
-调用aos_queeu_free销毁队列Q0
预期结果 -队列创建/销毁成功
-步骤2从队列Q0接收超时失败,阻塞1000ms
-步骤4从队列Q0接收成功,无阻塞
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用队列任务同步

测试用例编号 AOS-1-18
测试用例 使用队列任务同步
测试目的 验证aos_queue_send/aos_queue_recv多任务间数据通信
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -初始化全局变量signed int A=0
-调用aos_queue_new创建队列Q1~Q4
-调用aos_task_new创建任务T1~T5
-任务T2从队列Q1阻塞接收,接收到之后将数据发送大队列Q2
-任务T3从队列Q2阻塞接收,接收到之后将数据发送大队列Q3
-任务T4从队列Q3阻塞接收,接收到之后将数据发送大队列Q4
-任务T5从队列Q4阻塞接收,接收到之后将数据打印
-任务T1以10ms为周期向队列Q1发送数据A,A++,循环10W次
-调用aos_queue_free销毁队列Q1~Q4
预期结果 -任务T1~T5创建成功
-队列Q1~Q4创建/销毁成功
-任务T5最后一次打印全局变量A=100000
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

定时器

定时器创建与销毁

测试用例编号 AOS-1-19
测试用例 定时器创建与销毁
测试目的 验证aos_timer_new /aos_timer_free创建与销毁定时器
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_timer_new创建定时器TM0,定时周期1000ms,repeat=1
-定时器TM0回调函数中调用aos_now打印当前时刻
-调用aos_timer_start(TM0)启动定时器TM0
-10s后调用aos_tmier_stop(TM0)停止定时器TM0
-10s后调用aos_timer_free(TM0)销毁定时器TM0
预期结果 -定时器创建/销毁成功
-定时器start之前不会触发回调
-定时器start之后,stop之前每隔约1000ms触发回调
-定时器stop后停止运行,不再触发回调
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

定时器周期修改

测试用例编号 AOS-1-20
测试用例 定时器周期修改
测试目的 验证aos_timer_change修改定时器定时周期
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_timer_new创建定时器TM0,定时周期1000ms,repeat=1 -定时器TM0回调函数中调用aos_now打印当前时刻
-调用aos_timer_start(TM0)启动定时器TM0
-10s后调用aos_timer_change(TM0,2000)
-10s后调用aos_tmier_stop(TM0)停止定时器TM0
-调用aos_timer_free(TM0)销毁定时器TM0
预期结果 -定时器创建/销毁成功
-定时器start之前不会触发回调
-定时器start之后,先以1000ms周期触发回调,10s后以2000ms周期触发回调
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

KV

读写KV

测试用例编号 AOS-2-1
测试用例 读写KV
测试目的 验证aos_kv_set/aos_kv_get读写KV
测试属性 必选 | P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_kv_set写KV对
-调用aos_kv_get读KV对
预期结果 -读写KV对成功
-读出的value与写入的value相同
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

删除KV

测试用例编号 AOS-2-2
测试用例 删除KV
测试目的 验证aos_kv_del删除KV对
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_kv_del删除存在的KV对kv1
-调用aos_kv_get读KV对kv1,
预期结果 -步骤2读KV对失败,步骤1删除KV对成功
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

读写删稳定性

测试用例编号 AOS-2-3
测试用例 读写删稳定性
测试目的 验证aos_kv_set/aos_kv_get/aos_kv/del写读删KV对
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_kv_set增加KV对,key和value长度为255字节
-调用aso_kv_get读KV对
-调用aos_kv_del删除KV对
-步骤1~3循环10W次
预期结果 -步骤2读出的value与步骤1写入的value相同,10W次正确率100%
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

Yloop

事件注册与注销

测试用例编号 AOS-2-4
测试用例 事件注册与注销
测试目的 验证aos_register_event_filter/aos_unregister_event_filter注册/注销系统事件
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_register_event_filter注册事件EVENT0,指定事件回调CB0
-回调CB0中调用aos_loop_exit退出事件循环
-调用aos_post_event触发事件EVENT0
-调用aos_loop_run运行主事件循环
-调用aos_unregister_event_filter注销事件EVNET0
预期结果 -步骤2触发事件后,回调函数CB0被调用
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

定时任务注册/取消

测试用例编号 AOS-2-5
测试用例 定时任务注册/取消
测试目的 验证aos_post_delayed_action/aos_cancel_delayed_action注册/取消定时任务
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_post_delayed_action注册1000ms定时任务,回调为CB0
-回调CB0中调用aos_post_delayed_acion注册1000ms定时任务,回调为CB0,调用aos_cancel_delayed_action取消定时任务
-main loop等待3000ms
预期结果 -1000ms后定时任务被触发,CB0被调用
-2000ms后CB0不再被调用 系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

自定义事件循环

测试用例编号 AOS-2-6
测试用例 自定义事件循环
测试目的 验证aos_loop_init定义task的事件循环
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建新任务T0
-任务T0中调用aos_loop_init初始化T0的事件循环
-任务T0调用aos_post_delayed_action注册1000ms延时action,回调CB0中aos_loop_exit退出当前事件循环
-任务T0调用aos_loop_run开始事件循环
-任务T0中aos_loop_run返回后调用aos_loop_destroy
预期结果 -1000ms后定时任务被触发,CB0被调用,任务T0的事件循环退出
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

事件循环运行与停止

测试用例编号 AOS-2-7
测试用例 事件循环运行与停止
测试目的 验证aos_loop_run/aos_loop_exit运行/停止事件循环
测试属性 必选| P0 | 功能用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_post_delayed_action注册1000ms延时action,回调CB0中退出当前事件循环
-调用aos_loop_run开始运行当前事件循环
-aos_loop_run返回后调用aos_loop_destroy销毁事件循环
预期结果 -1000ms后定时任务被触发,CB0被调用,事件循环退出,无阻塞
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

触发大量事件

测试用例编号 AOS-2-8
测试用例 触发大量事件
测试目的 验证注册与触发大量事件系统稳定运行
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -main loop调用aos_post_delayed_action注册1000个1000ms延时action,回调为CB0
-main loop等待2000ms
预期结果 -1000ms后CB0被调用1000次
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

自定义大量事件循环

测试用例编号 AOS-2-9
测试用例 自定义大量事件循环
测试目的 验证大量事件循环正常稳定运行
测试属性 必选| P0 | 稳定性用例
测试设备 1.设备,2.串口线,3.PC
测试步骤 -调用aos_task_new创建10个任务T0~T9
-任务T0~T9分别调用aos_loop_init创建自定义事件循环,并aos_post_delayed_action注册1000ms延时action,回调CB0中退出当前事件循环
-T0~T9调用aos_loop_run运行各自事件循环等待1000ms后延时action触发
-T0~T9中aos_loop_run返回后调用aos_loop_destroy销毁事件循环
-aos_loop_run返回后调用aos_loop_destroy销毁事件循环
预期结果 -1000ms后T0~T9注册的延时action被触发,CB0被调用,T0~T9事件循环退出,无阻塞
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注
⚠️ **GitHub.com Fallback** ⚠️