From 6e0174ff198cb8c96517f88229b4aaaa4d3905f5 Mon Sep 17 00:00:00 2001 From: "hyunuk.tak" Date: Thu, 24 Mar 2022 15:05:04 +0900 Subject: [PATCH] Add network test case for setting active dataset tlvs Change-Id: I4fdbfbc8f026af4ff5944406bade321920eab956 Signed-off-by: hyunuk.tak --- tests/unittest/mocks/thread-mock-dbus.cpp | 4 +++ tests/unittest/mocks/thread-mock-dummy.cpp | 10 ++++++++ tests/unittest/thread-unittest-network.cpp | 40 ++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/tests/unittest/mocks/thread-mock-dbus.cpp b/tests/unittest/mocks/thread-mock-dbus.cpp index 26da5e4..31131a6 100644 --- a/tests/unittest/mocks/thread-mock-dbus.cpp +++ b/tests/unittest/mocks/thread-mock-dbus.cpp @@ -105,4 +105,8 @@ GVariant *g_dbus_proxy_call_finish(GDBusProxy *proxy, void g_object_unref(gpointer object) { +} + +void g_bytes_unref(GBytes *bytes) +{ } \ No newline at end of file diff --git a/tests/unittest/mocks/thread-mock-dummy.cpp b/tests/unittest/mocks/thread-mock-dummy.cpp index e5b7465..7fddd40 100644 --- a/tests/unittest/mocks/thread-mock-dummy.cpp +++ b/tests/unittest/mocks/thread-mock-dummy.cpp @@ -117,6 +117,11 @@ static GVariant *__property_get_extended_address() return g_variant_new("(v)", g_variant_new("t", 0)); } +static GVariant *__property_set_active_dataset_tlvs() +{ + return g_variant_new("(i)", THREAD_ERROR_NONE); +} + struct { const gchar *interface_name; const gchar *signal_name; @@ -193,6 +198,11 @@ struct { __property_get_extended_address, }, { + "Set", + THREAD_DBUS_PROPERTY_ACTIVE_DATASET_TLVS, + __property_set_active_dataset_tlvs, + }, + { NULL, NULL, NULL, diff --git a/tests/unittest/thread-unittest-network.cpp b/tests/unittest/thread-unittest-network.cpp index 581f4a7..072a39b 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -19,6 +19,12 @@ #include "thread.h" #define NETWORK_DATA_SIZE 256 +#define NETWORK_TLVS_SIZE 1024 +#define DUMMY_TLVS_SIZE 106 +#define DUMMY_TLVS_STR "0e080000000000010000000300001935060004001" \ + "fffe00208763d64768c8f3ecf0708fdd10ceaadb65a7b05105e1ec3e" \ + "16d3e0aee52fb7e618a759973030f4f70656e5468726561642d34633" \ + "33801024c3804103044b2dc6512dce13b11d3386eb2ce7e0c0402a0fff8" class ThreadNetworkTest : public ::testing::Test { @@ -31,6 +37,7 @@ public: uint32_t channel; uint64_t extendedPanId; uint16_t panId; + uint8_t tlvsBuffer[NETWORK_TLVS_SIZE]; protected: void SetUp() override @@ -44,12 +51,25 @@ protected: channel = 0x07fff800; extendedPanId = strtoull("18446744073709551615LL", nullptr, 10); panId = 65535; + makeTlvsBuffer(); } void TearDown() override { thread_deinitialize(); } + +private: + void makeTlvsBuffer() + { + for (int i = 0; i < DUMMY_TLVS_SIZE; ++i) + { + char subBuffer[3]; + memcpy(subBuffer, &DUMMY_TLVS_STR[2 * i], 2); + subBuffer[2] = '\0'; + tlvsBuffer[i] = (uint8_t)strtol(subBuffer, NULL, 16); + } + } }; TEST_F(ThreadNetworkTest, CreateOperationalNetworkNotInitialized) @@ -96,4 +116,24 @@ TEST_F(ThreadNetworkTest, DestroyOperationalNetworkErrorNone) key, pskc, channel, extendedPanId, panId, &network)); EXPECT_EQ(THREAD_ERROR_NONE, thread_network_destroy_operational_network(instance, network)); +} + +TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, + thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE)); +} + +TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, + thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE)); +} + +TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE)); } \ No newline at end of file -- 2.7.4