mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-05 06:58:49 +00:00
tests/check/gst/gstsystemclock.c: Improve test_async_order to also work when both timers are already expired when we ...
Original commit message from CVS: * tests/check/gst/gstsystemclock.c: (store_callback), (GST_START_TEST): Improve test_async_order to also work when both timers are already expired when we get scheduled to check it.
This commit is contained in:
parent
93230e96fe
commit
20c719ae81
2 changed files with 24 additions and 8 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-05-23 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* tests/check/gst/gstsystemclock.c: (store_callback),
|
||||||
|
(GST_START_TEST):
|
||||||
|
Improve test_async_order to also work when both timers are already
|
||||||
|
expired when we get scheduled to check it.
|
||||||
|
|
||||||
2007-05-22 Tim-Philipp Müller <tim at centricular dot net>
|
2007-05-22 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
* gst/gstbin.c: (gst_bin_init), (gst_bin_dispose),
|
* gst/gstbin.c: (gst_bin_init), (gst_bin_dispose),
|
||||||
|
|
|
@ -69,10 +69,10 @@ static gboolean
|
||||||
store_callback (GstClock * clock, GstClockTime time,
|
store_callback (GstClock * clock, GstClockTime time,
|
||||||
GstClockID id, gpointer user_data)
|
GstClockID id, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstClockID *store_id = user_data;
|
GList **list = user_data;
|
||||||
|
|
||||||
g_message ("unlocked async id %p\n", id);
|
g_message ("unlocked async id %p\n", id);
|
||||||
*store_id = id;
|
*list = g_list_append (*list, id);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +216,8 @@ GST_END_TEST
|
||||||
GST_START_TEST (test_async_order)
|
GST_START_TEST (test_async_order)
|
||||||
{
|
{
|
||||||
GstClock *clock;
|
GstClock *clock;
|
||||||
GstClockID id1, id2, last_id = NULL;
|
GstClockID id1, id2;
|
||||||
|
GList *cb_list = NULL, *next;
|
||||||
GstClockTime base;
|
GstClockTime base;
|
||||||
GstClockReturn result;
|
GstClockReturn result;
|
||||||
|
|
||||||
|
@ -228,17 +229,24 @@ GST_START_TEST (test_async_order)
|
||||||
|
|
||||||
id1 = gst_clock_new_single_shot_id (clock, base + 2 * TIME_UNIT);
|
id1 = gst_clock_new_single_shot_id (clock, base + 2 * TIME_UNIT);
|
||||||
id2 = gst_clock_new_single_shot_id (clock, base + 1 * TIME_UNIT);
|
id2 = gst_clock_new_single_shot_id (clock, base + 1 * TIME_UNIT);
|
||||||
result = gst_clock_id_wait_async (id1, store_callback, &last_id);
|
result = gst_clock_id_wait_async (id1, store_callback, &cb_list);
|
||||||
fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
|
fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
|
||||||
g_usleep (TIME_UNIT / (2 * 1000));
|
g_usleep (TIME_UNIT / (2 * 1000));
|
||||||
result = gst_clock_id_wait_async (id2, store_callback, &last_id);
|
result = gst_clock_id_wait_async (id2, store_callback, &cb_list);
|
||||||
fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
|
fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
|
||||||
g_usleep (TIME_UNIT / 1000);
|
g_usleep (TIME_UNIT / 1000);
|
||||||
fail_unless (last_id == id2, "Expected notification for id2 to come first");
|
/* at this point at least one of the timers should have timed out */
|
||||||
|
fail_unless (cb_list != NULL, "expected notification");
|
||||||
|
fail_unless (cb_list->data == id2,
|
||||||
|
"Expected notification for id2 to come first");
|
||||||
g_usleep (TIME_UNIT / 1000);
|
g_usleep (TIME_UNIT / 1000);
|
||||||
fail_unless (last_id == id1, "Missing notification for id1");
|
/* now both should have timed out */
|
||||||
|
next = g_list_next (cb_list);
|
||||||
|
fail_unless (next != NULL, "expected second notification");
|
||||||
|
fail_unless (next->data == id1, "Missing notification for id1");
|
||||||
gst_clock_id_unref (id1);
|
gst_clock_id_unref (id1);
|
||||||
gst_clock_id_unref (id2);
|
gst_clock_id_unref (id2);
|
||||||
|
g_list_free (cb_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST
|
GST_END_TEST
|
||||||
|
@ -367,7 +375,8 @@ GST_START_TEST (test_mixed)
|
||||||
gst_object_unref (info.clock);
|
gst_object_unref (info.clock);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST Suite * gst_systemclock_suite (void)
|
GST_END_TEST Suite *
|
||||||
|
gst_systemclock_suite (void)
|
||||||
{
|
{
|
||||||
Suite *s = suite_create ("GstSystemClock");
|
Suite *s = suite_create ("GstSystemClock");
|
||||||
TCase *tc_chain = tcase_create ("waiting");
|
TCase *tc_chain = tcase_create ("waiting");
|
||||||
|
|
Loading…
Reference in a new issue