aboutsummaryrefslogtreecommitdiff
path: root/tests/check/gst/gstmeta.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-05-21 11:12:23 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-05-21 11:12:23 +0200
commit50f12103f5a136f45bd274ac6a99006a3db5ca4d (patch)
treecb44f58b9f1cc9256a83b87d28d6cdaf10b2c4b4 /tests/check/gst/gstmeta.c
parent54399760aad93cb3ec36162ced7649c8cd8286db (diff)
Imported Upstream version 0.11.91upstream/0.11.91
Diffstat (limited to 'tests/check/gst/gstmeta.c')
-rw-r--r--tests/check/gst/gstmeta.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/check/gst/gstmeta.c b/tests/check/gst/gstmeta.c
index 2840196..73b5d56 100644
--- a/tests/check/gst/gstmeta.c
+++ b/tests/check/gst/gstmeta.c
@@ -210,6 +210,40 @@ GST_START_TEST (test_meta_test)
GST_END_TEST;
+static gboolean
+foreach_meta (GstBuffer * buffer, GstMeta ** meta, gpointer user_data)
+{
+ /* try to remove */
+ *meta = NULL;
+ return TRUE;
+}
+
+GST_START_TEST (test_meta_locked)
+{
+ GstBuffer *buffer;
+ GstMetaTest *meta;
+
+ buffer = gst_buffer_new_and_alloc (4);
+ fail_if (buffer == NULL);
+
+ /* add some metadata */
+ meta = GST_META_TEST_ADD (buffer);
+ fail_if (meta == NULL);
+ GST_META_FLAG_SET (meta, GST_META_FLAG_LOCKED);
+
+ ASSERT_CRITICAL (gst_buffer_remove_meta (buffer, (GstMeta *) meta));
+ ASSERT_CRITICAL (gst_buffer_foreach_meta (buffer, foreach_meta, NULL));
+
+ GST_META_FLAG_UNSET (meta, GST_META_FLAG_LOCKED);
+
+ gst_buffer_remove_meta (buffer, (GstMeta *) meta);
+
+ /* clean up */
+ gst_buffer_unref (buffer);
+}
+
+GST_END_TEST;
+
static Suite *
gst_buffermeta_suite (void)
{
@@ -218,6 +252,7 @@ gst_buffermeta_suite (void)
suite_add_tcase (s, tc_chain);
tcase_add_test (tc_chain, test_meta_test);
+ tcase_add_test (tc_chain, test_meta_locked);
return s;
}