diff options
author | Ed Tanous <edtanous@google.com> | 2022-08-15 20:09:23 +0300 |
---|---|---|
committer | Ed Tanous <ed@tanous.net> | 2023-01-17 21:39:57 +0300 |
commit | 8ac6e503656d73c5dddb252518e77a894ef393b9 (patch) | |
tree | e2b42cdd25836cdd8b03924c09edbf607aabc7e1 /test/redfish-core | |
parent | cf9e417d3b88eb12f8c6a9d007d6a63c3eeb94f4 (diff) | |
download | bmcweb-8ac6e503656d73c5dddb252518e77a894ef393b9.tar.xz |
Add unit tests for ipv4VerifyIpAndGetBitcount
Per the title, add unit tests for this function.
Tested: Unit tests pass
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ifdd9c314d2fa62ae3fa3b8f8150fcdd224a7eb03
Diffstat (limited to 'test/redfish-core')
-rw-r--r-- | test/redfish-core/include/utils/ip_utils_test.cpp | 90 |
1 files changed, 89 insertions, 1 deletions
diff --git a/test/redfish-core/include/utils/ip_utils_test.cpp b/test/redfish-core/include/utils/ip_utils_test.cpp index f358c51477..e8b7ac9dd5 100644 --- a/test/redfish-core/include/utils/ip_utils_test.cpp +++ b/test/redfish-core/include/utils/ip_utils_test.cpp @@ -34,5 +34,93 @@ TEST(IpToString, ReturnsCorrectIpStringForIpv4MappedIpv6Addresses) { EXPECT_EQ(toString(make_address("::ffff:127.0.0.1")), "127.0.0.1"); } + +TEST(ipv4VerifyIpAndGetBitcount, PositiveTests) +{ + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("192.168.1.1", nullptr)); + + uint8_t bits = 0; + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("128.0.0.0", &bits)); + EXPECT_EQ(bits, 1); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("192.0.0.0", &bits)); + EXPECT_EQ(bits, 2); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("224.0.0.0", &bits)); + EXPECT_EQ(bits, 3); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("240.0.0.0", &bits)); + EXPECT_EQ(bits, 4); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("248.0.0.0", &bits)); + EXPECT_EQ(bits, 5); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("252.0.0.0", &bits)); + EXPECT_EQ(bits, 6); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("254.0.0.0", &bits)); + EXPECT_EQ(bits, 7); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.0.0.0", &bits)); + EXPECT_EQ(bits, 8); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.128.0.0", &bits)); + EXPECT_EQ(bits, 9); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.192.0.0", &bits)); + EXPECT_EQ(bits, 10); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.224.0.0", &bits)); + EXPECT_EQ(bits, 11); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.240.0.0", &bits)); + EXPECT_EQ(bits, 12); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.248.0.0", &bits)); + EXPECT_EQ(bits, 13); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.252.0.0", &bits)); + EXPECT_EQ(bits, 14); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.254.0.0", &bits)); + EXPECT_EQ(bits, 15); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.0.0", &bits)); + EXPECT_EQ(bits, 16); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.128.0", &bits)); + EXPECT_EQ(bits, 17); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.192.0", &bits)); + EXPECT_EQ(bits, 18); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.224.0", &bits)); + EXPECT_EQ(bits, 19); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.240.0", &bits)); + EXPECT_EQ(bits, 20); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.248.0", &bits)); + EXPECT_EQ(bits, 21); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.252.0", &bits)); + EXPECT_EQ(bits, 22); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.254.0", &bits)); + EXPECT_EQ(bits, 23); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.0", &bits)); + EXPECT_EQ(bits, 24); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.128", &bits)); + EXPECT_EQ(bits, 25); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.192", &bits)); + EXPECT_EQ(bits, 26); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.224", &bits)); + EXPECT_EQ(bits, 27); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.240", &bits)); + EXPECT_EQ(bits, 28); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.248", &bits)); + EXPECT_EQ(bits, 29); + EXPECT_TRUE(ipv4VerifyIpAndGetBitcount("255.255.255.252", &bits)); + EXPECT_EQ(bits, 30); +} + +TEST(ipv4VerifyIpAndGetBitcount, NegativeTests) +{ + uint8_t bits = 0; + // > 256 in any field + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("256.0.0.0", &bits)); + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("1.256.0.0", &bits)); + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("1.1.256.0", &bits)); + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("1.1.1.256", &bits)); + + // Non contiguous mask + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("255.0.255.0", &bits)); + + // Too many fields + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("1.1.1.1.1", &bits)); + // Not enough fields + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("1.1.1", &bits)); + + // Empty string + EXPECT_FALSE(ipv4VerifyIpAndGetBitcount("", &bits)); +} } // namespace -} // namespace redfish::ip_util
\ No newline at end of file +} // namespace redfish::ip_util |