aboutsummaryrefslogtreecommitdiff
path: root/tests/check/gst/gsttag.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-06-08 09:16:25 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-06-08 09:16:25 +0200
commitbed72dff4210fac83b878ac3b0f3ecb78d30d1d2 (patch)
tree9dd932b51f35262b1051648bb79e174f72d275da /tests/check/gst/gsttag.c
parent50f12103f5a136f45bd274ac6a99006a3db5ca4d (diff)
Imported Upstream version 0.11.92upstream/0.11.92
Diffstat (limited to 'tests/check/gst/gsttag.c')
-rw-r--r--tests/check/gst/gsttag.c107
1 files changed, 64 insertions, 43 deletions
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index b690e2d..9dcca2d 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -66,8 +66,8 @@ check_tags_empty (const GstTagList * list)
#define NEW_LIST_FIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, mode, FTAG, FIXED1, FTAG, FIXED2, \
FTAG, FIXED3, FTAG, FIXED4, NULL); \
mark_point(); \
@@ -75,8 +75,8 @@ G_STMT_START { \
#define NEW_LIST_UNFIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, mode, UTAG, UNFIXED1, UTAG, UNFIXED2, \
UTAG, UNFIXED3, UTAG, UNFIXED4, NULL); \
mark_point(); \
@@ -84,56 +84,56 @@ G_STMT_START { \
#define NEW_LISTS_FIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1, \
FTAG, FIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3, \
FTAG, FIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
#define NEW_LISTS_UNFIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, UTAG, UNFIXED1, \
UTAG, UNFIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, UTAG, UNFIXED3,\
UTAG, UNFIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
#define NEW_LISTS_EMPTY1(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
+ if (list) gst_tag_list_unref (list); \
list = NULL; \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3, \
FTAG, FIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
-#define NEW_LISTS_EMPTY2(mode) \
+#define NEW_LISTS_EMPTY2(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1, \
FTAG, FIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
+ if (list2) gst_tag_list_unref (list2); \
list2 = NULL; \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
@@ -185,7 +185,7 @@ GST_START_TEST (test_add)
/* clean up */
if (list)
- gst_tag_list_free (list);
+ gst_tag_list_unref (list);
}
GST_END_TEST
@@ -256,11 +256,11 @@ GST_START_TEST (test_merge)
/* clean up */
if (list)
- gst_tag_list_free (list);
+ gst_tag_list_unref (list);
if (list2)
- gst_tag_list_free (list2);
+ gst_tag_list_unref (list2);
if (merge)
- gst_tag_list_free (merge);
+ gst_tag_list_unref (merge);
}
GST_END_TEST
@@ -282,7 +282,7 @@ GST_START_TEST (test_date_tags)
fail_if (tag_list2 == NULL);
fail_if (!gst_tag_list_get_date (tag_list2, GST_TAG_DATE, &date2));
fail_unless (gst_tag_list_is_equal (tag_list2, tag_list));
- gst_tag_list_free (tag_list2);
+ gst_tag_list_unref (tag_list2);
g_free (str);
fail_if (g_date_compare (date, date2) != 0);
@@ -294,7 +294,7 @@ GST_START_TEST (test_date_tags)
fail_if (g_date_get_year (date2) != 2005);
g_date_free (date2);
- gst_tag_list_free (tag_list);
+ gst_tag_list_unref (tag_list);
g_date_free (date);
}
@@ -306,13 +306,9 @@ GST_START_TEST (test_type)
taglist = gst_tag_list_new_empty ();
fail_unless (GST_IS_TAG_LIST (taglist));
- fail_unless (gst_is_tag_list (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
- /* this isn't okay */
- ASSERT_CRITICAL (fail_if (gst_is_tag_list (NULL)));
-
- /* this however should be fine */
+ /* this should be fine */
fail_if (GST_IS_TAG_LIST (NULL));
/* check gst_tag_list_is_empty */
@@ -321,7 +317,7 @@ GST_START_TEST (test_type)
fail_unless (gst_tag_list_is_empty (taglist));
gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "JD", NULL);
fail_if (gst_tag_list_is_empty (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
}
GST_END_TEST;
@@ -340,7 +336,7 @@ GST_START_TEST (test_set_non_utf8_string)
/* That string field with a non-UTF8 string should not have been added */
fail_unless (gst_tag_list_is_empty (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
}
GST_END_TEST;
@@ -380,7 +376,7 @@ GST_START_TEST (test_buffer_tags)
gst_buffer_unref (buf1);
gst_buffer_unref (buf2);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -399,7 +395,7 @@ GST_START_TEST (test_empty_tags)
ASSERT_WARNING (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
GST_TAG_ARTIST, "", NULL));
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "xyz", NULL);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -425,7 +421,7 @@ GST_START_TEST (test_new_full)
fail_unless_equals_float (track_gain, 4.242);
fail_unless (tags != NULL);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
g_free (artist);
g_free (title);
}
@@ -448,7 +444,7 @@ GST_START_TEST (test_merge_strings_with_comma)
fail_unless (strstr (artists, "Bar") != NULL);
fail_unless (strstr (artists, "Yay") != NULL);
g_free (artists);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -484,8 +480,32 @@ GST_START_TEST (test_equal)
9.87654310, NULL);
fail_unless (!gst_tag_list_is_equal (tags2, tags));
- gst_tag_list_free (tags);
- gst_tag_list_free (tags2);
+ gst_tag_list_unref (tags);
+ gst_tag_list_unref (tags2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_writability)
+{
+ GstTagList *tags, *wtags;
+
+ tags = gst_tag_list_new_empty ();
+ gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
+
+ /* take ref, should no longer be writable */
+ gst_tag_list_ref (tags);
+ ASSERT_CRITICAL (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
+ GST_TAG_ARTIST, "Bar", NULL));
+
+ wtags = gst_tag_list_make_writable (tags);
+ /* should be ok now */
+ gst_tag_list_add (wtags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+ gst_tag_list_unref (wtags);
+
+ /* this too, since we dropped the second ref in make_writable */
+ gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -508,6 +528,7 @@ gst_tag_suite (void)
tcase_add_test (tc_chain, test_empty_tags);
tcase_add_test (tc_chain, test_new_full);
tcase_add_test (tc_chain, test_equal);
+ tcase_add_test (tc_chain, test_writability);
return s;
}