diff --git a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_002.cpp b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_002.cpp index 2e29594..cbbc04b 100644 --- a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_002.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_002.cpp @@ -32,40 +32,60 @@ #include "lt_net_netdb.h" +// 测试函数AddrInfoTest的定义 static int AddrInfoTest(void) { - // Prerequisite: correct DNS servers must be configured. + // 假设DNS服务器配置正确 char host_file[] = "127.0.0.2 example.com\n", serv_file[] = "ftp 21/tcp\n"; + // 文件路径数组 char *pathList[] = {"/etc/hosts", "/etc/services"}; + // 要写入文件的内容数组 char *streamList[] = {host_file, serv_file}; + // 内容长度数组 int streamLen[] = {sizeof(host_file), sizeof(serv_file)}; + // 文件数量 const int file_number = 2; + // 准备文件环境 int flag = PrepareFileEnv(pathList, streamList, streamLen, file_number); if (flag != 0) { + // 如果准备失败,恢复文件环境并返回错误 RecoveryFileEnv(pathList, file_number); return -1; } + // 声明addrinfo结构体指针 struct addrinfo *addr = NULL; + // 使用getaddrinfo函数解析域名和端口 int ret = getaddrinfo("example.com", "ftp", NULL, &addr); + // 断言getaddrinfo函数返回0,表示成功 ICUNIT_ASSERT_EQUAL(ret, 0, ret); + // 释放addrinfo结构体 freeaddrinfo(addr); + // 尝试解析一个不存在的域名和端口 ret = getaddrinfo("local", "ftp", NULL, &addr); + // 断言getaddrinfo函数返回EAI_AGAIN,表示临时失败 ICUNIT_ASSERT_EQUAL(ret, EAI_AGAIN, ret); + // 尝试解析一个不存在的服务名称 ret = getaddrinfo("localhost", "fp", NULL, &addr); + // 断言getaddrinfo函数返回EAI_SERVICE,表示服务名称错误 ICUNIT_ASSERT_EQUAL(ret, EAI_SERVICE, ret); + // 获取错误信息字符串 const char *p = gai_strerror(EAI_AGAIN); + // 断言错误信息字符串不为空 ICUNIT_ASSERT_NOT_EQUAL(p, NULL, -1); + // 恢复文件环境 RecoveryFileEnv(pathList, file_number); return ICUNIT_SUCCESS; } +// 测试用例NetNetDbTest002的定义 void NetNetDbTest002(void) { + // 添加测试用例 TEST_ADD_CASE(__FUNCTION__, AddrInfoTest, TEST_POSIX, TEST_TCP, TEST_LEVEL0, TEST_FUNCTION); }