mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 14:26:43 +00:00
tests: add a unit-test for the stream-status
Add a unit test for the STREAM_STATUS messages.
This commit is contained in:
parent
b59045aab9
commit
2aaf72d259
1 changed files with 54 additions and 0 deletions
|
@ -186,6 +186,60 @@ GST_START_TEST (test_parsing)
|
|||
void gst_message_parse_warning (GstMessage *message, GError **gerror, gchar **debug);
|
||||
*/
|
||||
|
||||
/* GST_MESSAGE_STREAM_STATUS */
|
||||
{
|
||||
GstStreamStatusType type;
|
||||
GstTask *task, *task2;
|
||||
GValue value = { 0 };
|
||||
const GValue *val;
|
||||
|
||||
message =
|
||||
gst_message_new_stream_status (NULL, GST_STREAM_STATUS_TYPE_ENTER,
|
||||
NULL);
|
||||
fail_if (message == NULL);
|
||||
fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAM_STATUS);
|
||||
fail_unless (GST_MESSAGE_SRC (message) == NULL);
|
||||
|
||||
/* set some wrong values to check if the parse method overwrites them
|
||||
* with the good values */
|
||||
type = GST_STREAM_STATUS_TYPE_START;
|
||||
gst_message_parse_stream_status (message, &type, NULL);
|
||||
fail_unless (type == GST_STREAM_STATUS_TYPE_ENTER);
|
||||
|
||||
/* create a task with some dummy function, we're not actually going to run
|
||||
* the task here */
|
||||
task = gst_task_create ((GstTaskFunction) gst_object_unref, NULL);
|
||||
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 1);
|
||||
|
||||
/* set the task */
|
||||
g_value_init (&value, GST_TYPE_TASK);
|
||||
g_value_set_object (&value, task);
|
||||
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 2);
|
||||
|
||||
gst_message_set_stream_status_object (message, &value);
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 3);
|
||||
g_value_unset (&value);
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 2);
|
||||
gst_object_unref (task);
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 1);
|
||||
|
||||
/* get the object back, no refcount is changed */
|
||||
val = gst_message_get_stream_status_object (message);
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 1);
|
||||
|
||||
task2 = g_value_get_object (val);
|
||||
|
||||
fail_unless (GST_IS_TASK (task2));
|
||||
fail_unless (task2 == task);
|
||||
|
||||
ASSERT_OBJECT_REFCOUNT (task, "task", 1);
|
||||
ASSERT_OBJECT_REFCOUNT (task2, "task", 1);
|
||||
|
||||
gst_message_unref (message);
|
||||
}
|
||||
|
||||
/* GST_MESSAGE_REQUEST_STATE */
|
||||
{
|
||||
GstState state;
|
||||
|
|
Loading…
Reference in a new issue