mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 11:32:38 +00:00
playbin2: Enable all unit tests
They're all working and valgrind clean now.
This commit is contained in:
parent
cdf53e5e86
commit
b326b77ffa
1 changed files with 63 additions and 24 deletions
|
@ -36,6 +36,9 @@ GST_START_TEST (test_sink_usage_video_only_stream)
|
||||||
{
|
{
|
||||||
GstElement *playbin, *fakevideosink, *fakeaudiosink;
|
GstElement *playbin, *fakevideosink, *fakeaudiosink;
|
||||||
GstState cur_state, pending_state;
|
GstState cur_state, pending_state;
|
||||||
|
GstElement *source;
|
||||||
|
GstBuffer *last_frame;
|
||||||
|
gint nstreams;
|
||||||
|
|
||||||
fail_unless (gst_element_register (NULL, "redvideosrc", GST_RANK_PRIMARY,
|
fail_unless (gst_element_register (NULL, "redvideosrc", GST_RANK_PRIMARY,
|
||||||
gst_red_video_src_get_type ()));
|
gst_red_video_src_get_type ()));
|
||||||
|
@ -69,14 +72,22 @@ GST_START_TEST (test_sink_usage_video_only_stream)
|
||||||
fail_unless_equals_int (cur_state, GST_STATE_NULL);
|
fail_unless_equals_int (cur_state, GST_STATE_NULL);
|
||||||
fail_unless_equals_int (pending_state, GST_STATE_VOID_PENDING);
|
fail_unless_equals_int (pending_state, GST_STATE_VOID_PENDING);
|
||||||
|
|
||||||
{
|
g_object_get (playbin, "n-video", &nstreams, NULL);
|
||||||
GValueArray *stream_info = NULL;
|
fail_unless_equals_int (nstreams, 1);
|
||||||
|
|
||||||
g_object_get (playbin, "stream-info-value-array", &stream_info, NULL);
|
g_object_get (playbin, "n-audio", &nstreams, NULL);
|
||||||
fail_unless (stream_info != NULL);
|
fail_unless_equals_int (nstreams, 0);
|
||||||
fail_unless_equals_int (stream_info->n_values, 1);
|
|
||||||
g_value_array_free (stream_info);
|
g_object_get (playbin, "n-text", &nstreams, NULL);
|
||||||
}
|
fail_unless_equals_int (nstreams, 0);
|
||||||
|
|
||||||
|
g_object_get (playbin, "source", &source, NULL);
|
||||||
|
fail_unless (G_TYPE_FROM_INSTANCE (source) == gst_red_video_src_get_type ());
|
||||||
|
gst_object_unref (source);
|
||||||
|
|
||||||
|
g_object_get (playbin, "frame", &last_frame, NULL);
|
||||||
|
fail_unless (GST_IS_BUFFER (last_frame));
|
||||||
|
gst_buffer_unref (last_frame);
|
||||||
|
|
||||||
gst_element_set_state (playbin, GST_STATE_NULL);
|
gst_element_set_state (playbin, GST_STATE_NULL);
|
||||||
gst_object_unref (playbin);
|
gst_object_unref (playbin);
|
||||||
|
@ -294,11 +305,11 @@ GST_START_TEST (test_missing_suburisource_handler)
|
||||||
fail_unless_equals_string (gst_structure_get_string (s, "type"), "urisource");
|
fail_unless_equals_string (gst_structure_get_string (s, "type"), "urisource");
|
||||||
gst_message_unref (msg);
|
gst_message_unref (msg);
|
||||||
|
|
||||||
msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, -1);
|
msg = gst_bus_poll (bus, GST_MESSAGE_WARNING, -1);
|
||||||
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_ERROR);
|
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_WARNING);
|
||||||
|
|
||||||
/* make sure the error is a CORE MISSING_PLUGIN one */
|
/* make sure the *warning* is a CORE MISSING_PLUGIN one */
|
||||||
gst_message_parse_error (msg, &err, NULL);
|
gst_message_parse_warning (msg, &err, NULL);
|
||||||
fail_unless (err != NULL);
|
fail_unless (err != NULL);
|
||||||
fail_unless (err->domain == GST_CORE_ERROR, "error has wrong error domain "
|
fail_unless (err->domain == GST_CORE_ERROR, "error has wrong error domain "
|
||||||
"%s instead of core-error-quark", g_quark_to_string (err->domain));
|
"%s instead of core-error-quark", g_quark_to_string (err->domain));
|
||||||
|
@ -306,6 +317,22 @@ GST_START_TEST (test_missing_suburisource_handler)
|
||||||
"code %u instead of GST_CORE_ERROR_MISSING_PLUGIN", err->code);
|
"code %u instead of GST_CORE_ERROR_MISSING_PLUGIN", err->code);
|
||||||
g_error_free (err);
|
g_error_free (err);
|
||||||
gst_message_unref (msg);
|
gst_message_unref (msg);
|
||||||
|
|
||||||
|
msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, -1);
|
||||||
|
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_ERROR);
|
||||||
|
|
||||||
|
/* make sure the error is a RESOURCE NOT_FOUND one */
|
||||||
|
gst_message_parse_error (msg, &err, NULL);
|
||||||
|
fail_unless (err != NULL);
|
||||||
|
fail_unless (err->domain == GST_RESOURCE_ERROR,
|
||||||
|
"error has wrong error domain " "%s instead of resource-error-quark",
|
||||||
|
g_quark_to_string (err->domain));
|
||||||
|
fail_unless (err->code == GST_RESOURCE_ERROR_NOT_FOUND,
|
||||||
|
"error has wrong " "code %u instead of GST_RESOURCE_ERROR_NOT_FOUND",
|
||||||
|
err->code);
|
||||||
|
g_error_free (err);
|
||||||
|
gst_message_unref (msg);
|
||||||
|
|
||||||
gst_object_unref (bus);
|
gst_object_unref (bus);
|
||||||
|
|
||||||
gst_element_set_state (playbin, GST_STATE_NULL);
|
gst_element_set_state (playbin, GST_STATE_NULL);
|
||||||
|
@ -346,11 +373,11 @@ GST_START_TEST (test_missing_primary_decoder)
|
||||||
fail_unless (gst_structure_has_field_typed (s, "detail", GST_TYPE_CAPS));
|
fail_unless (gst_structure_has_field_typed (s, "detail", GST_TYPE_CAPS));
|
||||||
gst_message_unref (msg);
|
gst_message_unref (msg);
|
||||||
|
|
||||||
msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, -1);
|
msg = gst_bus_poll (bus, GST_MESSAGE_WARNING, -1);
|
||||||
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_ERROR);
|
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_WARNING);
|
||||||
|
|
||||||
/* make sure the error is a STREAM CODEC_NOT_FOUND one */
|
/* make sure the *warning* is a STREAM CODEC_NOT_FOUND one */
|
||||||
gst_message_parse_error (msg, &err, NULL);
|
gst_message_parse_warning (msg, &err, NULL);
|
||||||
fail_unless (err != NULL);
|
fail_unless (err != NULL);
|
||||||
fail_unless (err->domain == GST_STREAM_ERROR, "error has wrong error domain "
|
fail_unless (err->domain == GST_STREAM_ERROR, "error has wrong error domain "
|
||||||
"%s instead of stream-error-quark", g_quark_to_string (err->domain));
|
"%s instead of stream-error-quark", g_quark_to_string (err->domain));
|
||||||
|
@ -358,6 +385,20 @@ GST_START_TEST (test_missing_primary_decoder)
|
||||||
"code %u instead of GST_STREAM_ERROR_CODEC_NOT_FOUND", err->code);
|
"code %u instead of GST_STREAM_ERROR_CODEC_NOT_FOUND", err->code);
|
||||||
g_error_free (err);
|
g_error_free (err);
|
||||||
gst_message_unref (msg);
|
gst_message_unref (msg);
|
||||||
|
|
||||||
|
msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, -1);
|
||||||
|
fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_ERROR);
|
||||||
|
|
||||||
|
/* make sure the error is a CORE MISSING_PLUGIN one */
|
||||||
|
gst_message_parse_error (msg, &err, NULL);
|
||||||
|
fail_unless (err != NULL);
|
||||||
|
fail_unless (err->domain == GST_CORE_ERROR, "error has wrong error domain "
|
||||||
|
"%s instead of core-error-quark", g_quark_to_string (err->domain));
|
||||||
|
fail_unless (err->code == GST_CORE_ERROR_MISSING_PLUGIN, "error has wrong "
|
||||||
|
"code %u instead of GST_CORE_ERROR_MISSING_PLUGIN", err->code);
|
||||||
|
g_error_free (err);
|
||||||
|
gst_message_unref (msg);
|
||||||
|
|
||||||
gst_object_unref (bus);
|
gst_object_unref (bus);
|
||||||
|
|
||||||
gst_element_set_state (playbin, GST_STATE_NULL);
|
gst_element_set_state (playbin, GST_STATE_NULL);
|
||||||
|
@ -649,7 +690,6 @@ playbin2_suite (void)
|
||||||
suite_add_tcase (s, tc_chain);
|
suite_add_tcase (s, tc_chain);
|
||||||
|
|
||||||
#ifndef GST_DISABLE_REGISTRY
|
#ifndef GST_DISABLE_REGISTRY
|
||||||
if (0) {
|
|
||||||
tcase_add_test (tc_chain, test_sink_usage_video_only_stream);
|
tcase_add_test (tc_chain, test_sink_usage_video_only_stream);
|
||||||
tcase_add_test (tc_chain, test_suburi_error_wrongproto);
|
tcase_add_test (tc_chain, test_suburi_error_wrongproto);
|
||||||
tcase_add_test (tc_chain, test_suburi_error_invalidfile);
|
tcase_add_test (tc_chain, test_suburi_error_invalidfile);
|
||||||
|
@ -657,7 +697,6 @@ playbin2_suite (void)
|
||||||
tcase_add_test (tc_chain, test_missing_urisource_handler);
|
tcase_add_test (tc_chain, test_missing_urisource_handler);
|
||||||
tcase_add_test (tc_chain, test_missing_suburisource_handler);
|
tcase_add_test (tc_chain, test_missing_suburisource_handler);
|
||||||
tcase_add_test (tc_chain, test_missing_primary_decoder);
|
tcase_add_test (tc_chain, test_missing_primary_decoder);
|
||||||
}
|
|
||||||
tcase_add_test (tc_chain, test_refcount);
|
tcase_add_test (tc_chain, test_refcount);
|
||||||
|
|
||||||
/* one day we might also want to have the following checks:
|
/* one day we might also want to have the following checks:
|
||||||
|
|
Loading…
Reference in a new issue