VOID copysnoopCookie(struct mbuf *from, M_SNOOP_DATA *to) { BYTE app_cookie[MBUF_APP_COOKIE_MAX_LEN]; WORD32 cooklen = 0; if((NULL == to) || (NULL == from) || (NULL == from->m_pkthdr.snoop_data)) { ROSNG_TRACE_ERROR("Invalid param !\n"); return ; } cooklen = from->m_pkthdr.snoop_data->cooklen; MEMCPY_S(app_cookie, cooklen, from->m_pkthdr.snoop_data->app_cookie, cooklen); MEMSET(to, 0 ,SIZEOF(M_SNOOP_DATA)); MEMCPY_S(to->app_cookie, cooklen, app_cookie, cooklen); to->cooklen = cooklen; return ; }给我写一个ut测试用例
时间: 2023-06-07 17:08:01 浏览: 83
好的,以下是针对这段代码的一个UT测试用例:
测试名称:test_copysnoopCookie_success
测试场景:传入有效的参数,执行函数成功复制应用层Cookie。
测试输入:
from: 模拟一个有效的mbuf结构体,其中m_pkthdr.snoop_data是一个有效的M_SNOOP_DATA结构体指针,cooklen也是一个有效的值。
to: 模拟一个有效的M_SNOOP_DATA结构体指针。
测试预期输出:
to指针指向的结构体的app_cookie和cooklen与from指针指向的结构体的对应字段值相同。
测试代码:
void test_copysnoopCookie_success() {
// 准备输入参数
struct mbuf from;
M_SNOOP_DATA snoop_data;
memset(&from, 0, sizeof(struct mbuf));
memset(&snoop_data, 0, sizeof(M_SNOOP_DATA));
BYTE app_cookie[MBUF_APP_COOKIE_MAX_LEN] = "test_cookie";
snoop_data.app_cookie = app_cookie;
snoop_data.cooklen = strlen(app_cookie);
from.m_pkthdr.snoop_data = &snoop_data;
M_SNOOP_DATA to;
// 执行函数
copysnoopCookie(&from, &to);
// 验证输出
ASSERT_EQUAL(to.cooklen, snoop_data.cooklen);
for (int i = 0; i < snoop_data.cooklen; i++) {
ASSERT_EQUAL(to.app_cookie[i], snoop_data.app_cookie[i]);
}
}
注意事项:
此测试用例仅覆盖了成功执行代码的情况。还应编写其他测试用例,包括输入参数无效等错误情况。
阅读全文