From 65fdf374a4d45612a130d81105a5f82acabc95d7 Mon Sep 17 00:00:00 2001 From: "hyunuk.tak" Date: Wed, 30 Mar 2022 11:28:32 +0900 Subject: [PATCH] Add thread_unset_operational_network API with unittest Change-Id: I0b1d98638797311f8b5f2a52acd95bf885f42ce2 Signed-off-by: hyunuk.tak --- src/thread-network.c | 14 ++++++++++++++ tests/unittest/thread-unittest-network.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/thread-network.c b/src/thread-network.c index 7ad00c9..258560c 100644 --- a/src/thread-network.c +++ b/src/thread-network.c @@ -230,6 +230,20 @@ int thread_set_operational_network(thread_instance_h instance, thread_network_h return THREAD_ERROR_NONE; } +int thread_unset_operational_network(thread_instance_h instance) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(instance); + + thread_instance_s *current_instance = instance; + current_instance->network = NULL; + + FUNC_EXIT; + return THREAD_ERROR_NONE; +} + /* Network leader/Creator */ int thread_network_create_operational_network(thread_instance_h instance, const char *name, const char *key, const char *pskc, uint32_t channel, diff --git a/tests/unittest/thread-unittest-network.cpp b/tests/unittest/thread-unittest-network.cpp index 8005a1e..08c4078 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -78,7 +78,10 @@ protected: if (instance) { if (network) + { thread_network_destroy(network); + thread_unset_operational_network(instance); + } if (operationalNetwork) thread_network_destroy_operational_network(instance, operationalNetwork); thread_disable(instance); @@ -504,4 +507,25 @@ TEST_F(ThreadNetworkTest, SetOperationalNetworkErrorNone) EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); EXPECT_EQ(THREAD_ERROR_NONE, thread_set_operational_network(instance, network)); +} + +TEST_F(ThreadNetworkTest, UnsetOperationalNetworkNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, + thread_unset_operational_network(instance)); +} + +TEST_F(ThreadNetworkTest, UnsetOperationalNetworkInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, + thread_unset_operational_network(instance)); +} + +TEST_F(ThreadNetworkTest, UnsetOperationalNetworkErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_unset_operational_network(instance)); } \ No newline at end of file -- 2.7.4