From d3d2e8b94aea91865eb5489e6421fd45bb5e2c4b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 21 Jun 2016 18:04:23 +0100 Subject: [PATCH] tests: discoverer: handle missing ogg/codec plugins gracefully https://bugzilla.gnome.org/show_bug.cgi?id=767859 --- tests/check/libs/discoverer.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tests/check/libs/discoverer.c b/tests/check/libs/discoverer.c index aa2b9a9..bbee562 100644 --- a/tests/check/libs/discoverer.c +++ b/tests/check/libs/discoverer.c @@ -29,6 +29,7 @@ #include #include +static gboolean have_theora, have_ogg; GST_START_TEST (test_disco_init) { @@ -66,8 +67,15 @@ GST_START_TEST (test_disco_serializing) info = gst_discoverer_discover_uri (dc, uri, &err); fail_unless (info); - fail_unless_equals_int (gst_discoverer_info_get_result (info), - GST_DISCOVERER_OK); + if (have_theora && have_ogg) { + fail_unless_equals_int (gst_discoverer_info_get_result (info), + GST_DISCOVERER_OK); + } else { + fail_unless_equals_int (gst_discoverer_info_get_result (info), + GST_DISCOVERER_MISSING_PLUGINS); + g_clear_error (&err); + goto missing_plugins; + } serialized = gst_discoverer_info_to_variant (info, GST_DISCOVERER_SERIALIZE_ALL); @@ -85,13 +93,15 @@ GST_START_TEST (test_disco_serializing) fail_unless (g_variant_equal (serialized, reserialized)); - gst_discoverer_info_unref (info); gst_discoverer_info_unref (dinfo); - g_free (uri); g_variant_unref (serialized); g_variant_unref (reserialized); +missing_plugins: + + gst_discoverer_info_unref (info); g_object_unref (dc); + g_free (uri); } GST_END_TEST; @@ -239,6 +249,11 @@ discoverer_suite (void) Suite *s = suite_create ("discoverer"); TCase *tc_chain = tcase_create ("general"); + have_theora = gst_registry_check_feature_version (gst_registry_get (), + "theoradec", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0); + have_ogg = gst_registry_check_feature_version (gst_registry_get (), + "oggdemux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0); + suite_add_tcase (s, tc_chain); tcase_add_test (tc_chain, test_disco_init); tcase_add_test (tc_chain, test_disco_sync); -- 2.7.4