Skip to content

Commit 84f99cc

Browse files
committed
Add tests for getIpAddrStr
1 parent f8c2418 commit 84f99cc

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

tst/NetworkApiTest.cpp

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,89 @@ TEST_F(NetworkApiTest, ipIpAddrTest)
3030
EXPECT_EQ(FALSE, isIpAddr((PCHAR) "2001:85a3:0000:0000:8a2e:0370:7334", STRLEN("2001:85a3:0000:0000:8a2e:0370:7334")));
3131
}
3232

33+
// ------------------------------- getIpAddrStr ----------------------
34+
35+
STATUS initTestKvsIpv4Address(PKvsIpAddress pKvsIpAddress)
36+
{
37+
STATUS retStatus = STATUS_SUCCESS;
38+
UINT8 addr[] = {192, 168, 1, 1};
39+
40+
CHK(pKvsIpAddress != NULL, STATUS_NULL_ARG);
41+
42+
MEMSET(pKvsIpAddress, 0, SIZEOF(KvsIpAddress));
43+
pKvsIpAddress->family = KVS_IP_FAMILY_TYPE_IPV4;
44+
45+
MEMCPY(pKvsIpAddress->address, addr, IPV4_ADDRESS_LENGTH);
46+
47+
CleanUp:
48+
return retStatus;
49+
}
50+
51+
TEST_F(NetworkApiTest, GetIpAddrStrNullIpAddress)
52+
{
53+
CHAR buffer[KVS_IP_ADDRESS_STRING_BUFFER_LEN];
54+
55+
EXPECT_EQ(STATUS_NULL_ARG, getIpAddrStr(NULL, buffer, SIZEOF(buffer)));
56+
}
57+
58+
TEST_F(NetworkApiTest, GetIpAddrStrInvalidBuffer)
59+
{
60+
CHAR buffer[KVS_IP_ADDRESS_STRING_BUFFER_LEN];
61+
62+
KvsIpAddress ipAddress;
63+
EXPECT_EQ(STATUS_SUCCESS, initTestKvsIpv4Address(&ipAddress));
64+
65+
EXPECT_EQ(STATUS_INVALID_ARG, getIpAddrStr(&ipAddress, NULL, SIZEOF(buffer)));
66+
EXPECT_EQ(STATUS_INVALID_ARG, getIpAddrStr(&ipAddress, buffer, 0));
67+
}
68+
69+
TEST_F(NetworkApiTest, GetIpAddrStrBufferTooSmall)
70+
{
71+
KvsIpAddress ipAddress;
72+
EXPECT_EQ(STATUS_SUCCESS, initTestKvsIpv4Address(&ipAddress));
73+
74+
// Test with increasingly small buffers
75+
CHAR tinyBuffer[1];
76+
EXPECT_EQ(STATUS_BUFFER_TOO_SMALL, getIpAddrStr(&ipAddress, tinyBuffer, SIZEOF(tinyBuffer)));
77+
78+
CHAR smallBuffer[5];
79+
EXPECT_EQ(STATUS_BUFFER_TOO_SMALL, getIpAddrStr(&ipAddress, smallBuffer, SIZEOF(smallBuffer)));
80+
}
81+
82+
TEST_F(NetworkApiTest, GetIpAddrStrIpv4Addr)
83+
{
84+
CHAR buffer[KVS_IP_ADDRESS_STRING_BUFFER_LEN];
85+
86+
KvsIpAddress ipAddress;
87+
EXPECT_EQ(STATUS_SUCCESS, initTestKvsIpv4Address(&ipAddress));
88+
89+
EXPECT_EQ(STATUS_SUCCESS, getIpAddrStr(&ipAddress, buffer, SIZEOF(buffer)));
90+
EXPECT_STREQ("192.168.1.1", buffer);
91+
}
92+
93+
TEST_F(NetworkApiTest, GetIpAddrStrIpv6Addr)
94+
{
95+
CHAR buffer[KVS_IP_ADDRESS_STRING_BUFFER_LEN];
96+
97+
KvsIpAddress ipAddress;
98+
MEMSET(&ipAddress, 0, SIZEOF(KvsIpAddress));
99+
ipAddress.family = KVS_IP_FAMILY_TYPE_IPV6;
100+
101+
// rfc3849 - 2001:db8::/32 as a documentation-only prefix in the IPv6
102+
// address registry. No end party is to be assigned this address.
103+
UINT8 addr[] = {0x20, 0x01,
104+
0x0d, 0xb8,
105+
0x12, 0x34,
106+
0x56, 0x78,
107+
0x9a, 0xbc,
108+
0xde, 0xf0,
109+
0x12, 0x34,
110+
0x56, 0x78};
111+
MEMCPY(ipAddress.address, addr, IPV6_ADDRESS_LENGTH);
112+
113+
EXPECT_EQ(STATUS_SUCCESS, getIpAddrStr(&ipAddress, buffer, SIZEOF(buffer)));
114+
EXPECT_STREQ("2001:0db8:1234:5678:9abc:def0:1234:5678", buffer);
115+
}
33116

34117
} // namespace webrtcclient
35118
} // namespace video

0 commit comments

Comments
 (0)