From bb3914dd3018b7c4bf207d86aaf0380e5245b44e Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sat, 9 Jul 2005 16:36:18 +0000 Subject: [PATCH] add debugging category use GST_START_TEST now, so we add a debug line Original commit message from CVS: add debugging category use GST_START_TEST now, so we add a debug line --- ChangeLog | 30 ++++++++++++++ check/elements/gstfakesrc.c | 4 +- check/gst-libs/gdp.c | 16 ++++---- check/gst/gst.c | 4 +- check/gst/gstbin.c | 64 +++++++++++++++++++++++++++-- check/gst/gstbuffer.c | 9 ++-- check/gst/gstbus.c | 4 +- check/gst/gstcaps.c | 16 ++++---- check/gst/gstdata.c | 20 ++++----- check/gst/gstelement.c | 8 ++-- check/gst/gstghostpad.c | 4 +- check/gst/gstiterator.c | 12 +++--- check/gst/gstmessage.c | 4 +- check/gst/gstobject.c | 32 +++++++-------- check/gst/gstpad.c | 16 ++++---- check/gst/gststructure.c | 4 +- check/gst/gstsystemclock.c | 12 +++--- check/gst/gsttag.c | 4 +- check/gst/gstvalue.c | 32 +++++++-------- check/gstcheck.c | 3 ++ check/gstcheck.h | 15 +++++++ check/pipelines/cleanup.c | 4 +- check/pipelines/simple_launch_lines.c | 8 ++-- check/states/sinks.c | 16 ++++---- tests/check/elements/gstfakesrc.c | 4 +- tests/check/generic/sinks.c | 16 ++++---- tests/check/gst/gst.c | 4 +- tests/check/gst/gstbin.c | 64 +++++++++++++++++++++++++++-- tests/check/gst/gstbuffer.c | 9 ++-- tests/check/gst/gstbus.c | 4 +- tests/check/gst/gstcaps.c | 16 ++++---- tests/check/gst/gstdata.c | 20 ++++----- tests/check/gst/gstelement.c | 8 ++-- tests/check/gst/gstghostpad.c | 4 +- tests/check/gst/gstiterator.c | 12 +++--- tests/check/gst/gstmessage.c | 4 +- tests/check/gst/gstobject.c | 32 +++++++-------- tests/check/gst/gstpad.c | 16 ++++---- tests/check/gst/gststructure.c | 4 +- tests/check/gst/gstsystemclock.c | 12 +++--- tests/check/gst/gsttag.c | 4 +- tests/check/gst/gstvalue.c | 32 +++++++-------- tests/check/gstcheck.c | 3 ++ tests/check/gstcheck.h | 15 +++++++ tests/check/libs/gdp.c | 16 ++++---- tests/check/pipelines/cleanup.c | 4 +- tests/check/pipelines/simple-launch-lines.c | 8 ++-- 47 files changed, 416 insertions(+), 236 deletions(-) diff --git a/ChangeLog b/ChangeLog index a248178..a5c71be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,35 @@ 2005-07-09 Thomas Vander Stichele + * check/elements/gstfakesrc.c: (chain_func), (event_func), + (GST_START_TEST), (fakesrc_suite): + * check/gst-libs/gdp.c: (GST_START_TEST): + * check/gst/gst.c: (GST_START_TEST): + * check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite): + * check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite): + * check/gst/gstbus.c: (GST_START_TEST): + * check/gst/gstcaps.c: (GST_START_TEST): + * check/gst/gstdata.c: (GST_START_TEST): + * check/gst/gstelement.c: (GST_START_TEST): + * check/gst/gstghostpad.c: (GST_START_TEST): + * check/gst/gstiterator.c: (GST_START_TEST): + * check/gst/gstmessage.c: (GST_START_TEST): + * check/gst/gstobject.c: (GST_START_TEST): + * check/gst/gstpad.c: (GST_START_TEST): + * check/gst/gststructure.c: (GST_START_TEST): + * check/gst/gstsystemclock.c: (GST_START_TEST), + (gst_systemclock_suite): + * check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite): + * check/gst/gstvalue.c: (GST_START_TEST): + * check/pipelines/cleanup.c: (GST_START_TEST): + * check/pipelines/simple_launch_lines.c: (GST_START_TEST): + * check/states/sinks.c: (GST_START_TEST): + * check/gstcheck.c: (gst_check_init): + * check/gstcheck.h: + add debugging category + use GST_START_TEST now, so we add a debug line + +2005-07-09 Thomas Vander Stichele + * check/gst/gstbin.c: (START_TEST), (gst_bin_suite): add test for state change message on a bin * check/gst/gstelement.c: (START_TEST), (gst_element_suite): diff --git a/check/elements/gstfakesrc.c b/check/elements/gstfakesrc.c index e5a400a..bcd9d1d 100644 --- a/check/elements/gstfakesrc.c +++ b/check/elements/gstfakesrc.c @@ -55,7 +55,7 @@ event_func (GstPad * pad, GstEvent * event) return FALSE; } -START_TEST (test_num_buffers) +GST_START_TEST (test_num_buffers) { GstElement *src; GstScheduler *scheduler; @@ -95,7 +95,7 @@ START_TEST (test_num_buffers) g_list_free (buffers); } -END_TEST; +GST_END_TEST; Suite * fakesrc_suite (void) diff --git a/check/gst-libs/gdp.c b/check/gst-libs/gdp.c index fdcb0cf..0af1ead 100644 --- a/check/gst-libs/gdp.c +++ b/check/gst-libs/gdp.c @@ -26,7 +26,7 @@ #include "libs/gst/dataprotocol/dp-private.h" /* private header */ /* test our method of reading and writing headers using TO/FROM_BE */ -START_TEST (test_conversion) +GST_START_TEST (test_conversion) { guint8 array[9]; guint8 write_array[9]; @@ -81,9 +81,9 @@ START_TEST (test_conversion) "GST_WRITE_UINT64_BE: memcmp failed"); } -END_TEST +GST_END_TEST /* test creation of header from buffer and back again */ -START_TEST (test_buffer) +GST_START_TEST (test_buffer) { GstBuffer *buffer; GstBuffer *newbuffer; @@ -141,8 +141,8 @@ START_TEST (test_buffer) g_free (header); } -END_TEST -START_TEST (test_caps) +GST_END_TEST +GST_START_TEST (test_caps) { gchar *string, *newstring; GstCaps *caps, *newcaps; @@ -173,8 +173,8 @@ START_TEST (test_caps) g_free (newstring); } -END_TEST -START_TEST (test_event) +GST_END_TEST +GST_START_TEST (test_event) { GstEvent *send; GstEvent *receive; @@ -240,7 +240,7 @@ START_TEST (test_event) gst_event_unref (send); gst_event_unref (receive); } -END_TEST Suite * +GST_END_TEST Suite * gst_object_suite (void) { Suite *s = suite_create ("data protocol"); diff --git a/check/gst/gst.c b/check/gst/gst.c index b6e889b..dbcefec 100644 --- a/check/gst/gst.c +++ b/check/gst/gst.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_init) +GST_START_TEST (test_init) { /* don't segfault with NULL, NULL */ gst_init (NULL, NULL); @@ -29,7 +29,7 @@ START_TEST (test_init) gst_init (NULL, NULL); } -END_TEST; +GST_END_TEST; Suite * gst_suite (void) diff --git a/check/gst/gstbin.c b/check/gst/gstbin.c index 4e68529..ae29928 100644 --- a/check/gst/gstbin.c +++ b/check/gst/gstbin.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_interface) +GST_START_TEST (test_interface) { GstBin *bin, *bin2; GstElement *filesrc; @@ -83,9 +83,9 @@ START_TEST (test_interface) gst_object_unref (bin); } -END_TEST; +GST_END_TEST; -START_TEST (test_message_state_changed) +GST_START_TEST (test_message_state_changed) { GstBin *bin; GstBus *bus; @@ -116,7 +116,62 @@ START_TEST (test_message_state_changed) gst_object_unref (bin); } -END_TEST; +GST_END_TEST; + +GST_START_TEST (test_message_state_changed_child) +{ + GstBin *bin; + GstElement *src; + GstBus *bus; + GstMessage *message; + + bin = GST_BIN (gst_bin_new (NULL)); + fail_unless (bin != NULL, "Could not create bin"); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + + src = gst_element_factory_make ("fakesrc", NULL); + fail_if (src == NULL, "Could not create fakesrc"); + gst_bin_add (bin, src); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + + bus = GST_ELEMENT_BUS (bin); + + /* change state, spawning three messages: + * - first for fakesrc, causing incref on fakesrc + * - then two on bin, causing an incref on the bin */ + GST_DEBUG ("setting bin to READY"); + gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY); + + ASSERT_OBJECT_REFCOUNT (src, "src", 2); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 2); + + /* get and unref the message, causing a decref on the src */ + fail_unless (gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1) + == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); + + message = gst_bus_pop (bus); + gst_message_unref (message); + + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 2); + + /* get and unref message 2, causing a decref on the bin */ + fail_unless (gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1) + == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); + + message = gst_bus_pop (bus); + gst_message_unref (message); + + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + + /* clean up */ + gst_object_unref (bin); +} + +GST_END_TEST; + Suite * gst_bin_suite (void) @@ -127,6 +182,7 @@ gst_bin_suite (void) suite_add_tcase (s, tc_chain); tcase_add_test (tc_chain, test_interface); tcase_add_test (tc_chain, test_message_state_changed); + tcase_add_test (tc_chain, test_message_state_changed_child); return s; } diff --git a/check/gst/gstbuffer.c b/check/gst/gstbuffer.c index 58fff79..8d32f54 100644 --- a/check/gst/gstbuffer.c +++ b/check/gst/gstbuffer.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_subbuffer) +GST_START_TEST (test_subbuffer) { GstBuffer *buffer, *sub; int rc; @@ -41,8 +41,8 @@ START_TEST (test_subbuffer) gst_buffer_unref (buffer); } -END_TEST -START_TEST (test_is_span_fast) +GST_END_TEST +GST_START_TEST (test_is_span_fast) { GstBuffer *buffer, *sub1, *sub2; @@ -63,7 +63,8 @@ START_TEST (test_is_span_fast) fail_if (gst_buffer_is_span_fast (sub1, sub2) == FALSE, "two subbuffers next to each other should be span_fast"); } -END_TEST Suite * gst_test_suite (void) +GST_END_TEST Suite * +gst_test_suite (void) { Suite *s = suite_create ("GstBuffer"); TCase *tc_chain = tcase_create ("general"); diff --git a/check/gst/gstbus.c b/check/gst/gstbus.c index 8440af0..f1677ed 100644 --- a/check/gst/gstbus.c +++ b/check/gst/gstbus.c @@ -81,7 +81,7 @@ pull_messages () g_return_if_fail (message_ids[i] == NUM_MESSAGES); } -START_TEST (test_hammer_bus) +GST_START_TEST (test_hammer_bus) { GThread *threads[NUM_THREADS]; gint i; @@ -99,7 +99,7 @@ START_TEST (test_hammer_bus) gst_object_unref ((GstObject *) test_bus); } -END_TEST Suite * +GST_END_TEST Suite * gstbus_suite (void) { Suite *s = suite_create ("GstBus"); diff --git a/check/gst/gstcaps.c b/check/gst/gstcaps.c index 0ee0acf..df5da49 100644 --- a/check/gst/gstcaps.c +++ b/check/gst/gstcaps.c @@ -24,7 +24,7 @@ #include "../gstcheck.h" #include "capslist.h" -START_TEST (test_from_string) +GST_START_TEST (test_from_string) { GstCaps *caps; int i; @@ -37,9 +37,9 @@ START_TEST (test_from_string) } } -END_TEST; +GST_END_TEST; -START_TEST (test_buffer) +GST_START_TEST (test_buffer) { GstCaps *c1; GstBuffer *buffer; @@ -53,9 +53,9 @@ START_TEST (test_buffer) gst_buffer_unref (buffer); } -END_TEST; +GST_END_TEST; -START_TEST (test_double_append) +GST_START_TEST (test_double_append) { GstStructure *s1; GstCaps *c1; @@ -66,9 +66,9 @@ START_TEST (test_double_append) ASSERT_CRITICAL (gst_caps_append_structure (c1, s1)); } -END_TEST; +GST_END_TEST; -START_TEST (test_mutability) +GST_START_TEST (test_mutability) { GstStructure *s1; GstCaps *c1; @@ -95,7 +95,7 @@ START_TEST (test_mutability) fail_unless (ret == 1); } -END_TEST; +GST_END_TEST; Suite * gst_caps_suite (void) diff --git a/check/gst/gstdata.c b/check/gst/gstdata.c index 54f0a6a..8aefcb1 100644 --- a/check/gst/gstdata.c +++ b/check/gst/gstdata.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_copy) +GST_START_TEST (test_copy) { GstBuffer *buffer, *copy; @@ -35,8 +35,8 @@ START_TEST (test_copy) "Copy of buffer has different size"); } -END_TEST -START_TEST (test_is_writable) +GST_END_TEST +GST_START_TEST (test_is_writable) { GstBuffer *buffer; GstData *data; @@ -60,8 +60,8 @@ START_TEST (test_is_writable) "A buffer with two refs should not be writable"); } -END_TEST -START_TEST (test_copy_on_write) +GST_END_TEST +GST_START_TEST (test_copy_on_write) { GstBuffer *buffer; GstData *data, *data2, *data3; @@ -90,7 +90,7 @@ START_TEST (test_copy_on_write) } -END_TEST gint num_threads = 10; +GST_END_TEST gint num_threads = 10; gint refs_per_thread = 10000; /* test thread-safe refcounting of GstData */ @@ -110,7 +110,7 @@ thread_ref (GstData * data) g_message ("thread stopped\n"); } -START_TEST (test_ref_threaded) +GST_START_TEST (test_ref_threaded) { GstBuffer *buffer; GstData *data; @@ -128,7 +128,7 @@ START_TEST (test_ref_threaded) fail_unless (GST_DATA_REFCOUNT_VALUE (data) == expected, "Refcount of data is %d != %d", GST_DATA_REFCOUNT_VALUE (data), expected); } -END_TEST void +GST_END_TEST void thread_unref (GstData * data) { int j; @@ -143,7 +143,7 @@ thread_unref (GstData * data) } } -START_TEST (test_unref_threaded) +GST_START_TEST (test_unref_threaded) { GstBuffer *buffer; GstData *data; @@ -164,7 +164,7 @@ START_TEST (test_unref_threaded) /* final unref */ gst_data_unref (data); } -END_TEST Suite * +GST_END_TEST Suite * gst_data_suite (void) { Suite *s = suite_create ("GstData"); diff --git a/check/gst/gstelement.c b/check/gst/gstelement.c index 36cff21..e690fec 100644 --- a/check/gst/gstelement.c +++ b/check/gst/gstelement.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_add_remove_pad) +GST_START_TEST (test_add_remove_pad) { GstElement *e; GstPad *p; @@ -47,9 +47,9 @@ START_TEST (test_add_remove_pad) gst_object_unref (p); } -END_TEST; +GST_END_TEST; -START_TEST (test_add_pad_unref_element) +GST_START_TEST (test_add_pad_unref_element) { GstElement *e; GstPad *p; @@ -76,7 +76,7 @@ START_TEST (test_add_pad_unref_element) gst_object_unref (p); } -END_TEST; +GST_END_TEST; Suite * diff --git a/check/gst/gstghostpad.c b/check/gst/gstghostpad.c index 4fcc6b6..dd0f47a 100644 --- a/check/gst/gstghostpad.c +++ b/check/gst/gstghostpad.c @@ -29,7 +29,7 @@ assert_gstrefcount (gpointer p, gint i) GST_OBJECT_REFCOUNT_VALUE (p)); } -START_TEST (test_ghost_pads) +GST_START_TEST (test_ghost_pads) { GstElement *b1, *b2, *src, *i1, *sink; GstPad *gsink, *gsrc, *gisrc, *gisink, *isink, *isrc, *fsrc, *fsink; @@ -124,7 +124,7 @@ START_TEST (test_ghost_pads) gst_object_unref (gisink); assert_gstrefcount (fsink, 1); } -END_TEST Suite * +GST_END_TEST Suite * gst_ghost_pad_suite (void) { Suite *s = suite_create ("GstGhostPad"); diff --git a/check/gst/gstiterator.c b/check/gst/gstiterator.c index aa9a27e..01378fc 100644 --- a/check/gst/gstiterator.c +++ b/check/gst/gstiterator.c @@ -37,7 +37,7 @@ make_list_of_ints (gint n) #define NUM_ELEMENTS 10 -START_TEST (test_manual_iteration) +GST_START_TEST (test_manual_iteration) { GList *l; guint32 cookie = 0; @@ -70,8 +70,8 @@ START_TEST (test_manual_iteration) gst_iterator_free (iter); } -END_TEST -START_TEST (test_resync) +GST_END_TEST +GST_START_TEST (test_resync) { GList *l; guint32 cookie = 0; @@ -115,14 +115,14 @@ START_TEST (test_resync) gst_iterator_free (iter); } -END_TEST static gboolean +GST_END_TEST static gboolean add_fold_func (gpointer item, GValue * ret, gpointer user_data) { g_value_set_int (ret, g_value_get_int (ret) + GPOINTER_TO_INT (item)); return TRUE; } -START_TEST (test_fold) +GST_START_TEST (test_fold) { GList *l; guint32 cookie = 0; @@ -149,7 +149,7 @@ START_TEST (test_fold) g_return_if_fail (res == GST_ITERATOR_DONE); g_return_if_fail (g_value_get_int (&ret) == expected); } -END_TEST Suite * +GST_END_TEST Suite * gstiterator_suite (void) { Suite *s = suite_create ("GstIterator"); diff --git a/check/gst/gstmessage.c b/check/gst/gstmessage.c index aeda1b5..a55a6ba 100644 --- a/check/gst/gstmessage.c +++ b/check/gst/gstmessage.c @@ -24,7 +24,7 @@ static GQuark domain; -START_TEST (test_parsing) +GST_START_TEST (test_parsing) { GstMessage *message; @@ -172,7 +172,7 @@ START_TEST (test_parsing) } -END_TEST Suite * +GST_END_TEST Suite * gst_data_suite (void) { Suite *s = suite_create ("GstMessage"); diff --git a/check/gst/gstobject.c b/check/gst/gstobject.c index a6cde2f..a7dccb3 100644 --- a/check/gst/gstobject.c +++ b/check/gst/gstobject.c @@ -67,7 +67,7 @@ gst_fake_object_get_type (void) } /* g_object_new on abstract GstObject should fail */ -START_TEST (test_fail_abstract_new) +GST_START_TEST (test_fail_abstract_new) { GstObject *object; @@ -75,9 +75,9 @@ START_TEST (test_fail_abstract_new) fail_unless (object == NULL, "Created an instance of abstract GstObject"); } -END_TEST +GST_END_TEST /* g_object_new on GstFakeObject should succeed */ -START_TEST (test_fake_object_new) +GST_START_TEST (test_fake_object_new) { GstObject *object; @@ -87,9 +87,9 @@ START_TEST (test_fake_object_new) "GstFakeObject instance is not a GstObject"); } -END_TEST +GST_END_TEST /* GstFakeObject name tests */ -START_TEST (test_fake_object_name) +GST_START_TEST (test_fake_object_name) { GstObject *object; gchar *name; @@ -125,7 +125,7 @@ START_TEST (test_fake_object_name) g_free (name2); } -END_TEST +GST_END_TEST /* thread function for threaded name change test */ gpointer thread_name_object (GstObject * object) { @@ -156,7 +156,7 @@ END_TEST * constantly; fails because lock is released inbetween set and get */ -START_TEST (test_fake_object_name_threaded_wrong) +GST_START_TEST (test_fake_object_name_threaded_wrong) { GstObject *object; gchar *name; @@ -188,12 +188,12 @@ START_TEST (test_fake_object_name_threaded_wrong) fail_unless (expected_failure, "name did not get changed"); } -END_TEST +GST_END_TEST /* * main thread sets and gets name directly on struct inside the object lock * succeed because lock is held during set/get, and threads are locked out */ -START_TEST (test_fake_object_name_threaded_right) +GST_START_TEST (test_fake_object_name_threaded_right) { GstObject *object; gchar *name; @@ -222,7 +222,7 @@ START_TEST (test_fake_object_name_threaded_right) MAIN_STOP_THREADS (); } -END_TEST +GST_END_TEST /* * main thread creates lots of objects * child threads sets default names on objects @@ -280,7 +280,7 @@ gst_object_name_compare (GstObject * o, GstObject * p) return result; } -START_TEST (test_fake_object_name_threaded_unique) +GST_START_TEST (test_fake_object_name_threaded_unique) { GstObject *object; gint i; @@ -326,9 +326,9 @@ START_TEST (test_fake_object_name_threaded_unique) g_list_foreach (object_list, (GFunc) g_object_unref, NULL); } -END_TEST +GST_END_TEST /* parentage test on GstFakeObject */ -START_TEST (test_fake_object_parentage) +GST_START_TEST (test_fake_object_parentage) { GstObject *object1, *object2; GstObject *parent; @@ -402,13 +402,13 @@ START_TEST (test_fake_object_parentage) gst_object_unref (object2); } -END_TEST +GST_END_TEST /* parentage test dispose on GstFakeObject, since our testcase * does not handle the parent relation completely, the parent does * not hold a ref to the child, we cannot dispose the parent to * dipose the child as well. This test needs to be run with DEBUG * info to check if the finalize methods are called correctly. */ -START_TEST (test_fake_object_parentage_dispose) +GST_START_TEST (test_fake_object_parentage_dispose) { GstObject *object1, *object2; gboolean result; @@ -431,7 +431,7 @@ START_TEST (test_fake_object_parentage_dispose) gst_object_unref (object2); } -END_TEST +GST_END_TEST /* test: try renaming a parented object, make sure it fails */ Suite * gst_object_suite (void) { diff --git a/check/gst/gstpad.c b/check/gst/gstpad.c index 182313b..7ae7a2b 100644 --- a/check/gst/gstpad.c +++ b/check/gst/gstpad.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_link) +GST_START_TEST (test_link) { GstPad *src, *sink; GstPadTemplate *srct; @@ -48,7 +48,7 @@ START_TEST (test_link) fail_unless (srct == NULL); } -END_TEST; +GST_END_TEST; /* threaded link/unlink */ /* use globals */ @@ -66,7 +66,7 @@ thread_link_unlink (gpointer data) } } -START_TEST (test_link_unlink_threaded) +GST_START_TEST (test_link_unlink_threaded) { GstCaps *caps; int i; @@ -89,9 +89,9 @@ START_TEST (test_link_unlink_threaded) MAIN_STOP_THREADS (); } -END_TEST; +GST_END_TEST; -START_TEST (test_refcount) +GST_START_TEST (test_refcount) { GstPad *src, *sink; GstCaps *caps; @@ -127,9 +127,9 @@ START_TEST (test_refcount) gst_caps_unref (caps); } -END_TEST; +GST_END_TEST; -START_TEST (test_get_allowed_caps) +GST_START_TEST (test_get_allowed_caps) { GstPad *src, *sink; GstCaps *caps, *gotcaps; @@ -180,7 +180,7 @@ START_TEST (test_get_allowed_caps) gst_caps_unref (caps); } -END_TEST; +GST_END_TEST; Suite * gst_pad_suite (void) diff --git a/check/gst/gststructure.c b/check/gst/gststructure.c index 4da6b1b..93c8cc0 100644 --- a/check/gst/gststructure.c +++ b/check/gst/gststructure.c @@ -23,7 +23,7 @@ #include "../gstcheck.h" -START_TEST (test_from_string_int) +GST_START_TEST (test_from_string_int) { const char *strings[] = { "video/x-raw-rgb, width = (int) 123456", @@ -63,7 +63,7 @@ START_TEST (test_from_string_int) } } -END_TEST; +GST_END_TEST; Suite * gst_value_suite (void) diff --git a/check/gst/gstsystemclock.c b/check/gst/gstsystemclock.c index 462f4b5..a20e98f 100644 --- a/check/gst/gstsystemclock.c +++ b/check/gst/gstsystemclock.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_signedness) +GST_START_TEST (test_signedness) { GstClockTime time[] = { 0, 1, G_MAXUINT64 / GST_SECOND }; GstClockTimeDiff diff[] = @@ -36,7 +36,7 @@ START_TEST (test_signedness) } } -END_TEST +GST_END_TEST #define TIME_UNIT GST_SECOND static void gst_clock_debug (GstClock * clock) @@ -65,7 +65,7 @@ error_callback (GstClock * clock, GstClockTime time, return FALSE; } -START_TEST (test_single_shot) +GST_START_TEST (test_single_shot) { GstClock *clock; GstClockID id, id2; @@ -128,8 +128,8 @@ START_TEST (test_single_shot) g_usleep (2 * G_USEC_PER_SEC); } -END_TEST -START_TEST (test_periodic_shot) +GST_END_TEST +GST_START_TEST (test_periodic_shot) { GstClock *clock; GstClockID id, id2; @@ -187,7 +187,7 @@ START_TEST (test_periodic_shot) g_usleep (2 * G_USEC_PER_SEC); } -END_TEST Suite * gst_systemclock_suite (void) +GST_END_TEST Suite * gst_systemclock_suite (void) { Suite *s = suite_create ("GstSystemClock"); TCase *tc_chain = tcase_create ("waiting"); diff --git a/check/gst/gsttag.c b/check/gst/gsttag.c index 1cc55a4..1b33971 100644 --- a/check/gst/gsttag.c +++ b/check/gst/gsttag.c @@ -102,7 +102,7 @@ G_STMT_START { \ } G_STMT_END; -START_TEST (test_merge) +GST_START_TEST (test_merge) { GstTagList *list = NULL, *list2 = NULL, *merge = NULL; @@ -173,7 +173,7 @@ START_TEST (test_merge) check_tags (merge, FTAG, FIXED1, NULL); } -END_TEST Suite * +GST_END_TEST Suite * gst_tag_suite (void) { Suite *s = suite_create ("GstTag"); diff --git a/check/gst/gstvalue.c b/check/gst/gstvalue.c index 29bbc88..d78e899 100644 --- a/check/gst/gstvalue.c +++ b/check/gst/gstvalue.c @@ -24,7 +24,7 @@ #include "../gstcheck.h" -START_TEST (test_deserialize_buffer) +GST_START_TEST (test_deserialize_buffer) { GValue value = { 0 }; @@ -32,9 +32,9 @@ START_TEST (test_deserialize_buffer) fail_unless (gst_value_deserialize (&value, "1234567890abcdef")); } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint64) +GST_START_TEST (test_deserialize_gint64) { GValue value = { 0 }; const char *strings[] = { @@ -58,9 +58,9 @@ START_TEST (test_deserialize_gint64) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint) +GST_START_TEST (test_deserialize_gint) { GValue value = { 0 }; const char *strings[] = { @@ -112,9 +112,9 @@ START_TEST (test_deserialize_gint) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint_failures) +GST_START_TEST (test_deserialize_gint_failures) { GValue value = { 0 }; const char *strings[] = { @@ -138,9 +138,9 @@ START_TEST (test_deserialize_gint_failures) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_guint) +GST_START_TEST (test_deserialize_guint) { GValue value = { 0 }; const char *strings[] = { @@ -192,9 +192,9 @@ START_TEST (test_deserialize_guint) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_guint_failures) +GST_START_TEST (test_deserialize_guint_failures) { GValue value = { 0 }; const char *strings[] = { @@ -222,10 +222,10 @@ START_TEST (test_deserialize_guint_failures) } } -END_TEST; +GST_END_TEST; -START_TEST (test_string) +GST_START_TEST (test_string) { gchar *try[] = { "Dude", @@ -252,9 +252,9 @@ START_TEST (test_string) g_value_unset (&v); } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_string) +GST_START_TEST (test_deserialize_string) { struct { @@ -302,7 +302,7 @@ START_TEST (test_deserialize_string) g_value_unset (&v); } -END_TEST; +GST_END_TEST; Suite * gst_value_suite (void) diff --git a/check/gstcheck.c b/check/gstcheck.c index 53af0a6..b1b0dbf 100644 --- a/check/gstcheck.c +++ b/check/gstcheck.c @@ -22,6 +22,7 @@ #include "gstcheck.h" +GST_DEBUG_CATEGORY (check_debug); /* logging function for tests * a test uses g_message() to log a debug line @@ -71,6 +72,8 @@ gst_check_init (int *argc, char **argv[]) { gst_init (argc, argv); + GST_DEBUG_CATEGORY_INIT (check_debug, "check", 0, "check regression tests"); + if (g_getenv ("GST_TEST_DEBUG")) _gst_check_debug = TRUE; diff --git a/check/gstcheck.h b/check/gstcheck.h index 61244c7..92f4399 100644 --- a/check/gstcheck.h +++ b/check/gstcheck.h @@ -31,6 +31,9 @@ #include +GST_DEBUG_CATEGORY_EXTERN (check_debug); +#define GST_CAT_DEFAULT check_debug + /* logging function for tests * a test uses g_message() to log a debug line * a gst unit test can be run with GST_TEST_DEBUG env var set to see the @@ -43,6 +46,17 @@ extern gboolean _gst_check_expecting_log; void gst_check_init (int *argc, char **argv[]); /*** + * wrappers for START_TEST and END_TEST + */ +#define GST_START_TEST(__testname) \ +static void __testname (void)\ +{\ + GST_DEBUG ("test start"); \ + tcase_fn_start (""# __testname, __FILE__, __LINE__); + +#define GST_END_TEST END_TEST + +/*** * thread test macros and variables */ extern GList *thread_list; @@ -134,6 +148,7 @@ G_STMT_START { \ #define THREAD_TEST_RUNNING() (_gst_check_threads_running == TRUE) +/* additional assertions */ #define ASSERT_CRITICAL(code) \ G_STMT_START { \ _gst_check_expecting_log = TRUE; \ diff --git a/check/pipelines/cleanup.c b/check/pipelines/cleanup.c index 799e448..7b3a3b4 100644 --- a/check/pipelines/cleanup.c +++ b/check/pipelines/cleanup.c @@ -71,7 +71,7 @@ run_pipeline (GstElement * pipe, gchar * descr, gst_object_unref (pipe); } -START_TEST (test_pipeline_unref) +GST_START_TEST (test_pipeline_unref) { gchar *s; gint count; @@ -94,7 +94,7 @@ START_TEST (test_pipeline_unref) gst_object_unref (sink); } -END_TEST Suite * +GST_END_TEST Suite * cleanup_suite (void) { Suite *s = suite_create ("Pipeline cleanup"); diff --git a/check/pipelines/simple_launch_lines.c b/check/pipelines/simple_launch_lines.c index be20fb2..e031482 100644 --- a/check/pipelines/simple_launch_lines.c +++ b/check/pipelines/simple_launch_lines.c @@ -71,7 +71,7 @@ run_pipeline (GstElement * pipe, gchar * descr, gst_object_unref (pipe); } -START_TEST (test_2_elements) +GST_START_TEST (test_2_elements) { gchar *s; @@ -99,7 +99,7 @@ START_TEST (test_2_elements) ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s, GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_UNKNOWN)); */ } -END_TEST static void +GST_END_TEST static void got_handoff (GstElement * sink, GstBuffer * buf, GstPad * pad, gpointer unused) { gst_element_post_message @@ -125,7 +125,7 @@ assert_live_count (GType type, gint live) } } -START_TEST (test_stop_from_app) +GST_START_TEST (test_stop_from_app) { GstElement *fakesrc, *fakesink, *pipeline; GstBus *bus; @@ -161,7 +161,7 @@ START_TEST (test_stop_from_app) assert_live_count (GST_TYPE_BUFFER, 0); } -END_TEST Suite * +GST_END_TEST Suite * simple_launch_lines_suite (void) { Suite *s = suite_create ("Pipelines"); diff --git a/check/states/sinks.c b/check/states/sinks.c index 7343bd8..afbb86e 100644 --- a/check/states/sinks.c +++ b/check/states/sinks.c @@ -23,7 +23,7 @@ #include "../gstcheck.h" /* a sink should go ASYNC to PAUSE. forcing PLAYING is possible */ -START_TEST (test_sink) +GST_START_TEST (test_sink) { GstElement *sink; GstElementStateReturn ret; @@ -43,10 +43,10 @@ START_TEST (test_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* a sink should go ASYNC to PAUSE. PAUSE should complete when * prerolled. */ -START_TEST (test_src_sink) +GST_START_TEST (test_src_sink) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -79,11 +79,11 @@ START_TEST (test_src_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* a pipeline with live source should return NO_PREROLL in * PAUSE. When removing the live source it should return ASYNC * from the sink */ -START_TEST (test_livesrc_remove) +GST_START_TEST (test_livesrc_remove) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -123,10 +123,10 @@ START_TEST (test_livesrc_remove) } -END_TEST +GST_END_TEST /* a sink should go ASYNC to PAUSE. PAUSE does not complete * since we have a live source. */ -START_TEST (test_livesrc_sink) +GST_START_TEST (test_livesrc_sink) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -169,7 +169,7 @@ START_TEST (test_livesrc_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* test: try changing state of sinks */ Suite * gst_object_suite (void) { diff --git a/tests/check/elements/gstfakesrc.c b/tests/check/elements/gstfakesrc.c index e5a400a..bcd9d1d 100644 --- a/tests/check/elements/gstfakesrc.c +++ b/tests/check/elements/gstfakesrc.c @@ -55,7 +55,7 @@ event_func (GstPad * pad, GstEvent * event) return FALSE; } -START_TEST (test_num_buffers) +GST_START_TEST (test_num_buffers) { GstElement *src; GstScheduler *scheduler; @@ -95,7 +95,7 @@ START_TEST (test_num_buffers) g_list_free (buffers); } -END_TEST; +GST_END_TEST; Suite * fakesrc_suite (void) diff --git a/tests/check/generic/sinks.c b/tests/check/generic/sinks.c index 7343bd8..afbb86e 100644 --- a/tests/check/generic/sinks.c +++ b/tests/check/generic/sinks.c @@ -23,7 +23,7 @@ #include "../gstcheck.h" /* a sink should go ASYNC to PAUSE. forcing PLAYING is possible */ -START_TEST (test_sink) +GST_START_TEST (test_sink) { GstElement *sink; GstElementStateReturn ret; @@ -43,10 +43,10 @@ START_TEST (test_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* a sink should go ASYNC to PAUSE. PAUSE should complete when * prerolled. */ -START_TEST (test_src_sink) +GST_START_TEST (test_src_sink) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -79,11 +79,11 @@ START_TEST (test_src_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* a pipeline with live source should return NO_PREROLL in * PAUSE. When removing the live source it should return ASYNC * from the sink */ -START_TEST (test_livesrc_remove) +GST_START_TEST (test_livesrc_remove) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -123,10 +123,10 @@ START_TEST (test_livesrc_remove) } -END_TEST +GST_END_TEST /* a sink should go ASYNC to PAUSE. PAUSE does not complete * since we have a live source. */ -START_TEST (test_livesrc_sink) +GST_START_TEST (test_livesrc_sink) { GstElement *sink, *src, *pipeline; GstElementStateReturn ret; @@ -169,7 +169,7 @@ START_TEST (test_livesrc_sink) fail_unless (pending == GST_STATE_VOID_PENDING, "not playing"); } -END_TEST +GST_END_TEST /* test: try changing state of sinks */ Suite * gst_object_suite (void) { diff --git a/tests/check/gst/gst.c b/tests/check/gst/gst.c index b6e889b..dbcefec 100644 --- a/tests/check/gst/gst.c +++ b/tests/check/gst/gst.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_init) +GST_START_TEST (test_init) { /* don't segfault with NULL, NULL */ gst_init (NULL, NULL); @@ -29,7 +29,7 @@ START_TEST (test_init) gst_init (NULL, NULL); } -END_TEST; +GST_END_TEST; Suite * gst_suite (void) diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c index 4e68529..ae29928 100644 --- a/tests/check/gst/gstbin.c +++ b/tests/check/gst/gstbin.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_interface) +GST_START_TEST (test_interface) { GstBin *bin, *bin2; GstElement *filesrc; @@ -83,9 +83,9 @@ START_TEST (test_interface) gst_object_unref (bin); } -END_TEST; +GST_END_TEST; -START_TEST (test_message_state_changed) +GST_START_TEST (test_message_state_changed) { GstBin *bin; GstBus *bus; @@ -116,7 +116,62 @@ START_TEST (test_message_state_changed) gst_object_unref (bin); } -END_TEST; +GST_END_TEST; + +GST_START_TEST (test_message_state_changed_child) +{ + GstBin *bin; + GstElement *src; + GstBus *bus; + GstMessage *message; + + bin = GST_BIN (gst_bin_new (NULL)); + fail_unless (bin != NULL, "Could not create bin"); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + + src = gst_element_factory_make ("fakesrc", NULL); + fail_if (src == NULL, "Could not create fakesrc"); + gst_bin_add (bin, src); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + + bus = GST_ELEMENT_BUS (bin); + + /* change state, spawning three messages: + * - first for fakesrc, causing incref on fakesrc + * - then two on bin, causing an incref on the bin */ + GST_DEBUG ("setting bin to READY"); + gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY); + + ASSERT_OBJECT_REFCOUNT (src, "src", 2); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 2); + + /* get and unref the message, causing a decref on the src */ + fail_unless (gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1) + == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); + + message = gst_bus_pop (bus); + gst_message_unref (message); + + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 2); + + /* get and unref message 2, causing a decref on the bin */ + fail_unless (gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1) + == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); + + message = gst_bus_pop (bus); + gst_message_unref (message); + + ASSERT_OBJECT_REFCOUNT (src, "src", 1); + ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); + + /* clean up */ + gst_object_unref (bin); +} + +GST_END_TEST; + Suite * gst_bin_suite (void) @@ -127,6 +182,7 @@ gst_bin_suite (void) suite_add_tcase (s, tc_chain); tcase_add_test (tc_chain, test_interface); tcase_add_test (tc_chain, test_message_state_changed); + tcase_add_test (tc_chain, test_message_state_changed_child); return s; } diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c index 58fff79..8d32f54 100644 --- a/tests/check/gst/gstbuffer.c +++ b/tests/check/gst/gstbuffer.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_subbuffer) +GST_START_TEST (test_subbuffer) { GstBuffer *buffer, *sub; int rc; @@ -41,8 +41,8 @@ START_TEST (test_subbuffer) gst_buffer_unref (buffer); } -END_TEST -START_TEST (test_is_span_fast) +GST_END_TEST +GST_START_TEST (test_is_span_fast) { GstBuffer *buffer, *sub1, *sub2; @@ -63,7 +63,8 @@ START_TEST (test_is_span_fast) fail_if (gst_buffer_is_span_fast (sub1, sub2) == FALSE, "two subbuffers next to each other should be span_fast"); } -END_TEST Suite * gst_test_suite (void) +GST_END_TEST Suite * +gst_test_suite (void) { Suite *s = suite_create ("GstBuffer"); TCase *tc_chain = tcase_create ("general"); diff --git a/tests/check/gst/gstbus.c b/tests/check/gst/gstbus.c index 8440af0..f1677ed 100644 --- a/tests/check/gst/gstbus.c +++ b/tests/check/gst/gstbus.c @@ -81,7 +81,7 @@ pull_messages () g_return_if_fail (message_ids[i] == NUM_MESSAGES); } -START_TEST (test_hammer_bus) +GST_START_TEST (test_hammer_bus) { GThread *threads[NUM_THREADS]; gint i; @@ -99,7 +99,7 @@ START_TEST (test_hammer_bus) gst_object_unref ((GstObject *) test_bus); } -END_TEST Suite * +GST_END_TEST Suite * gstbus_suite (void) { Suite *s = suite_create ("GstBus"); diff --git a/tests/check/gst/gstcaps.c b/tests/check/gst/gstcaps.c index 0ee0acf..df5da49 100644 --- a/tests/check/gst/gstcaps.c +++ b/tests/check/gst/gstcaps.c @@ -24,7 +24,7 @@ #include "../gstcheck.h" #include "capslist.h" -START_TEST (test_from_string) +GST_START_TEST (test_from_string) { GstCaps *caps; int i; @@ -37,9 +37,9 @@ START_TEST (test_from_string) } } -END_TEST; +GST_END_TEST; -START_TEST (test_buffer) +GST_START_TEST (test_buffer) { GstCaps *c1; GstBuffer *buffer; @@ -53,9 +53,9 @@ START_TEST (test_buffer) gst_buffer_unref (buffer); } -END_TEST; +GST_END_TEST; -START_TEST (test_double_append) +GST_START_TEST (test_double_append) { GstStructure *s1; GstCaps *c1; @@ -66,9 +66,9 @@ START_TEST (test_double_append) ASSERT_CRITICAL (gst_caps_append_structure (c1, s1)); } -END_TEST; +GST_END_TEST; -START_TEST (test_mutability) +GST_START_TEST (test_mutability) { GstStructure *s1; GstCaps *c1; @@ -95,7 +95,7 @@ START_TEST (test_mutability) fail_unless (ret == 1); } -END_TEST; +GST_END_TEST; Suite * gst_caps_suite (void) diff --git a/tests/check/gst/gstdata.c b/tests/check/gst/gstdata.c index 54f0a6a..8aefcb1 100644 --- a/tests/check/gst/gstdata.c +++ b/tests/check/gst/gstdata.c @@ -22,7 +22,7 @@ #include "../gstcheck.h" -START_TEST (test_copy) +GST_START_TEST (test_copy) { GstBuffer *buffer, *copy; @@ -35,8 +35,8 @@ START_TEST (test_copy) "Copy of buffer has different size"); } -END_TEST -START_TEST (test_is_writable) +GST_END_TEST +GST_START_TEST (test_is_writable) { GstBuffer *buffer; GstData *data; @@ -60,8 +60,8 @@ START_TEST (test_is_writable) "A buffer with two refs should not be writable"); } -END_TEST -START_TEST (test_copy_on_write) +GST_END_TEST +GST_START_TEST (test_copy_on_write) { GstBuffer *buffer; GstData *data, *data2, *data3; @@ -90,7 +90,7 @@ START_TEST (test_copy_on_write) } -END_TEST gint num_threads = 10; +GST_END_TEST gint num_threads = 10; gint refs_per_thread = 10000; /* test thread-safe refcounting of GstData */ @@ -110,7 +110,7 @@ thread_ref (GstData * data) g_message ("thread stopped\n"); } -START_TEST (test_ref_threaded) +GST_START_TEST (test_ref_threaded) { GstBuffer *buffer; GstData *data; @@ -128,7 +128,7 @@ START_TEST (test_ref_threaded) fail_unless (GST_DATA_REFCOUNT_VALUE (data) == expected, "Refcount of data is %d != %d", GST_DATA_REFCOUNT_VALUE (data), expected); } -END_TEST void +GST_END_TEST void thread_unref (GstData * data) { int j; @@ -143,7 +143,7 @@ thread_unref (GstData * data) } } -START_TEST (test_unref_threaded) +GST_START_TEST (test_unref_threaded) { GstBuffer *buffer; GstData *data; @@ -164,7 +164,7 @@ START_TEST (test_unref_threaded) /* final unref */ gst_data_unref (data); } -END_TEST Suite * +GST_END_TEST Suite * gst_data_suite (void) { Suite *s = suite_create ("GstData"); diff --git a/tests/check/gst/gstelement.c b/tests/check/gst/gstelement.c index 36cff21..e690fec 100644 --- a/tests/check/gst/gstelement.c +++ b/tests/check/gst/gstelement.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_add_remove_pad) +GST_START_TEST (test_add_remove_pad) { GstElement *e; GstPad *p; @@ -47,9 +47,9 @@ START_TEST (test_add_remove_pad) gst_object_unref (p); } -END_TEST; +GST_END_TEST; -START_TEST (test_add_pad_unref_element) +GST_START_TEST (test_add_pad_unref_element) { GstElement *e; GstPad *p; @@ -76,7 +76,7 @@ START_TEST (test_add_pad_unref_element) gst_object_unref (p); } -END_TEST; +GST_END_TEST; Suite * diff --git a/tests/check/gst/gstghostpad.c b/tests/check/gst/gstghostpad.c index 4fcc6b6..dd0f47a 100644 --- a/tests/check/gst/gstghostpad.c +++ b/tests/check/gst/gstghostpad.c @@ -29,7 +29,7 @@ assert_gstrefcount (gpointer p, gint i) GST_OBJECT_REFCOUNT_VALUE (p)); } -START_TEST (test_ghost_pads) +GST_START_TEST (test_ghost_pads) { GstElement *b1, *b2, *src, *i1, *sink; GstPad *gsink, *gsrc, *gisrc, *gisink, *isink, *isrc, *fsrc, *fsink; @@ -124,7 +124,7 @@ START_TEST (test_ghost_pads) gst_object_unref (gisink); assert_gstrefcount (fsink, 1); } -END_TEST Suite * +GST_END_TEST Suite * gst_ghost_pad_suite (void) { Suite *s = suite_create ("GstGhostPad"); diff --git a/tests/check/gst/gstiterator.c b/tests/check/gst/gstiterator.c index aa9a27e..01378fc 100644 --- a/tests/check/gst/gstiterator.c +++ b/tests/check/gst/gstiterator.c @@ -37,7 +37,7 @@ make_list_of_ints (gint n) #define NUM_ELEMENTS 10 -START_TEST (test_manual_iteration) +GST_START_TEST (test_manual_iteration) { GList *l; guint32 cookie = 0; @@ -70,8 +70,8 @@ START_TEST (test_manual_iteration) gst_iterator_free (iter); } -END_TEST -START_TEST (test_resync) +GST_END_TEST +GST_START_TEST (test_resync) { GList *l; guint32 cookie = 0; @@ -115,14 +115,14 @@ START_TEST (test_resync) gst_iterator_free (iter); } -END_TEST static gboolean +GST_END_TEST static gboolean add_fold_func (gpointer item, GValue * ret, gpointer user_data) { g_value_set_int (ret, g_value_get_int (ret) + GPOINTER_TO_INT (item)); return TRUE; } -START_TEST (test_fold) +GST_START_TEST (test_fold) { GList *l; guint32 cookie = 0; @@ -149,7 +149,7 @@ START_TEST (test_fold) g_return_if_fail (res == GST_ITERATOR_DONE); g_return_if_fail (g_value_get_int (&ret) == expected); } -END_TEST Suite * +GST_END_TEST Suite * gstiterator_suite (void) { Suite *s = suite_create ("GstIterator"); diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c index aeda1b5..a55a6ba 100644 --- a/tests/check/gst/gstmessage.c +++ b/tests/check/gst/gstmessage.c @@ -24,7 +24,7 @@ static GQuark domain; -START_TEST (test_parsing) +GST_START_TEST (test_parsing) { GstMessage *message; @@ -172,7 +172,7 @@ START_TEST (test_parsing) } -END_TEST Suite * +GST_END_TEST Suite * gst_data_suite (void) { Suite *s = suite_create ("GstMessage"); diff --git a/tests/check/gst/gstobject.c b/tests/check/gst/gstobject.c index a6cde2f..a7dccb3 100644 --- a/tests/check/gst/gstobject.c +++ b/tests/check/gst/gstobject.c @@ -67,7 +67,7 @@ gst_fake_object_get_type (void) } /* g_object_new on abstract GstObject should fail */ -START_TEST (test_fail_abstract_new) +GST_START_TEST (test_fail_abstract_new) { GstObject *object; @@ -75,9 +75,9 @@ START_TEST (test_fail_abstract_new) fail_unless (object == NULL, "Created an instance of abstract GstObject"); } -END_TEST +GST_END_TEST /* g_object_new on GstFakeObject should succeed */ -START_TEST (test_fake_object_new) +GST_START_TEST (test_fake_object_new) { GstObject *object; @@ -87,9 +87,9 @@ START_TEST (test_fake_object_new) "GstFakeObject instance is not a GstObject"); } -END_TEST +GST_END_TEST /* GstFakeObject name tests */ -START_TEST (test_fake_object_name) +GST_START_TEST (test_fake_object_name) { GstObject *object; gchar *name; @@ -125,7 +125,7 @@ START_TEST (test_fake_object_name) g_free (name2); } -END_TEST +GST_END_TEST /* thread function for threaded name change test */ gpointer thread_name_object (GstObject * object) { @@ -156,7 +156,7 @@ END_TEST * constantly; fails because lock is released inbetween set and get */ -START_TEST (test_fake_object_name_threaded_wrong) +GST_START_TEST (test_fake_object_name_threaded_wrong) { GstObject *object; gchar *name; @@ -188,12 +188,12 @@ START_TEST (test_fake_object_name_threaded_wrong) fail_unless (expected_failure, "name did not get changed"); } -END_TEST +GST_END_TEST /* * main thread sets and gets name directly on struct inside the object lock * succeed because lock is held during set/get, and threads are locked out */ -START_TEST (test_fake_object_name_threaded_right) +GST_START_TEST (test_fake_object_name_threaded_right) { GstObject *object; gchar *name; @@ -222,7 +222,7 @@ START_TEST (test_fake_object_name_threaded_right) MAIN_STOP_THREADS (); } -END_TEST +GST_END_TEST /* * main thread creates lots of objects * child threads sets default names on objects @@ -280,7 +280,7 @@ gst_object_name_compare (GstObject * o, GstObject * p) return result; } -START_TEST (test_fake_object_name_threaded_unique) +GST_START_TEST (test_fake_object_name_threaded_unique) { GstObject *object; gint i; @@ -326,9 +326,9 @@ START_TEST (test_fake_object_name_threaded_unique) g_list_foreach (object_list, (GFunc) g_object_unref, NULL); } -END_TEST +GST_END_TEST /* parentage test on GstFakeObject */ -START_TEST (test_fake_object_parentage) +GST_START_TEST (test_fake_object_parentage) { GstObject *object1, *object2; GstObject *parent; @@ -402,13 +402,13 @@ START_TEST (test_fake_object_parentage) gst_object_unref (object2); } -END_TEST +GST_END_TEST /* parentage test dispose on GstFakeObject, since our testcase * does not handle the parent relation completely, the parent does * not hold a ref to the child, we cannot dispose the parent to * dipose the child as well. This test needs to be run with DEBUG * info to check if the finalize methods are called correctly. */ -START_TEST (test_fake_object_parentage_dispose) +GST_START_TEST (test_fake_object_parentage_dispose) { GstObject *object1, *object2; gboolean result; @@ -431,7 +431,7 @@ START_TEST (test_fake_object_parentage_dispose) gst_object_unref (object2); } -END_TEST +GST_END_TEST /* test: try renaming a parented object, make sure it fails */ Suite * gst_object_suite (void) { diff --git a/tests/check/gst/gstpad.c b/tests/check/gst/gstpad.c index 182313b..7ae7a2b 100644 --- a/tests/check/gst/gstpad.c +++ b/tests/check/gst/gstpad.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_link) +GST_START_TEST (test_link) { GstPad *src, *sink; GstPadTemplate *srct; @@ -48,7 +48,7 @@ START_TEST (test_link) fail_unless (srct == NULL); } -END_TEST; +GST_END_TEST; /* threaded link/unlink */ /* use globals */ @@ -66,7 +66,7 @@ thread_link_unlink (gpointer data) } } -START_TEST (test_link_unlink_threaded) +GST_START_TEST (test_link_unlink_threaded) { GstCaps *caps; int i; @@ -89,9 +89,9 @@ START_TEST (test_link_unlink_threaded) MAIN_STOP_THREADS (); } -END_TEST; +GST_END_TEST; -START_TEST (test_refcount) +GST_START_TEST (test_refcount) { GstPad *src, *sink; GstCaps *caps; @@ -127,9 +127,9 @@ START_TEST (test_refcount) gst_caps_unref (caps); } -END_TEST; +GST_END_TEST; -START_TEST (test_get_allowed_caps) +GST_START_TEST (test_get_allowed_caps) { GstPad *src, *sink; GstCaps *caps, *gotcaps; @@ -180,7 +180,7 @@ START_TEST (test_get_allowed_caps) gst_caps_unref (caps); } -END_TEST; +GST_END_TEST; Suite * gst_pad_suite (void) diff --git a/tests/check/gst/gststructure.c b/tests/check/gst/gststructure.c index 4da6b1b..93c8cc0 100644 --- a/tests/check/gst/gststructure.c +++ b/tests/check/gst/gststructure.c @@ -23,7 +23,7 @@ #include "../gstcheck.h" -START_TEST (test_from_string_int) +GST_START_TEST (test_from_string_int) { const char *strings[] = { "video/x-raw-rgb, width = (int) 123456", @@ -63,7 +63,7 @@ START_TEST (test_from_string_int) } } -END_TEST; +GST_END_TEST; Suite * gst_value_suite (void) diff --git a/tests/check/gst/gstsystemclock.c b/tests/check/gst/gstsystemclock.c index 462f4b5..a20e98f 100644 --- a/tests/check/gst/gstsystemclock.c +++ b/tests/check/gst/gstsystemclock.c @@ -21,7 +21,7 @@ #include "../gstcheck.h" -START_TEST (test_signedness) +GST_START_TEST (test_signedness) { GstClockTime time[] = { 0, 1, G_MAXUINT64 / GST_SECOND }; GstClockTimeDiff diff[] = @@ -36,7 +36,7 @@ START_TEST (test_signedness) } } -END_TEST +GST_END_TEST #define TIME_UNIT GST_SECOND static void gst_clock_debug (GstClock * clock) @@ -65,7 +65,7 @@ error_callback (GstClock * clock, GstClockTime time, return FALSE; } -START_TEST (test_single_shot) +GST_START_TEST (test_single_shot) { GstClock *clock; GstClockID id, id2; @@ -128,8 +128,8 @@ START_TEST (test_single_shot) g_usleep (2 * G_USEC_PER_SEC); } -END_TEST -START_TEST (test_periodic_shot) +GST_END_TEST +GST_START_TEST (test_periodic_shot) { GstClock *clock; GstClockID id, id2; @@ -187,7 +187,7 @@ START_TEST (test_periodic_shot) g_usleep (2 * G_USEC_PER_SEC); } -END_TEST Suite * gst_systemclock_suite (void) +GST_END_TEST Suite * gst_systemclock_suite (void) { Suite *s = suite_create ("GstSystemClock"); TCase *tc_chain = tcase_create ("waiting"); diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c index 1cc55a4..1b33971 100644 --- a/tests/check/gst/gsttag.c +++ b/tests/check/gst/gsttag.c @@ -102,7 +102,7 @@ G_STMT_START { \ } G_STMT_END; -START_TEST (test_merge) +GST_START_TEST (test_merge) { GstTagList *list = NULL, *list2 = NULL, *merge = NULL; @@ -173,7 +173,7 @@ START_TEST (test_merge) check_tags (merge, FTAG, FIXED1, NULL); } -END_TEST Suite * +GST_END_TEST Suite * gst_tag_suite (void) { Suite *s = suite_create ("GstTag"); diff --git a/tests/check/gst/gstvalue.c b/tests/check/gst/gstvalue.c index 29bbc88..d78e899 100644 --- a/tests/check/gst/gstvalue.c +++ b/tests/check/gst/gstvalue.c @@ -24,7 +24,7 @@ #include "../gstcheck.h" -START_TEST (test_deserialize_buffer) +GST_START_TEST (test_deserialize_buffer) { GValue value = { 0 }; @@ -32,9 +32,9 @@ START_TEST (test_deserialize_buffer) fail_unless (gst_value_deserialize (&value, "1234567890abcdef")); } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint64) +GST_START_TEST (test_deserialize_gint64) { GValue value = { 0 }; const char *strings[] = { @@ -58,9 +58,9 @@ START_TEST (test_deserialize_gint64) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint) +GST_START_TEST (test_deserialize_gint) { GValue value = { 0 }; const char *strings[] = { @@ -112,9 +112,9 @@ START_TEST (test_deserialize_gint) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_gint_failures) +GST_START_TEST (test_deserialize_gint_failures) { GValue value = { 0 }; const char *strings[] = { @@ -138,9 +138,9 @@ START_TEST (test_deserialize_gint_failures) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_guint) +GST_START_TEST (test_deserialize_guint) { GValue value = { 0 }; const char *strings[] = { @@ -192,9 +192,9 @@ START_TEST (test_deserialize_guint) } } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_guint_failures) +GST_START_TEST (test_deserialize_guint_failures) { GValue value = { 0 }; const char *strings[] = { @@ -222,10 +222,10 @@ START_TEST (test_deserialize_guint_failures) } } -END_TEST; +GST_END_TEST; -START_TEST (test_string) +GST_START_TEST (test_string) { gchar *try[] = { "Dude", @@ -252,9 +252,9 @@ START_TEST (test_string) g_value_unset (&v); } -END_TEST; +GST_END_TEST; -START_TEST (test_deserialize_string) +GST_START_TEST (test_deserialize_string) { struct { @@ -302,7 +302,7 @@ START_TEST (test_deserialize_string) g_value_unset (&v); } -END_TEST; +GST_END_TEST; Suite * gst_value_suite (void) diff --git a/tests/check/gstcheck.c b/tests/check/gstcheck.c index 53af0a6..b1b0dbf 100644 --- a/tests/check/gstcheck.c +++ b/tests/check/gstcheck.c @@ -22,6 +22,7 @@ #include "gstcheck.h" +GST_DEBUG_CATEGORY (check_debug); /* logging function for tests * a test uses g_message() to log a debug line @@ -71,6 +72,8 @@ gst_check_init (int *argc, char **argv[]) { gst_init (argc, argv); + GST_DEBUG_CATEGORY_INIT (check_debug, "check", 0, "check regression tests"); + if (g_getenv ("GST_TEST_DEBUG")) _gst_check_debug = TRUE; diff --git a/tests/check/gstcheck.h b/tests/check/gstcheck.h index 61244c7..92f4399 100644 --- a/tests/check/gstcheck.h +++ b/tests/check/gstcheck.h @@ -31,6 +31,9 @@ #include +GST_DEBUG_CATEGORY_EXTERN (check_debug); +#define GST_CAT_DEFAULT check_debug + /* logging function for tests * a test uses g_message() to log a debug line * a gst unit test can be run with GST_TEST_DEBUG env var set to see the @@ -43,6 +46,17 @@ extern gboolean _gst_check_expecting_log; void gst_check_init (int *argc, char **argv[]); /*** + * wrappers for START_TEST and END_TEST + */ +#define GST_START_TEST(__testname) \ +static void __testname (void)\ +{\ + GST_DEBUG ("test start"); \ + tcase_fn_start (""# __testname, __FILE__, __LINE__); + +#define GST_END_TEST END_TEST + +/*** * thread test macros and variables */ extern GList *thread_list; @@ -134,6 +148,7 @@ G_STMT_START { \ #define THREAD_TEST_RUNNING() (_gst_check_threads_running == TRUE) +/* additional assertions */ #define ASSERT_CRITICAL(code) \ G_STMT_START { \ _gst_check_expecting_log = TRUE; \ diff --git a/tests/check/libs/gdp.c b/tests/check/libs/gdp.c index fdcb0cf..0af1ead 100644 --- a/tests/check/libs/gdp.c +++ b/tests/check/libs/gdp.c @@ -26,7 +26,7 @@ #include "libs/gst/dataprotocol/dp-private.h" /* private header */ /* test our method of reading and writing headers using TO/FROM_BE */ -START_TEST (test_conversion) +GST_START_TEST (test_conversion) { guint8 array[9]; guint8 write_array[9]; @@ -81,9 +81,9 @@ START_TEST (test_conversion) "GST_WRITE_UINT64_BE: memcmp failed"); } -END_TEST +GST_END_TEST /* test creation of header from buffer and back again */ -START_TEST (test_buffer) +GST_START_TEST (test_buffer) { GstBuffer *buffer; GstBuffer *newbuffer; @@ -141,8 +141,8 @@ START_TEST (test_buffer) g_free (header); } -END_TEST -START_TEST (test_caps) +GST_END_TEST +GST_START_TEST (test_caps) { gchar *string, *newstring; GstCaps *caps, *newcaps; @@ -173,8 +173,8 @@ START_TEST (test_caps) g_free (newstring); } -END_TEST -START_TEST (test_event) +GST_END_TEST +GST_START_TEST (test_event) { GstEvent *send; GstEvent *receive; @@ -240,7 +240,7 @@ START_TEST (test_event) gst_event_unref (send); gst_event_unref (receive); } -END_TEST Suite * +GST_END_TEST Suite * gst_object_suite (void) { Suite *s = suite_create ("data protocol"); diff --git a/tests/check/pipelines/cleanup.c b/tests/check/pipelines/cleanup.c index 799e448..7b3a3b4 100644 --- a/tests/check/pipelines/cleanup.c +++ b/tests/check/pipelines/cleanup.c @@ -71,7 +71,7 @@ run_pipeline (GstElement * pipe, gchar * descr, gst_object_unref (pipe); } -START_TEST (test_pipeline_unref) +GST_START_TEST (test_pipeline_unref) { gchar *s; gint count; @@ -94,7 +94,7 @@ START_TEST (test_pipeline_unref) gst_object_unref (sink); } -END_TEST Suite * +GST_END_TEST Suite * cleanup_suite (void) { Suite *s = suite_create ("Pipeline cleanup"); diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c index be20fb2..e031482 100644 --- a/tests/check/pipelines/simple-launch-lines.c +++ b/tests/check/pipelines/simple-launch-lines.c @@ -71,7 +71,7 @@ run_pipeline (GstElement * pipe, gchar * descr, gst_object_unref (pipe); } -START_TEST (test_2_elements) +GST_START_TEST (test_2_elements) { gchar *s; @@ -99,7 +99,7 @@ START_TEST (test_2_elements) ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s, GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_UNKNOWN)); */ } -END_TEST static void +GST_END_TEST static void got_handoff (GstElement * sink, GstBuffer * buf, GstPad * pad, gpointer unused) { gst_element_post_message @@ -125,7 +125,7 @@ assert_live_count (GType type, gint live) } } -START_TEST (test_stop_from_app) +GST_START_TEST (test_stop_from_app) { GstElement *fakesrc, *fakesink, *pipeline; GstBus *bus; @@ -161,7 +161,7 @@ START_TEST (test_stop_from_app) assert_live_count (GST_TYPE_BUFFER, 0); } -END_TEST Suite * +GST_END_TEST Suite * simple_launch_lines_suite (void) { Suite *s = suite_create ("Pipelines"); -- 2.7.4