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