[TEST] Add uniitest for serealize the data
authorgichan <gichan2.jang@samsung.com>
Thu, 1 Sep 2022 02:24:24 +0000 (11:24 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Mon, 5 Sep 2022 05:20:47 +0000 (14:20 +0900)
Add unittest for serialize the data.

Signed-off-by: gichan <gichan2.jang@samsung.com>
tests/unittest_nnstreamer-edge.cc

index ebe86463e9b3f008766d9f4296442358100c202e..3f1bcaca7bcc77be2fdba77bc969c55a67007492 100644 (file)
@@ -2029,6 +2029,240 @@ TEST(edgeData, deserializeInvalidParam04_n)
   nns_edge_free (data);\r
 }\r
 \r
+\r
+/**\r
+ * @brief Serialzie and deserialize the edge-data.\r
+ */\r
+TEST(edgeDataSerialize, normal)\r
+{\r
+  nns_edge_data_h src_h, dest_h;\r
+  void *data1, *data2, *result, *serialized_data;\r
+  size_t data_len, result_len, serialized_len;\r
+  char *result_value;\r
+  unsigned int i, result_count;\r
+  int ret;\r
+\r
+  data_len = 10U * sizeof (unsigned int);\r
+  data1 = malloc (data_len);\r
+  ASSERT_TRUE (data1 != NULL);\r
+\r
+  for (i = 0; i < 10U; i++)\r
+    ((unsigned int *) data1)[i] = i;\r
+\r
+  data2 = malloc (data_len * 2);\r
+  ASSERT_TRUE (data2 != NULL);\r
+\r
+  for (i = 0; i < 20U; i++)\r
+    ((unsigned int *) data2)[i] = 20 - i;\r
+\r
+  ret = nns_edge_data_create (&src_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (src_h, "temp-key1", "temp-data-val1");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  ret = nns_edge_data_set_info (src_h, "temp-key2", "temp-data-val2");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_add (src_h, data1, data_len, free);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  ret = nns_edge_data_add (src_h, data2, data_len * 2, free);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_serialize (src_h, &serialized_data, &serialized_len);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_destroy (src_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_create (&dest_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_deserialize (dest_h, serialized_data);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  /* Compare data and info */\r
+  ret = nns_edge_data_get_count (dest_h, &result_count);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  EXPECT_EQ (result_count, 2U);\r
+\r
+  ret = nns_edge_data_get (dest_h, 0, &result, &result_len);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  for (i = 0; i < 10U; i++)\r
+    EXPECT_EQ (((unsigned int *) result)[i], i);\r
+\r
+  ret = nns_edge_data_get (dest_h, 1, &result, &result_len);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  for (i = 0; i < 20U; i++)\r
+    EXPECT_EQ (((unsigned int *) result)[i], 20 - i);\r
+\r
+  ret = nns_edge_data_get_info (dest_h, "temp-key1", &result_value);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  EXPECT_STREQ (result_value, "temp-data-val1");\r
+  free (result_value);\r
+\r
+  ret = nns_edge_data_get_info (dest_h, "temp-key2", &result_value);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+  EXPECT_STREQ (result_value, "temp-data-val2");\r
+  free (result_value);\r
+\r
+  ret = nns_edge_data_destroy (dest_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
+\r
+/**\r
+ * @brief Serialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataSerialize, invalidParam01_n)\r
+{\r
+  void *data;\r
+  size_t data_len;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_serialize (NULL, &data, &data_len);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
+/**\r
+ * @brief Serialize edge-data - invalid param.\r
+ */\r
+TEST(edgeData, invalidParam02_n)\r
+{\r
+  nns_edge_data_h data_h;\r
+  nns_edge_data_s *ed;\r
+  void *data;\r
+  size_t data_len;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_create (&data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ed = (nns_edge_data_s *) data_h;\r
+  ed->magic = NNS_EDGE_MAGIC_DEAD;\r
+\r
+  ret = nns_edge_data_serialize (data_h, &data, &data_len);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ed->magic = NNS_EDGE_MAGIC;\r
+\r
+  ret = nns_edge_data_destroy (data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
+/**\r
+ * @brief Serialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataSerialize, invalidParam03_n)\r
+{\r
+  nns_edge_data_h data_h;\r
+  size_t data_len;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_create (&data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_serialize (data_h, NULL, &data_len);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_destroy (data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
+/**\r
+ * @brief Serialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataSerialize, invalidParam04_n)\r
+{\r
+  nns_edge_data_h data_h;\r
+  void *data;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_create (&data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_serialize_meta (data_h, &data, NULL);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_destroy (data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
+/**\r
+ * @brief Derialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataDeserialize, invalidParam01_n)\r
+{\r
+  void *data = NULL;\r
+  size_t data_len;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_deserialize (NULL, data);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  nns_edge_free (data);\r
+}\r
+\r
+/**\r
+ * @brief Derialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataDeserialize, invalidParam02_n)\r
+{\r
+  nns_edge_data_h data_h;\r
+  nns_edge_data_s *ed;\r
+  void *data;\r
+  size_t data_len;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_create (&data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_serialize_meta (data_h, &data, &data_len);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ed = (nns_edge_data_s *) data_h;\r
+  ed->magic = NNS_EDGE_MAGIC_DEAD;\r
+\r
+  ret = nns_edge_data_deserialize (data_h, data);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ed->magic = NNS_EDGE_MAGIC;\r
+\r
+  ret = nns_edge_data_destroy (data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  nns_edge_free (data);\r
+}\r
+\r
+/**\r
+ * @brief Derialize edge-data - invalid param.\r
+ */\r
+TEST(edgeDataDeserialize, invalidParam03_n)\r
+{\r
+  nns_edge_data_h data_h;\r
+  int ret;\r
+\r
+  ret = nns_edge_data_create (&data_h);\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");\r
+  EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
+\r
+  ret = nns_edge_data_deserialize (data_h, NULL);\r
+  EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
+}\r
+\r
 /**\r
  * @brief Create edge event - invalid param.\r
  */\r