diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-05-21 11:12:23 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-05-21 11:12:23 +0200 |
commit | 50f12103f5a136f45bd274ac6a99006a3db5ca4d (patch) | |
tree | cb44f58b9f1cc9256a83b87d28d6cdaf10b2c4b4 /tests/check/gst/gstmeta.c | |
parent | 54399760aad93cb3ec36162ced7649c8cd8286db (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.c | 35 |
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; } |