LiteOS_M轻量系统XTS测试ActsSamgrTes用例中taskpool_singletask测试失败修复
·
测试分析
ActsSamgrTes测试用例taskpool_singletask_func_test.c中testSingleTask0050在测试时存在失败的情况:
../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:587:testSingleTask0050:FAIL: Expected -3 Was 0
-----------------------
5 Tests 1 Failures 0 Ignored
分析代码testSingleTask0050测试用例主要验证了全局向量 g_nodeVector 中存储的 Node 对象的数据完整性,重点在于检查ID的顺序性和名称的逆序对应关系,节点的名称是否按照特定的倒序规则与全局服务名称数组 g_serviceNameArray 对应,测试代码中在获取serviceName时是反序获取,但实际上 g_nodeVector 与 g_serviceNameArray 是一样的顺序,因此导致名称比对失败。
修改
在发送请求后添加延时,给系统留出了处理消息的时间,确保后台线程有机会执行回调函数并更新数据,从而保证断言检查的是正确的结果。
LITE_TEST_CASE(SingleTaskFuncTestSuite, testSingleTask0050, Function | MediumTest | Level2)
{
for (int i = 0; i < VECTOR_Num(&g_nodeVector); i++) {
Node *vectorAt = (Node *)VECTOR_At(&g_nodeVector, i);
if (vectorAt == NULL) {
continue;
}
TEST_ASSERT_EQUAL_INT(vectorAt->id, i + 1);
// 原版代码 g_serviceNameArray 反序取值, 测试失败
TEST_ASSERT_EQUAL_INT(strcmp(vectorAt->name, g_serviceNameArray[SERVICE_NUM - (i + 1)]), 0);
// 修改后代码,g_serviceNameArray 正序取值, 测试成功
TEST_ASSERT_EQUAL_INT(strcmp(vectorAt->name, g_serviceNameArray[i]), 0);
}
};
修改后测试结果:
新文件 1 (匹配5次)
行 708: ../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:340:testSingleTask0010:PASS
行 713: ../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:401:testSingleTask0020:PASS
行 718: ../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:460:testSingleTask0030:PASS
行 743: ../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:519:testSingleTask0040:PASS
行 744: ../../../test/xts/acts/distributed_schedule_lite/system_ability_manager_hal/src/taskpool_singletask_func_test.c:578:testSingleTask0050:PASS
-----------------------
5 Tests 0 Failures 0 Ignored
更多推荐

所有评论(0)