summaryrefslogtreecommitdiff
path: root/test/redfish-core
diff options
context:
space:
mode:
authorEd Tanous <edtanous@google.com>2022-08-15 20:09:23 +0300
committerEd Tanous <ed@tanous.net>2023-01-17 21:39:57 +0300
commit8ac6e503656d73c5dddb252518e77a894ef393b9 (patch)
treee2b42cdd25836cdd8b03924c09edbf607aabc7e1 /test/redfish-core
parentcf9e417d3b88eb12f8c6a9d007d6a63c3eeb94f4 (diff)
downloadbmcweb-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.cpp90
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