tests/check/gst/gstpipeline.c: Extending the test a little to verify that we also get the NULL state- change message.

Original commit message from CVS:
* tests/check/gst/gstpipeline.c:
Extending the test a little to verify that we also get the NULL state-
change message.
This commit is contained in:
Stefan Kost 2008-05-27 18:31:39 +00:00
parent d27de4372e
commit 6bb62a810a
2 changed files with 23 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2008-05-27 Stefan Kost <ensonic@users.sf.net>
* tests/check/gst/gstpipeline.c:
Extending the test a little to verify that we also get the NULL state-
change message.
2008-05-27 Tim-Philipp Müller <tim.muller at collabora co uk> 2008-05-27 Tim-Philipp Müller <tim.muller at collabora co uk>
* gst/gstpreset.c: (gst_preset_default_get_meta), * gst/gstpreset.c: (gst_preset_default_get_meta),

View file

@ -65,13 +65,12 @@ GST_START_TEST (test_async_state_change_fake_ready)
GST_END_TEST; GST_END_TEST;
GST_START_TEST (test_async_state_change_fake) GST_START_TEST (test_async_state_change_fake)
{ {
GstPipeline *pipeline; GstPipeline *pipeline;
GstElement *src, *sink; GstElement *src, *sink;
GstBus *bus; GstBus *bus;
gboolean done = FALSE; gboolean done;
pipeline = GST_PIPELINE (gst_pipeline_new (NULL)); pipeline = GST_PIPELINE (gst_pipeline_new (NULL));
fail_unless (pipeline != NULL, "Could not create pipeline"); fail_unless (pipeline != NULL, "Could not create pipeline");
@ -87,6 +86,7 @@ GST_START_TEST (test_async_state_change_fake)
fail_unless_equals_int (gst_element_set_state (GST_ELEMENT (pipeline), fail_unless_equals_int (gst_element_set_state (GST_ELEMENT (pipeline),
GST_STATE_PLAYING), GST_STATE_CHANGE_ASYNC); GST_STATE_PLAYING), GST_STATE_CHANGE_ASYNC);
done = FALSE;
while (!done) { while (!done) {
GstMessage *message; GstMessage *message;
GstState old, new, pending; GstState old, new, pending;
@ -104,6 +104,21 @@ GST_START_TEST (test_async_state_change_fake)
fail_unless_equals_int (gst_element_set_state (GST_ELEMENT (pipeline), fail_unless_equals_int (gst_element_set_state (GST_ELEMENT (pipeline),
GST_STATE_NULL), GST_STATE_CHANGE_SUCCESS); GST_STATE_NULL), GST_STATE_CHANGE_SUCCESS);
done = FALSE;
while (!done) {
GstMessage *message;
GstState old, new, pending;
message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1);
if (message) {
gst_message_parse_state_changed (message, &old, &new, &pending);
GST_DEBUG_OBJECT (message->src, "state change from %d to %d", old, new);
if (message->src == GST_OBJECT (pipeline) && new == GST_STATE_NULL)
done = TRUE;
gst_message_unref (message);
}
}
gst_object_unref (bus); gst_object_unref (bus);
gst_object_unref (pipeline); gst_object_unref (pipeline);
} }