From b4491d06e0009509ba477a90449d8666be420fdc Mon Sep 17 00:00:00 2001 From: "hyunuk.tak" Date: Wed, 30 Mar 2022 11:24:48 +0900 Subject: [PATCH] Add thread_set_operational_network API with unittest Change-Id: I7a6d5964192c487bee74eafde37e574e773d05e3 Signed-off-by: hyunuk.tak --- src/thread-network.c | 15 +++++++++++++++ tests/unittest/thread-unittest-network.cpp | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/thread-network.c b/src/thread-network.c index 24aa234..7ad00c9 100644 --- a/src/thread-network.c +++ b/src/thread-network.c @@ -215,6 +215,21 @@ int thread_network_set_panid(thread_network_h network, uint16_t panid) return THREAD_ERROR_NONE; } +int thread_set_operational_network(thread_instance_h instance, thread_network_h network) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(instance); + THREAD_VALIDATE_INPUT_PARAMETER(network); + + thread_instance_s *current_instance = instance; + current_instance->network = network; + + 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 416bb5a..8005a1e 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -483,4 +483,25 @@ TEST_F(ThreadNetworkTest, SetPanidErrorNone) EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); EXPECT_EQ(THREAD_ERROR_NONE, thread_network_set_panid(network, NETWORK_DUMMY_PANID)); +} + +TEST_F(ThreadNetworkTest, SetOperationalNetworkNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, + thread_set_operational_network(instance, network)); +} + +TEST_F(ThreadNetworkTest, SetOperationalNetworkInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, + thread_set_operational_network(instance, network)); +} + +TEST_F(ThreadNetworkTest, SetOperationalNetworkErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_set_operational_network(instance, network)); } \ No newline at end of file -- 2.7.4