CVS Root: /cvs/gstreamer Module: gst-plugins-gl Changes by: ds Date: Thu Jan 31 2008 23:40:29 UTC Log message: * configure.ac: * pkgconfig/Makefile.am: * pkgconfig/gstreamer-gl-uninstalled.pc.in: * pkgconfig/gstreamer-gl.pc.in: * pkgconfig/gstreamer-plugins-gl-uninstalled.pc.in: * pkgconfig/gstreamer-plugins-gl.pc.in: Rename pkgconfig files. And install them. * tests/check/Makefile.am: * tests/check/generic/states.c: * tests/check/pipelines/simple-launch-lines.c: Add some tests copied from -good. Modified files: . : ChangeLog configure.ac pkgconfig : Makefile.am tests/check : Makefile.am Added files: pkgconfig : gstreamer-gl-uninstalled.pc.in gstreamer-gl.pc.in tests/check/generic: states.c tests/check/pipelines: simple-launch-lines.c Removed files: pkgconfig : gstreamer-plugins-gl-uninstalled.pc.in gstreamer-plugins-gl.pc.in Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/ChangeLog.diff?r1=1.8&r2=1.9 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/configure.ac.diff?r1=1.5&r2=1.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/pkgconfig/Makefile.am.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/pkgconfig/gstreamer-gl-uninstalled.pc.in?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/pkgconfig/gstreamer-gl.pc.in?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/pkgconfig/gstreamer-plugins-gl-uninstalled.pc.in http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/pkgconfig/gstreamer-plugins-gl.pc.in http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/tests/check/Makefile.am.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/tests/check/generic/states.c?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-gl/tests/check/pipelines/simple-launch-lines.c?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-gl/ChangeLog,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- ChangeLog 31 Jan 2008 21:35:56 -0000 1.8 +++ ChangeLog 31 Jan 2008 23:40:13 -0000 1.9 @@ -1,3 +1,17 @@ +2008-01-31 David Schleef <ds...@sc...> + + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-gl-uninstalled.pc.in: + * pkgconfig/gstreamer-gl.pc.in: + * pkgconfig/gstreamer-plugins-gl-uninstalled.pc.in: + * pkgconfig/gstreamer-plugins-gl.pc.in: + Rename pkgconfig files. And install them. + * tests/check/Makefile.am: + * tests/check/generic/states.c: + * tests/check/pipelines/simple-launch-lines.c: + Add some tests copied from -good. 2008-01-31 Tim-Philipp Müller <tim at centricular dot net> * gst-libs/gst/gl/Makefile.am: Index: configure.ac RCS file: /cvs/gstreamer/gst-plugins-gl/configure.ac,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- configure.ac 31 Jan 2008 21:28:23 -0000 1.5 +++ configure.ac 31 Jan 2008 23:40:13 -0000 1.6 @@ -354,8 +354,8 @@ tools/Makefile win32/common/config.h pkgconfig/Makefile -pkgconfig/gstreamer-plugins-gl.pc -pkgconfig/gstreamer-plugins-gl-uninstalled.pc +pkgconfig/gstreamer-gl.pc +pkgconfig/gstreamer-gl-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile Index: Makefile.am RCS file: /cvs/gstreamer/gst-plugins-gl/pkgconfig/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile.am 17 Jan 2008 19:40:43 -0000 1.1 +++ Makefile.am 31 Jan 2008 23:40:13 -0000 1.2 @@ -0,0 +1,23 @@ +pcverfiles = gstreamer-gl-@GST_MAJORMINOR@.pc +pcverfiles_uninstalled = gstreamer-gl-@GST_MAJORMINOR@-uninstalled.pc +all-local: $(pcverfiles) $(pcverfiles_uninstalled) +### how to generate versioned .pc files from .pc files in this dir +%-@GST_MAJORMINOR@.pc: %.pc + cp $< $@ +%-@GST_MAJORMINOR@-uninstalled.pc: %-uninstalled.pc +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = $(pcverfiles) +CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled) +pcinfiles = \ + gstreamer-gl.pc.in gstreamer-gl-uninstalled.pc.in +DISTCLEANFILES = $(pcinfiles:.in=) +EXTRA_DIST = $(pcinfiles) --- NEW FILE: gstreamer-gl-uninstalled.pc.in --- prefix= exec_prefix= libdir=${pcfiledir}/../gst-libs/gst includedir=${pcfiledir}/../gst-libs pluginsdir=${pcfiledir}/.. Name: GStreamer OpenGL Plugins Libraries, Uninstalled Description: Streaming media framework, OpenGL plugins libraries, uninstalled Version: @VERSION@ Requires: gstreamer-@GST_MAJORMINOR@ Libs: -L${libdir}/gl Cflags: -I${includedir} libraries=gl --- NEW FILE: gstreamer-gl.pc.in --- prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/gstreamer-@GST_MAJORMINOR@ pluginsdir=@libdir@/gstreamer-@GST_MAJORMINOR@ Name: GStreamer OpenGL Plugins Libraries Description: Streaming media framework, OpenGL plugins libraries Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@ Libs: -L${libdir} -lgstgl-@GST_MAJORMINOR@ --- gstreamer-plugins-gl-uninstalled.pc.in DELETED --- --- gstreamer-plugins-gl.pc.in DELETED --- RCS file: /cvs/gstreamer/gst-plugins-gl/tests/check/Makefile.am,v --- Makefile.am 17 Jan 2008 19:40:44 -0000 1.1 +++ Makefile.am 31 Jan 2008 23:40:14 -0000 1.2 @@ -0,0 +1,44 @@ +include $(top_srcdir)/common/check.mak +CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg +TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files +REGISTRY_ENVIRONMENT = \ + GST_REGISTRY=$(CHECK_REGISTRY) +TESTS_ENVIRONMENT = \ + $(REGISTRY_ENVIRONMENT) \ + GST_PLUGIN_SYSTEM_PATH= \ + GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ + GST_TEST_FILES_PATH=$(TEST_FILES_DIRECTORY) \ + STATE_IGNORE_ELEMENTS="aasink autovideosink cacasink cairotextoverlay" +# ths core dumps of some machines have PIDs appended +CLEANFILES = core.* test-registry.* +clean-local: clean-local-check +check_PROGRAMS = \ + generic/states \ + pipelines/simple-launch-lines +VALGRIND_TO_FIX = +TESTS = $(check_PROGRAMS) +# these tests don't even pass +# autodetect: temporarily disabled because of broken videosinks in -bad +#noinst_PROGRAMS = \ +# elements/autodetect +AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS) $(GST_OPTION_CFLAGS) +LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS) +# valgrind testing +# videocrop disabled since it takes way too long in valgrind +VALGRIND_TESTS_DISABLE = \ + elements/videocrop \ + $(VALGRIND_TO_FIX) +SUPPRESSIONS = $(top_srcdir)/common/gst.supp --- NEW FILE: states.c --- /* GStreamer * * unit test for state changes on all elements * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org> * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <unistd.h> #include <gst/check/gstcheck.h> static GList *elements = NULL; static void setup () { GList *features, *f; GList *plugins, *p; gchar **ignorelist = NULL; const gchar *STATE_IGNORE_ELEMENTS = NULL; GST_DEBUG ("getting elements for package %s", PACKAGE); STATE_IGNORE_ELEMENTS = g_getenv ("STATE_IGNORE_ELEMENTS"); if (STATE_IGNORE_ELEMENTS) { GST_DEBUG ("Will ignore element factories: '%s'", STATE_IGNORE_ELEMENTS); ignorelist = g_strsplit (STATE_IGNORE_ELEMENTS, " ", 0); } plugins = gst_registry_get_plugin_list (gst_registry_get_default ()); for (p = plugins; p; p = p->next) { GstPlugin *plugin = p->data; if (strcmp (gst_plugin_get_source (plugin), PACKAGE) != 0) continue; features = gst_registry_get_feature_list_by_plugin (gst_registry_get_default (), gst_plugin_get_name (plugin)); for (f = features; f; f = f->next) { GstPluginFeature *feature = f->data; const gchar *name = gst_plugin_feature_get_name (feature); gboolean ignore = FALSE; if (!GST_IS_ELEMENT_FACTORY (feature)) continue; if (ignorelist) { gchar **s; for (s = ignorelist; s && *s; ++s) { if (g_str_has_prefix (name, *s)) { GST_DEBUG ("ignoring element %s", name); ignore = TRUE; } } if (ignore) continue; } GST_DEBUG ("adding element %s", name); elements = g_list_prepend (elements, (gpointer) g_strdup (name)); } gst_plugin_feature_list_free (features); gst_plugin_list_free (plugins); g_strfreev (ignorelist); } teardown () GList *e; for (e = elements; e; e = e->next) { g_free (e->data); g_list_free (elements); elements = NULL; GST_START_TEST (test_state_changes_up_and_down_seq) GstElement *element; const gchar *name = e->data; GST_INFO ("testing element %s", name); element = gst_element_factory_make (name, name); fail_if (element == NULL, "Could not make element from factory %s", name); if (GST_IS_PIPELINE (element)) { GST_DEBUG ("element %s is a pipeline", name); gst_element_set_state (element, GST_STATE_READY); gst_element_set_state (element, GST_STATE_PAUSED); gst_element_set_state (element, GST_STATE_PLAYING); gst_element_set_state (element, GST_STATE_NULL); gst_object_unref (GST_OBJECT (element)); GST_END_TEST; GST_START_TEST (test_state_changes_up_seq) GST_START_TEST (test_state_changes_down_seq) Suite * states_suite (void) Suite *s = suite_create ("states"); TCase *tc_chain = tcase_create ("general"); suite_add_tcase (s, tc_chain); tcase_add_checked_fixture (tc_chain, setup, teardown); tcase_add_test (tc_chain, test_state_changes_up_and_down_seq); tcase_add_test (tc_chain, test_state_changes_up_seq); tcase_add_test (tc_chain, test_state_changes_down_seq); return s; GST_CHECK_MAIN (states); --- NEW FILE: simple-launch-lines.c --- * Copyright (C) 2005 Andy Wingo <wi...@po...> * simple_launch_lines.c: Unit test for simple pipelines #ifndef GST_DISABLE_PARSE static GstElement * setup_pipeline (const gchar * pipe_descr) GstElement *pipeline; pipeline = gst_parse_launch (pipe_descr, NULL); g_return_val_if_fail (GST_IS_PIPELINE (pipeline), NULL); return pipeline; /* * run_pipeline: * @pipe: the pipeline to run * @desc: the description for use in messages * @events: is a mask of expected events * @tevent: is the expected terminal event. * the poll call will time out after half a second. run_pipeline (GstElement * pipe, const gchar * descr, GstMessageType events, GstMessageType tevent, GstState target_state) GstBus *bus; GstMessage *message; GstMessageType revent; GstStateChangeReturn ret; g_assert (pipe); bus = gst_element_get_bus (pipe); g_assert (bus); fail_if (gst_element_set_state (pipe, target_state) == GST_STATE_CHANGE_FAILURE, "Could not set pipeline %s to playing", descr); ret = gst_element_get_state (pipe, NULL, NULL, 10 * GST_SECOND); if (ret == GST_STATE_CHANGE_ASYNC) { g_critical ("Pipeline '%s' failed to go to PAUSED fast enough", descr); goto done; } else if ((ret != GST_STATE_CHANGE_SUCCESS) && (ret != GST_STATE_CHANGE_NO_PREROLL)) { g_critical ("Pipeline '%s' failed to go into PAUSED state (%s)", descr, gst_element_state_change_return_get_name (ret)); while (1) { message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_SECOND / 2); /* always have to pop the message before getting back into poll */ if (message) { revent = GST_MESSAGE_TYPE (message); gst_message_unref (message); } else { revent = GST_MESSAGE_UNKNOWN; if (revent == tevent) { break; } else if (revent == GST_MESSAGE_UNKNOWN) { g_critical ("Unexpected timeout in gst_bus_poll, looking for %d: %s", tevent, descr); } else if (revent & events) { g_critical ("Unexpected message received of type %d, '%s', looking for %d: %s", revent, gst_message_type_get_name (revent), tevent, descr); done: fail_if (gst_element_set_state (pipe, GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE, "Could not set pipeline %s to NULL", descr); gst_element_get_state (pipe, NULL, NULL, GST_CLOCK_TIME_NONE); gst_object_unref (pipe); gst_bus_set_flushing (bus, TRUE); gst_object_unref (bus); GST_START_TEST (test_something) gchar *s; GstState target_state = GST_STATE_PLAYING; s = "fakesrc num-buffers=10 ! fakesink"; run_pipeline (setup_pipeline (s), s, GST_MESSAGE_ANY & ~(GST_MESSAGE_ERROR | GST_MESSAGE_WARNING), GST_MESSAGE_UNKNOWN, target_state); GST_END_TEST #endif /* #ifndef GST_DISABLE_PARSE */ Suite * simple_launch_lines_suite (void) Suite *s = suite_create ("Pipelines"); TCase *tc_chain = tcase_create ("linear"); /* time out after 60s, not the default 3 */ tcase_set_timeout (tc_chain, 60); tcase_add_test (tc_chain, test_something); int main (int argc, char **argv) int nf; Suite *s = simple_launch_lines_suite (); SRunner *sr = srunner_create (s); gst_check_init (&argc, &argv); srunner_run_all (sr, CK_NORMAL); nf = srunner_ntests_failed (sr); srunner_free (sr); return nf; |