From cc2f7154e9902d3264edfe4409dbc91d781cfca0 Mon Sep 17 00:00:00 2001 From: wcr <2108380043@qq.com> Date: Thu, 26 Dec 2024 21:41:18 +0800 Subject: [PATCH] 1226 --- .../net/netdb/full/net_netdb_test_004.cpp | 6 +++-- .../net/netdb/full/net_netdb_test_005.cpp | 23 ++++++++++++++++++- .../net/netdb/full/net_netdb_test_006.cpp | 22 ++++++++++++++++-- 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_004.cpp b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_004.cpp index 2c2e804..7bcb379 100644 --- a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_004.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_004.cpp @@ -4,8 +4,10 @@ * * ... 其余版权声明 ... */ +// 这是版权声明,表明代码的版权归属于华为技术有限公司和华为设备有限公司,并声明了保留所有权利。 #include "lt_net_netdb.h" // 引入测试所需的头文件 +// 包含一个头文件,这个头文件可能包含了网络数据库相关的函数声明和宏定义。 // 测试函数,用于测试gethostbyaddr函数 static int GetHostByAddrTest(void) @@ -23,8 +25,8 @@ static int GetHostByAddrTest(void) // 准备文件环境,将模拟的hosts文件内容设置为系统的hosts文件 int flag = PrepareFileEnv(pathList, streamList, streamLen, file_number); + // 如果准备失败,恢复原始文件环境 if (flag != 0) { - // 如果准备失败,恢复原始文件环境 RecoveryFileEnv(pathList, file_number); return -1; // 返回错误码 } @@ -70,4 +72,4 @@ void NetNetDbTest004(void) { // 添加测试用例,指定测试函数、测试类型、测试级别等信息 TEST_ADD_CASE(__FUNCTION__, GetHostByAddrTest, TEST_POSIX, TEST_TCP, TEST_LEVEL0, TEST_FUNCTION); -} +} \ No newline at end of file diff --git a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_005.cpp b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_005.cpp index 7fe49c7..728091c 100644 --- a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_005.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_005.cpp @@ -28,11 +28,14 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +// 鐗堟潈澹版槑锛岃鏄庤浠g爜鐢卞崕涓烘妧鏈湁闄愬叕鍙告墍鏈夛紝骞惰瀹氫簡浠g爜鐨勪娇鐢ㄥ拰鍒嗗彂鏉′欢銆 #include "lt_net_netdb.h" +// 鍖呭惈涓涓ご鏂囦欢锛屽彲鑳藉寘鍚簡缃戠粶鏁版嵁搴撳嚱鏁扮殑澹版槑鍜屽畾涔夈 static int GetHostByAddrRTest(void) { + // 瀹氫箟涓涓潤鎬佸嚱鏁帮紝鐢ㄤ簬娴嬭瘯gethostbyaddr_r鍑芥暟銆 struct in_addr ia; struct hostent addr, *result = NULL; char buf[1024]; @@ -40,29 +43,47 @@ static int GetHostByAddrRTest(void) int err, ret; int length = 4; + // 瀹氫箟浜嗕竴浜涘彉閲忥紝鍖呮嫭鐢ㄤ簬瀛樺偍IP鍦板潃鐨刬n_addr缁撴瀯浣擄紝hostent缁撴瀯浣撶敤浜庡瓨鍌ㄦ煡璇㈢粨鏋滐紝浠ュ強鍏朵粬杈呭姪鍙橀噺銆 ia.s_addr = inet_addr("127.0.0.1"); + // 灏嗗瓧绗︿覆褰㈠紡鐨処P鍦板潃"127.0.0.1"杞崲涓虹綉缁滃瓧鑺傚簭鐨勪簩杩涘埗褰㈠紡锛屽苟瀛樺偍鍦╥a缁撴瀯浣撲腑銆 ret = gethostbyaddr_r(&ia, sizeof ia, AF_INET, &addr, buf, sizeof buf, &result, &err); + // 浣跨敤gethostbyaddr_r鍑芥暟鏍规嵁IP鍦板潃鏌ヨ涓绘満淇℃伅锛屽苟灏嗙粨鏋滃瓨鍌ㄥ湪result鎸囧悜鐨刪ostent缁撴瀯浣撲腑銆 ICUNIT_ASSERT_EQUAL(ret, 0, ret); + // 鏂█鍑芥暟杩斿洖鍊煎簲涓0锛岃〃绀烘垚鍔熴 ICUNIT_ASSERT_NOT_EQUAL(result, NULL, -1); + // 鏂█result涓嶅簲涓虹┖锛岃〃绀烘煡璇㈠埌浜嗕富鏈轰俊鎭 ICUNIT_ASSERT_EQUAL(result->h_addrtype, AF_INET, result->h_addrtype); + // 鏂█鏌ヨ鍒扮殑涓绘満鍦板潃绫诲瀷搴斾负AF_INET锛圛Pv4锛夈 ICUNIT_ASSERT_STRING_EQUAL(result->h_name, "localhost", -1); + // 鏂█鏌ヨ鍒扮殑涓绘満鍚嶅簲涓"localhost"銆 ICUNIT_ASSERT_EQUAL(result->h_length, length, -1); + // 鏂█鏌ヨ鍒扮殑涓绘満鍦板潃闀垮害搴斾负4锛圛Pv4鍦板潃闀垮害锛夈 errno = 0; + // 娓呯┖errno锛岀敤浜庢娴嬫帴涓嬫潵鐨勫嚱鏁拌皟鐢ㄦ槸鍚﹁缃簡errno銆 ia.s_addr = inet_addr("127.0.0.0"); + // 灏嗗瓧绗︿覆褰㈠紡鐨処P鍦板潃"127.0.0.0"杞崲涓虹綉缁滃瓧鑺傚簭鐨勪簩杩涘埗褰㈠紡锛屽苟瀛樺偍鍦╥a缁撴瀯浣撲腑銆 ret = gethostbyaddr_r(&ia, sizeof ia, AF_INET, &addr, buf, sizeof buf, &result, &err); + // 鍐嶆璋冪敤gethostbyaddr_r鍑芥暟锛屼絾杩欐浼犲叆鐨勬槸涓涓棤鏁堢殑IP鍦板潃銆 ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno); + // 鏂█errno搴旇璁剧疆涓篍INVAL锛岃〃绀烘棤鏁堝弬鏁般 ret = gethostbyaddr_r(&ia, sizeof ia, AF_INET, &addr, buf, sizeof buf, &result, &err); + // 鍐嶆璋冪敤鍑芥暟锛屼絾errno宸茬粡琚箣鍓嶇殑璋冪敤璁剧疆锛岃繖閲屾鏌ユ槸鍚︿繚鎸佷笉鍙樸 ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno); + // 鏂█errno浠嶇劧涓篍INVAL銆 ret = gethostbyaddr_r(&ia, sizeof ia, AF_INET, &addr, buf1, sizeof buf1, &result, &err); + // 璋冪敤gethostbyaddr_r鍑芥暟锛屼絾杩欐浼犲叆鐨勭紦鍐插尯buf1澶у皬涓嶈冻浠ュ瓨鍌ㄧ粨鏋溿 ICUNIT_ASSERT_EQUAL(ret, ERANGE, ret); + // 鏂█鍑芥暟杩斿洖鍊煎簲涓篍RANGE锛岃〃绀虹紦鍐插尯澶皬銆 return ICUNIT_SUCCESS; + // 杩斿洖娴嬭瘯鎴愬姛銆 } void NetNetDbTest005(void) { TEST_ADD_CASE(__FUNCTION__, GetHostByAddrRTest, TEST_POSIX, TEST_TCP, TEST_LEVEL0, TEST_FUNCTION); -} + // 灏嗗綋鍓嶆祴璇曞嚱鏁版坊鍔犲埌娴嬭瘯鐢ㄤ緥涓紝鎸囧畾娴嬭瘯绫诲瀷銆佸崗璁佺骇鍒拰鍑芥暟銆 +} \ No newline at end of file diff --git a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_006.cpp b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_006.cpp index 9cc7c82..4b5d2b9 100644 --- a/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_006.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/net/netdb/full/net_netdb_test_006.cpp @@ -28,42 +28,60 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +// 鐗堟潈澹版槑锛岃鏄庤浠g爜鐢卞崕涓烘妧鏈湁闄愬叕鍙稿拰鍗庝负璁惧鏈夐檺鍏徃鎵鏈夛紝骞惰瀹氫簡浠g爜鐨勪娇鐢ㄥ拰鍒嗗彂鏉′欢銆 #include "lt_net_netdb.h" +// 寮曞叆澶存枃浠讹紝鍙兘鍖呭惈浜嗙綉缁滄暟鎹簱鐩稿叧鐨勫嚱鏁板0鏄庡拰瀹忓畾涔夈 static int GetHostByNameTest(void) { + // 瀹氫箟涓涓ā鎷熺殑hosts鏂囦欢鍐呭 char host_file[] = "127.0.0.1 localhost\n"; + // 瀹氫箟hosts鏂囦欢鐨勮矾寰勫垪琛 char *pathList[] = {"/etc/hosts"}; + // 瀹氫箟妯℃嫙鐨刪osts鏂囦欢娴佸垪琛 char *streamList[] = {host_file}; + // 瀹氫箟妯℃嫙鐨刪osts鏂囦欢娴侀暱搴﹀垪琛 int streamLen[] = {sizeof(host_file)}; + // 瀹氫箟鏂囦欢鏁伴噺 int flag = PrepareFileEnv(pathList, streamList, streamLen, 1); + // 濡傛灉鍑嗗鏂囦欢鐜澶辫触锛屽垯鎭㈠鍘熷鏂囦欢鐜骞惰繑鍥為敊璇爜 if (flag != 0) { RecoveryFileEnv(pathList, 1); return -1; } + // 浣跨敤gethostbyname鍑芥暟鏍规嵁涓绘満鍚嶈幏鍙杊ostent缁撴瀯浣撴寚閽 struct hostent *addr = gethostbyname("localhost"); + // 鏂█addr涓嶄负绌猴紝鍗砱ethostbyname鎴愬姛 ICUNIT_ASSERT_NOT_EQUAL(addr, NULL, -1); + // 鏂█杩斿洖鐨勪富鏈哄悕涓庤緭鍏ョ殑涓绘満鍚嶇浉鍚 ICUNIT_ASSERT_EQUAL(strcmp(addr->h_name, "localhost"), 0, -1); + // 鏂█杩斿洖鐨勫湴鍧绫诲瀷涓篈F_INET ICUNIT_ASSERT_EQUAL(addr->h_addrtype, AF_INET, addr->h_addrtype); + // 鏂█杩斿洖鐨勫湴鍧闀垮害涓嶄负0 ICUNIT_ASSERT_NOT_EQUAL(addr->h_length, 0, addr->h_length); + // 娴嬭瘯gethostbyname鍑芥暟锛屼紶鍏P鍦板潃瀛楃涓蹭綔涓轰富鏈哄悕 addr = gethostbyname("127.0.0.1"); ICUNIT_ASSERT_NOT_EQUAL(addr, NULL, -1); ICUNIT_ASSERT_EQUAL(strcmp(addr->h_name, "127.0.0.1"), 0, -1); ICUNIT_ASSERT_EQUAL(addr->h_addrtype, AF_INET, addr->h_addrtype); ICUNIT_ASSERT_NOT_EQUAL(addr->h_length, 0, addr->h_length); + // 娴嬭瘯涓涓笉瀛樺湪鐨勪富鏈哄悕 addr = gethostbyname("lo"); + // 鏂█addr涓虹┖锛屽嵆gethostbyname澶辫触 ICUNIT_ASSERT_EQUAL(addr, NULL, -1); + // 鎭㈠鍘熷鏂囦欢鐜 RecoveryFileEnv(pathList, 1); return ICUNIT_SUCCESS; } +// 瀹氫箟娴嬭瘯鐢ㄤ緥 void NetNetDbTest006(void) { + // 娣诲姞娴嬭瘯鐢ㄤ緥锛屾寚瀹氭祴璇曞嚱鏁般佹祴璇曠被鍨嬨佹祴璇曠骇鍒瓑淇℃伅 TEST_ADD_CASE(__FUNCTION__, GetHostByNameTest, TEST_POSIX, TEST_TCP, TEST_LEVEL0, TEST_FUNCTION); -} +} \ No newline at end of file