}
/**
+ * @brief Magic number of tensor meta.
+ */
+#define GST_TENSOR_META_MAGIC (0xfeedcced)
+
+/**
+ * @brief Macro to check the tensor meta.
+ */
+#define GST_TENSOR_META_MAGIC_VALID(m) ((m) == GST_TENSOR_META_MAGIC)
+
+/**
* @brief Macro to check the meta version.
*/
#define GST_TENSOR_META_VERSION_VALID(v) (((v) & 0xDE000000) == 0xDE000000)
/* zero-init */
memset (meta, 0, sizeof (GstTensorMetaInfo));
+ meta->magic = GST_TENSOR_META_MAGIC;
meta->version = GST_TENSOR_META_VERSION;
meta->type = _NNS_END;
meta->format = _NNS_TENSOR_FORMAT_STATIC;
guint * major, guint * minor)
{
g_return_if_fail (meta != NULL);
+ g_return_if_fail (GST_TENSOR_META_MAGIC_VALID (meta->magic));
g_return_if_fail (GST_TENSOR_META_VERSION_VALID (meta->version));
if (major)
guint i;
g_return_val_if_fail (meta != NULL, FALSE);
+ g_return_val_if_fail (GST_TENSOR_META_MAGIC_VALID (meta->magic), FALSE);
g_return_val_if_fail (GST_TENSOR_META_VERSION_VALID (meta->version), FALSE);
if (meta->type >= _NNS_END) {
gst_tensor_meta_info_get_header_size (GstTensorMetaInfo * meta)
{
g_return_val_if_fail (meta != NULL, 0);
+ g_return_val_if_fail (GST_TENSOR_META_MAGIC_VALID (meta->magic), 0);
g_return_val_if_fail (GST_TENSOR_META_VERSION_VALID (meta->version), 0);
/* return fixed size for meta version */
gsize dsize;
g_return_val_if_fail (meta != NULL, 0);
+ g_return_val_if_fail (GST_TENSOR_META_MAGIC_VALID (meta->magic), 0);
g_return_val_if_fail (GST_TENSOR_META_VERSION_VALID (meta->version), 0);
dsize = gst_tensor_get_element_size (meta->type);
gst_tensor_meta_info_init (meta);
- meta->version = val[0];
- meta->type = val[1];
- memcpy (meta->dimension, &val[2],
+ meta->magic = val[0];
+ meta->version = val[1];
+ meta->type = val[2];
+ memcpy (meta->dimension, &val[3],
sizeof (uint32_t) * NNS_TENSOR_META_RANK_LIMIT);
- meta->format = val[18];
- meta->media_type = val[19];
+ meta->format = val[19];
+ meta->media_type = val[20];
switch ((tensor_format) meta->format) {
case _NNS_TENSOR_FORMAT_SPARSE:
- meta->sparse_info.nnz = val[20];
+ meta->sparse_info.nnz = val[21];
break;
default:
break;
}
/**
- * @brief Test for tensor meta info (header size with invalid meta).
+ * @brief Test for tensor meta info (header size with invalid magic).
*/
TEST (commonMetaInfo, headerSizeInvalidParam02_n)
{
- GstTensorMetaInfo meta = {
- 0,
- };
+ GstTensorMetaInfo meta;
+ gsize hsize;
+
+ gst_tensor_meta_info_init (&meta);
+ meta.magic = 0U;
+ hsize = gst_tensor_meta_info_get_header_size (&meta);
+ EXPECT_EQ (hsize, 0U);
+}
+
+/**
+ * @brief Test for tensor meta info (header size with invalid version).
+ */
+TEST (commonMetaInfo, headerSizeInvalidParam03_n)
+{
+ GstTensorMetaInfo meta;
gsize hsize;
+ gst_tensor_meta_info_init (&meta);
+ meta.version = 0U;
hsize = gst_tensor_meta_info_get_header_size (&meta);
EXPECT_EQ (hsize, 0U);
}
}
/**
- * @brief Test for tensor meta info (data size with invalid meta).
+ * @brief Test for tensor meta info (data size with invalid magic).
*/
TEST (commonMetaInfo, dataSizeInvalidParam02_n)
{
- GstTensorMetaInfo meta = {
- 0,
- };
+ GstTensorMetaInfo meta;
+ gsize dsize;
+
+ gst_tensor_meta_info_init (&meta);
+ meta.magic = 0U;
+ dsize = gst_tensor_meta_info_get_data_size (&meta);
+ EXPECT_EQ (dsize, 0U);
+}
+
+/**
+ * @brief Test for tensor meta info (data size with invalid version).
+ */
+TEST (commonMetaInfo, dataSizeInvalidParam03_n)
+{
+ GstTensorMetaInfo meta;
gsize dsize;
+ gst_tensor_meta_info_init (&meta);
+ meta.version = 0U;
dsize = gst_tensor_meta_info_get_data_size (&meta);
EXPECT_EQ (dsize, 0U);
}
}
/**
- * @brief Test for tensor meta info (validate meta with invalid meta).
+ * @brief Test for tensor meta info (validate meta with invalid magic).
*/
TEST (commonMetaInfo, validateInvalidParam02_n)
{
- GstTensorMetaInfo meta = {
- 0,
- };
+ GstTensorMetaInfo meta;
+ gboolean valid;
+
+ gst_tensor_meta_info_init (&meta);
+ meta.magic = 0U;
+ valid = gst_tensor_meta_info_validate (&meta);
+ EXPECT_FALSE (valid);
+}
+
+/**
+ * @brief Test for tensor meta info (validate meta with invalid version).
+ */
+TEST (commonMetaInfo, validateInvalidParam03_n)
+{
+ GstTensorMetaInfo meta;
gboolean valid;
- /* invalid version */
+ gst_tensor_meta_info_init (&meta);
+ meta.version = 0U;
valid = gst_tensor_meta_info_validate (&meta);
EXPECT_FALSE (valid);
+}
+
+/**
+ * @brief Test for tensor meta info (validate meta with invalid meta).
+ */
+TEST (commonMetaInfo, validateInvalidParam04_n)
+{
+ GstTensorMetaInfo meta;
+ gboolean valid;
/* set valid meta */
gst_tensor_meta_info_init (&meta);