From: hyunuk.tak Date: Wed, 30 Mar 2022 01:28:30 +0000 (+0900) Subject: Add thread_network_set_key API with unittest X-Git-Tag: accepted/tizen/unified/20220914.164046~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d70164e5b47c2c886fc723eaa2acd8ba25144e27;p=platform%2Fcore%2Fapi%2Fthread.git Add thread_network_set_key API with unittest Change-Id: I3248a7be4934b32b4104605a9288809f46cbdeb7 Signed-off-by: hyunuk.tak --- diff --git a/src/thread-network.c b/src/thread-network.c index 8d8a2d8..073b23c 100644 --- a/src/thread-network.c +++ b/src/thread-network.c @@ -127,6 +127,26 @@ int thread_network_set_name(thread_network_h network, const char *name) return THREAD_ERROR_NONE; } +int thread_network_set_key(thread_network_h network, const char *key) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(network); + THREAD_VALIDATE_INPUT_PARAMETER(key); + + retv_if(strlen(key) > THREAD_NETWORK_KEY_STRING_MAX, + THREAD_ERROR_INVALID_PARAMETER); + + THREAD_DBG("Network key: %s", key); + + thread_network_s *current_network = network; + (void)g_strlcpy(current_network->key, key, THREAD_NETWORK_KEY_STRING_MAX + 1); + + 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 f23a17a..4e19734 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -32,6 +32,7 @@ class ThreadNetworkTest : public ::testing::Test { public: const char *THREAD_NETWORK_DEFAULT_NAME = "TizenOpenThread"; + const char *THREAD_NETWORK_DEFAULT_KEY = "c03aa2d3c869847b0e7f2ca288efd251"; thread_instance_h instance; thread_network_h network; @@ -378,4 +379,24 @@ TEST_F(ThreadNetworkTest, SetNameErrorNone) EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); EXPECT_EQ(THREAD_ERROR_NONE, thread_network_set_name(network, THREAD_NETWORK_DEFAULT_NAME)); +} + +TEST_F(ThreadNetworkTest, SetKeyNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, + thread_network_set_key(network, THREAD_NETWORK_DEFAULT_KEY)); +} + +TEST_F(ThreadNetworkTest, SetKeyInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, + thread_network_set_key(nullptr, THREAD_NETWORK_DEFAULT_KEY)); +} + +TEST_F(ThreadNetworkTest, SetKeyErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_network_set_key(network, THREAD_NETWORK_DEFAULT_KEY)); } \ No newline at end of file