Add network test case for adding ip address 99/272899/1
authorhyunuk.tak <hyunuk.tak@samsung.com>
Thu, 24 Mar 2022 07:46:48 +0000 (16:46 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Mon, 28 Mar 2022 01:56:19 +0000 (10:56 +0900)
Change-Id: Id48b6097ed634bb3df7767e57f47f60fcb5ba6f6
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
tests/unittest/thread-unittest-network.cpp

index f2552fc..27fb9ce 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include <gtest/gtest.h>
+#include <arpa/inet.h>
 
 #include "thread.h"
 
@@ -25,6 +26,7 @@
        "fffe00208763d64768c8f3ecf0708fdd10ceaadb65a7b05105e1ec3e" \
        "16d3e0aee52fb7e618a759973030f4f70656e5468726561642d34633" \
        "33801024c3804103044b2dc6512dce13b11d3386eb2ce7e0c0402a0fff8"
+#define DUMMY_IPV6_ADDRESS "fe80::1ee5:a5a9:8bd2:68de"
 
 class ThreadNetworkTest : public ::testing::Test
 {
@@ -39,6 +41,7 @@ public:
        uint16_t panId;
        uint8_t tlvsBuffer[NETWORK_TLVS_SIZE];
        int tlvsBufferLength;
+       uint8_t ipv6Address[THREAD_IPV6_ADDRESS_SIZE];
 
 public:
        static void getIpAddrCallback(int index, char* ipaddr,
@@ -58,6 +61,7 @@ protected:
                panId = 65535;
                makeTlvsBuffer();
                tlvsBufferLength = DUMMY_TLVS_SIZE;
+               makeIpv6Address();
        }
 
        void TearDown() override
@@ -76,6 +80,14 @@ private:
                        tlvsBuffer[i] = (uint8_t)strtol(subBuffer, NULL, 16);
                }
        }
+
+       void makeIpv6Address()
+       {
+               struct in6_addr result;
+               inet_pton(AF_INET6, DUMMY_IPV6_ADDRESS, &result);
+               memcpy(ipv6Address, result.s6_addr,
+                       THREAD_IPV6_PREFIX_SIZE * sizeof(uint8_t));
+       }
 };
 
 TEST_F(ThreadNetworkTest, CreateOperationalNetworkNotInitialized)
@@ -234,4 +246,24 @@ TEST_F(ThreadNetworkTest, GetIpAddrErrorNone)
        EXPECT_EQ(THREAD_ERROR_NONE,
                thread_get_ipaddr(instance, getIpAddrCallback,
                        THREAD_IPADDR_TYPE_MLEID, nullptr));
+}
+
+TEST_F(ThreadNetworkTest, AddIpAddrNotInitialized)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+       EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+               thread_add_ipaddr(instance, ipv6Address));
+}
+
+TEST_F(ThreadNetworkTest, AddIpAddrInvalidParameter)
+{
+       EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+               thread_add_ipaddr(instance, ipv6Address));
+}
+
+TEST_F(ThreadNetworkTest, AddIpAddrErrorNone)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+       EXPECT_EQ(THREAD_ERROR_NONE,
+               thread_add_ipaddr(instance, ipv6Address));
 }
\ No newline at end of file