Added new unit testcases

1. Added testcases to validate IP/PrefixLengnth/MACAddress.
2. Added test to rtnetlink.

Resolves openbmc/openbmc#2546

Change-Id: I61efbf69682a50f7479b68e32d9714e9c81a32d7
Signed-off-by: Nagaraju Goruganti <ngorugan@in.ibm.com>
diff --git a/test/test_util.cpp b/test/test_util.cpp
index 1c78b64..9596097 100644
--- a/test/test_util.cpp
+++ b/test/test_util.cpp
@@ -17,6 +17,89 @@
 
 };
 
+TEST_F(TestUtil, IpValidation)
+{
+    std::string ipaddress = "0.0.0.0";
+    EXPECT_EQ(true, isValidIP(AF_INET, ipaddress));
+
+    ipaddress = "9.3.185.83";
+    EXPECT_EQ(true, isValidIP(AF_INET, ipaddress));
+
+    ipaddress = "9.3.185.a";
+    EXPECT_EQ(false, isValidIP(AF_INET, ipaddress));
+
+    ipaddress = "9.3.a.83";
+    EXPECT_EQ(false, isValidIP(AF_INET, ipaddress));
+
+    ipaddress = "x.x.x.x";
+    EXPECT_EQ(false, isValidIP(AF_INET, ipaddress));
+
+    ipaddress = "0:0:0:0:0:0:0:0";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "1:0:0:0:0:0:0:8";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "1::8";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "0:0:0:0:0:FFFF:204.152.189.116";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "::ffff:204.152.189.116";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "a:0:0:0:0:FFFF:204.152.189.116";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+    ipaddress = "1::8";
+    EXPECT_EQ(true, isValidIP(AF_INET6, ipaddress));
+
+
+}
+
+TEST_F(TestUtil, PrefixValidation)
+{
+    uint8_t prefixLength = 1;
+    EXPECT_EQ(true, isValidPrefix(AF_INET, prefixLength));
+
+    prefixLength = 32;
+    EXPECT_EQ(true, isValidPrefix(AF_INET, prefixLength));
+
+    prefixLength = 0;
+    EXPECT_EQ(false, isValidPrefix(AF_INET, prefixLength));
+
+    prefixLength = 33;
+    EXPECT_EQ(false, isValidPrefix(AF_INET, prefixLength));
+
+    prefixLength = 33;
+    EXPECT_EQ(true, isValidPrefix(AF_INET6, prefixLength));
+
+    prefixLength = 65;
+    EXPECT_EQ(false, isValidPrefix(AF_INET, prefixLength));
+
+}
+
+
+TEST_F(TestUtil, MacValidation)
+{
+    std::string macaddress = "00:00:00:00:00:00";
+    EXPECT_EQ(false, phosphor::network::mac_address::validate(macaddress));
+
+    macaddress = "F6:C6:E6:6:B0:D3";
+    EXPECT_EQ(false, phosphor::network::mac_address::validate(macaddress));
+
+    macaddress = "F6:C6:E6:06:B0:D3";
+    EXPECT_EQ(true, phosphor::network::mac_address::validate(macaddress));
+
+    macaddress = "hh:HH:HH:hh:HH:yy";
+    EXPECT_EQ(false, phosphor::network::mac_address::validate(macaddress));
+
+    macaddress = "hhh:GGG:iii:jjj:kkk:lll";
+    EXPECT_EQ(false, phosphor::network::mac_address::validate(macaddress));
+
+}
+
 TEST_F(TestUtil, ConvertV4MasktoPrefix)
 {
     std::string mask = "255.255.255.0";