From: hyunuk.tak Date: Wed, 30 Mar 2022 01:00:22 +0000 (+0900) Subject: Add thread_network_create API with unittest X-Git-Tag: accepted/tizen/unified/20220914.164046~46 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F29%2F273129%2F1;p=platform%2Fcore%2Fapi%2Fthread.git Add thread_network_create API with unittest Change-Id: I2a7a6c2fe57140c50a4b600408f2d27509f9a0a2 Signed-off-by: hyunuk.tak --- diff --git a/src/thread-network.c b/src/thread-network.c index 83bf963..1f62717 100644 --- a/src/thread-network.c +++ b/src/thread-network.c @@ -32,8 +32,14 @@ #include "thread-dbus-handler.h" #include "thread-socket-handler.h" -/* LCOV_EXCL_START */ +#define THREAD_NETWORK_DEFAULT_NAME "" +#define THREAD_NETWORK_DEFAULT_KEY "" +#define THREAD_NETWORK_DEFAULT_PSKC "" +#define THREAD_NETWORK_DEFAULT_CHANNEL 0 +#define THREAD_NETWORK_DEFAULT_EXTENDED_PANID 0 +#define THREAD_NETWORK_DEFAULT_PANID 0 +/* LCOV_EXCL_START */ void _thread_network_free(thread_network_h network) { FUNC_ENTRY; @@ -45,6 +51,39 @@ void _thread_network_free(thread_network_h network) FUNC_EXIT; } +int thread_network_create(thread_network_h *network) +{ + FUNC_ENTRY; + THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON); + THREAD_CHECK_INIT_STATUS(); + THREAD_VALIDATE_INPUT_PARAMETER(network); + + thread_network_s *new_network = NULL; + new_network = g_malloc0(sizeof(thread_network_s)); + if (!new_network) { + /* LCOV_EXCL_START */ + THREAD_ERR("g_malloc0 failed"); + FUNC_EXIT; + return THREAD_ERROR_OUT_OF_MEMORY; + /* LCOV_EXCL_STOP */ + } + + new_network->is_network_active = FALSE; + (void)g_strlcpy(new_network->name, + THREAD_NETWORK_DEFAULT_NAME, THREAD_NETWORK_NAME_MAX + 1); + (void)g_strlcpy(new_network->key, + THREAD_NETWORK_DEFAULT_KEY, THREAD_NETWORK_KEY_STRING_MAX + 1); + (void)g_strlcpy(new_network->pskc, + THREAD_NETWORK_DEFAULT_PSKC, THREAD_NETWORK_PSKC_STRING_MAX + 1); + new_network->channel = THREAD_NETWORK_DEFAULT_CHANNEL; + new_network->extended_panid = THREAD_NETWORK_DEFAULT_EXTENDED_PANID; + new_network->panid = THREAD_NETWORK_DEFAULT_PANID; + *network = (thread_network_h)new_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 a2b40aa..b7f1af4 100644 --- a/tests/unittest/thread-unittest-network.cpp +++ b/tests/unittest/thread-unittest-network.cpp @@ -320,3 +320,20 @@ TEST_F(ThreadNetworkTest, GetPanIdErrorNone) EXPECT_EQ(THREAD_ERROR_NONE, thread_network_get_panid(instance, &panid)); } + +TEST_F(ThreadNetworkTest, CreateNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, thread_network_create(&network)); +} + +TEST_F(ThreadNetworkTest, CreateInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, thread_network_create(nullptr)); +} + +TEST_F(ThreadNetworkTest, CreateErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network)); +}