From 97160f5913e1ee8fbada2e91356a6d33ea586267 Mon Sep 17 00:00:00 2001 From: "hyunuk.tak" Date: Wed, 30 Mar 2022 10:34:43 +0900 Subject: [PATCH] Add thread_network_set_pskc API with unittest Change-Id: Id0fc27785d186d622bc9a4e86d0fbb2313274daf Signed-off-by: hyunuk.tak --- src/thread-network.c | 20 ++++++++++++++++++++ tests/unittest/thread-unittest-network.cpp | 21 +++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/thread-network.c b/src/thread-network.c index 073b23c..150b8f1 100644 --- a/src/thread-network.c +++ b/src/thread-network.c @@ -147,6 +147,26 @@ int thread_network_set_key(thread_network_h network, const char *key) return THREAD_ERROR_NONE; } +int thread_network_set_pskc(thread_network_h network, const char *pskc) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(network); + THREAD_VALIDATE_INPUT_PARAMETER(pskc); + + retv_if(strlen(pskc) > THREAD_NETWORK_PSKC_STRING_MAX, + THREAD_ERROR_INVALID_PARAMETER); + + THREAD_DBG("Network pskc: %s", pskc); + + thread_network_s *current_network = network; + (void)g_strlcpy(current_network->pskc, pskc, THREAD_NETWORK_PSKC_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 4e19734..c4ecbc4 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -33,6 +33,7 @@ class ThreadNetworkTest : public ::testing::Test public: const char *THREAD_NETWORK_DEFAULT_NAME = "TizenOpenThread"; const char *THREAD_NETWORK_DEFAULT_KEY = "c03aa2d3c869847b0e7f2ca288efd251"; + const char *THREAD_NETWORK_DEFAULT_PSKC = "19d3bd4ee76baad7ff2da29c87c67452"; thread_instance_h instance; thread_network_h network; @@ -399,4 +400,24 @@ 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)); +} + +TEST_F(ThreadNetworkTest, SetPskcNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, + thread_network_set_pskc(network, THREAD_NETWORK_DEFAULT_PSKC)); +} + +TEST_F(ThreadNetworkTest, SetPskcInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, + thread_network_set_pskc(nullptr, THREAD_NETWORK_DEFAULT_PSKC)); +} + +TEST_F(ThreadNetworkTest, SetPskcErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); + EXPECT_EQ(THREAD_ERROR_NONE, + thread_network_set_pskc(network, THREAD_NETWORK_DEFAULT_PSKC)); } \ No newline at end of file -- 2.7.4