return g_variant_new("(v)", g_variant_new("t", 0));
}
+static GVariant *__property_set_active_dataset_tlvs()
+{
+ return g_variant_new("(i)", THREAD_ERROR_NONE);
+}
+
struct {
const gchar *interface_name;
const gchar *signal_name;
__property_get_extended_address,
},
{
+ "Set",
+ THREAD_DBUS_PROPERTY_ACTIVE_DATASET_TLVS,
+ __property_set_active_dataset_tlvs,
+ },
+ {
NULL,
NULL,
NULL,
#include "thread.h"
#define NETWORK_DATA_SIZE 256
+#define NETWORK_TLVS_SIZE 1024
+#define DUMMY_TLVS_SIZE 106
+#define DUMMY_TLVS_STR "0e080000000000010000000300001935060004001" \
+ "fffe00208763d64768c8f3ecf0708fdd10ceaadb65a7b05105e1ec3e" \
+ "16d3e0aee52fb7e618a759973030f4f70656e5468726561642d34633" \
+ "33801024c3804103044b2dc6512dce13b11d3386eb2ce7e0c0402a0fff8"
class ThreadNetworkTest : public ::testing::Test
{
uint32_t channel;
uint64_t extendedPanId;
uint16_t panId;
+ uint8_t tlvsBuffer[NETWORK_TLVS_SIZE];
protected:
void SetUp() override
channel = 0x07fff800;
extendedPanId = strtoull("18446744073709551615LL", nullptr, 10);
panId = 65535;
+ makeTlvsBuffer();
}
void TearDown() override
{
thread_deinitialize();
}
+
+private:
+ void makeTlvsBuffer()
+ {
+ for (int i = 0; i < DUMMY_TLVS_SIZE; ++i)
+ {
+ char subBuffer[3];
+ memcpy(subBuffer, &DUMMY_TLVS_STR[2 * i], 2);
+ subBuffer[2] = '\0';
+ tlvsBuffer[i] = (uint8_t)strtol(subBuffer, NULL, 16);
+ }
+ }
};
TEST_F(ThreadNetworkTest, CreateOperationalNetworkNotInitialized)
key, pskc, channel, extendedPanId, panId, &network));
EXPECT_EQ(THREAD_ERROR_NONE,
thread_network_destroy_operational_network(instance, network));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsNotInitialized)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+ EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+ thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsInvalidParameter)
+{
+ EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+ thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsErrorNone)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+ EXPECT_EQ(THREAD_ERROR_NONE,
+ thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
}
\ No newline at end of file