From: <tho...@fr...> - 2004-12-21 14:51:12
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: thomasvs Date: Tue Dec 21 2004 06:51:09 PST Branch: BRANCH-THREADED Log message: move common code to a lib Modified files: . : ChangeLog check : Makefile.am check/gst : gstobject.c check/gst-libs : gdp.c gst : gstelement.c Added files: check : gstcheck.c gstcheck.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.858.2.12&r2=1.858.2.13 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/check/Makefile.am.diff?r1=1.1.2.3&r2=1.1.2.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/check/gstcheck.c?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/check/gstcheck.h?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/check/gst/gstobject.c.diff?r1=1.1.2.4&r2=1.1.2.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/check/gst-libs/gdp.c.diff?r1=1.1.2.1&r2=1.1.2.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstelement.c.diff?r1=1.305.2.5&r2=1.305.2.6 ====Begin Diffs==== Index: Makefile.am =================================================================== RCS file: /cvs/gstreamer/gstreamer/check/Attic/Makefile.am,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- Makefile.am 21 Dec 2004 12:26:38 -0000 1.1.2.3 +++ Makefile.am 21 Dec 2004 14:50:57 -0000 1.1.2.4 @@ -2,8 +2,14 @@ check_PROGRAMS = $(TESTS) +noinst_LTLIBRARIES = libgstcheck.la + +libgstcheck_la_SOURCES = gstcheck.c +libgstcheck_la_LIBADD = $(GST_OBJ_LIBS) +noinst_HEADERS = gstcheck.h AM_CFLAGS = $(GST_OBJ_CFLAGS) $(CHECK_CFLAGS) -LDADD = $(GST_OBJ_LIBS) $(CHECK_LIBS) +LDADD = $(GST_OBJ_LIBS) $(CHECK_LIBS) libgstcheck.la gst_libs_gdp_SOURCES = \ gst-libs/gdp.c \ --- NEW FILE: gstcheck.c --- /* GStreamer * * Common code for GStreamer unittests * Copyright (C) <2004> 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. */ #include <gst/gst.h> /* logging function for tests * a test uses g_message() to log a debug line * a gst unit test can be run with GST_TEST_DEBUG env var set to see the * messages gboolean _gst_check_debug = FALSE; void gst_check_log_func (const gchar * log_domain, GLogLevelFlags log_level, const gchar * message, gpointer user_data) { // g_print ("HANDLER CALLED\n"); if (_gst_check_debug) { g_print (message); } } /* initialize GStreamer testing */ void gst_check_init (void) if (g_getenv ("GST_TEST_DEBUG")) _gst_check_debug = TRUE; g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, gst_check_log_func, NULL); --- NEW FILE: gstcheck.h --- #ifndef __GST_CHECK_H__ #define __GST_CHECK_H__ #include <signal.h> #include <string.h> #include <stdlib.h> #include <check.h> gboolean _gst_check_threads_running = FALSE; void gst_check_init (void); /*** * thread test macros and variables GList *thread_list = NULL; GMutex *mutex; GCond *start_cond; /* used to notify main thread of thread startups */ GCond *sync_cond; /* used to synchronize all threads and main thread */ #define MAIN_START_THREADS(count, function, data) \ MAIN_INIT(); \ MAIN_START_THREAD_FUNCTIONS(count, function, data); \ MAIN_SYNCHRONIZE(); #define MAIN_INIT() \ G_STMT_START { \ _gst_check_threads_running = TRUE; \ \ mutex = g_mutex_new (); \ start_cond = g_cond_new (); \ sync_cond = g_cond_new (); \ } G_STMT_END; #define MAIN_START_THREAD_FUNCTIONS(count, function, data) \ G_STMT_START { \ int i; \ for (i = 0; i < count; ++i) { \ MAIN_START_THREAD_FUNCTION (i, function, data); \ } \ #define MAIN_START_THREAD_FUNCTION(i, function, data) \ GThread *thread = NULL; \ g_message ("MAIN: creating thread %d\n", i); \ g_mutex_lock (mutex); \ thread = g_thread_create ((GThreadFunc) function, data, \ TRUE, NULL); \ /* wait for thread to signal us that it's ready */ \ g_message ("MAIN: waiting for thread %d\n", i); \ g_cond_wait (start_cond, mutex); \ g_mutex_unlock (mutex); \ \ thread_list = g_list_append (thread_list, thread); \ #define MAIN_SYNCHRONIZE() \ g_message ("MAIN: synchronizing\n"); \ g_cond_broadcast (sync_cond); \ g_message ("MAIN: synchronized\n"); \ #define MAIN_STOP_THREADS() \ _gst_check_threads_running = FALSE; \ /* join all threads */ \ g_message ("MAIN: joining\n"); \ g_list_foreach (thread_list, (GFunc) g_thread_join, NULL); \ g_message ("MAIN: joined\n"); \ #define THREAD_START() \ THREAD_STARTED(); \ THREAD_SYNCHRONIZE(); #define THREAD_STARTED() \ /* signal main thread that we started */ \ g_message ("THREAD %p: started\n", g_thread_self ()); \ g_mutex_lock (mutex); \ g_cond_signal (start_cond); \ #define THREAD_SYNCHRONIZE() \ /* synchronize everyone */ \ g_message ("THREAD %p: syncing\n", g_thread_self ()); \ g_cond_wait (sync_cond, mutex); \ g_message ("THREAD %p: synced\n", g_thread_self ()); \ g_mutex_unlock (mutex); \ #define THREAD_TEST_RUNNING() (_gst_check_threads_running == TRUE) #endif /* __GST_CHECK_H__ */ Index: ChangeLog RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.858.2.12 retrieving revision 1.858.2.13 diff -u -d -r1.858.2.12 -r1.858.2.13 --- ChangeLog 21 Dec 2004 12:26:38 -0000 1.858.2.12 +++ ChangeLog 21 Dec 2004 14:50:57 -0000 1.858.2.13 @@ -1,6 +1,16 @@ 2004-12-21 Thomas Vander Stichele <thomas at apestaart dot org> * check/Makefile.am: + * check/gst-libs/gdp.c: + * check/gst/gstobject.c: + * check/gstcheck.c: + * check/gstcheck.h: + * gst/gstelement.c: + move common code to a lib +2004-12-21 Thomas Vander Stichele <thomas at apestaart dot org> + * check/Makefile.am: * check/gst-libs/.cvsignore: * check/gst-libs/gdp.c: * libs/gst/dataprotocol/Makefile.am: Index: gstobject.c RCS file: /cvs/gstreamer/gstreamer/check/gst/Attic/gstobject.c,v retrieving revision 1.1.2.5 diff -u -d -r1.1.2.4 -r1.1.2.5 --- gstobject.c 14 Dec 2004 11:47:44 -0000 1.1.2.4 +++ gstobject.c 21 Dec 2004 14:50:57 -0000 1.1.2.5 @@ -20,44 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#include <signal.h> -#include <string.h> -#include <stdlib.h> - -#include <check.h> -#include <gst/gst.h> -/* FIXME: externalize */ -/* logging function for tests - * a test uses g_message() to log a debug line - * a gst unit test can be run with GST_TEST_DEBUG env var set to see the - * messages - */ -gboolean _gst_test_debug = FALSE; -gboolean _gst_test_threads_running = FALSE; -void gst_test_log_func - (const gchar * log_domain, GLogLevelFlags log_level, - const gchar * message, gpointer user_data) -{ - // g_print ("HANDLER CALLED\n"); - if (_gst_test_debug) { - g_print (message); - } -} -/* initialize GStreamer testing */ -void -gst_test_init (void) - if (g_getenv ("GST_TEST_DEBUG")) - _gst_test_debug = TRUE; - g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, gst_test_log_func, NULL); +#include "../gstcheck.h" /* Create a fake subclass @@ -162,95 +125,8 @@ } END_TEST -/*** - * thread test macros and variables - GList * thread_list = NULL; -GMutex *mutex; -GCond *start_cond; /* used to notify main thread of thread startups */ -GCond *sync_cond; /* used to synchronize all threads and main thread */ -#define MAIN_START_THREADS(count, function, data) \ -MAIN_INIT(); \ -MAIN_START_THREAD_FUNCTIONS(count, function, data); \ -MAIN_SYNCHRONIZE(); -#define MAIN_INIT() \ -G_STMT_START { \ - _gst_test_threads_running = TRUE; \ - \ - mutex = g_mutex_new (); \ - start_cond = g_cond_new (); \ - sync_cond = g_cond_new (); \ -} G_STMT_END; -#define MAIN_START_THREAD_FUNCTIONS(count, function, data) \ -G_STMT_START { \ - int i; \ - for (i = 0; i < count; ++i) { \ - MAIN_START_THREAD_FUNCTION (i, function, data); \ - } \ -#define MAIN_START_THREAD_FUNCTION(i, function, data) \ - GThread *thread = NULL; \ - g_message ("MAIN: creating thread %d\n", i); \ - g_mutex_lock (mutex); \ - thread = g_thread_create ((GThreadFunc) function, data, \ - TRUE, NULL); \ - /* wait for thread to signal us that it's ready */ \ - g_message ("MAIN: waiting for thread %d\n", i); \ - g_cond_wait (start_cond, mutex); \ - g_mutex_unlock (mutex); \ - \ - thread_list = g_list_append (thread_list, thread); \ -#define MAIN_SYNCHRONIZE() \ - g_message ("MAIN: synchronizing\n"); \ - g_cond_broadcast (sync_cond); \ - g_message ("MAIN: synchronized\n"); \ -#define MAIN_STOP_THREADS() \ - _gst_test_threads_running = FALSE; \ - /* join all threads */ \ - g_message ("MAIN: joining\n"); \ - g_list_foreach (thread_list, (GFunc) g_thread_join, NULL); \ - g_message ("MAIN: joined\n"); \ -#define THREAD_START() \ -THREAD_STARTED(); \ -THREAD_SYNCHRONIZE(); -#define THREAD_STARTED() \ - /* signal main thread that we started */ \ - g_message ("THREAD %p: started\n", g_thread_self ()); \ - g_mutex_lock (mutex); \ - g_cond_signal (start_cond); \ -#define THREAD_SYNCHRONIZE() \ - /* synchronize everyone */ \ - g_message ("THREAD %p: syncing\n", g_thread_self ()); \ - g_cond_wait (sync_cond, mutex); \ - g_message ("THREAD %p: synced\n", g_thread_self ()); \ - g_mutex_unlock (mutex); \ -#define THREAD_TEST_RUNNING() (_gst_test_threads_running == TRUE) /* thread function for threaded name change test */ -gpointer -thread_name_object (GstObject * object) + gpointer thread_name_object (GstObject * object) { gchar *thread_id = g_strdup_printf ("%p", g_thread_self ()); @@ -479,7 +355,7 @@ SRunner *sr = srunner_create (s); gst_init (&argc, &argv); - gst_test_init (); + gst_check_init (); srunner_run_all (sr, CK_NORMAL); nf = srunner_ntests_failed (sr); Index: gdp.c RCS file: /cvs/gstreamer/gstreamer/check/gst-libs/Attic/gdp.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- gdp.c 21 Dec 2004 12:26:38 -0000 1.1.2.1 +++ gdp.c 21 Dec 2004 14:50:57 -0000 1.1.2.2 @@ -20,47 +20,11 @@ -#include <string.h> /* memcmp */ #include <gst/dataprotocol/dataprotocol.h> #include "libs/gst/dataprotocol/dp-private.h" /* private header */ /* test our method of reading and writing headers using TO/FROM_BE */ START_TEST (test_conversion) @@ -302,8 +266,8 @@ gst_dp_init (); Index: gstelement.c RCS file: /cvs/gstreamer/gstreamer/gst/gstelement.c,v retrieving revision 1.305.2.5 retrieving revision 1.305.2.6 diff -u -d -r1.305.2.5 -r1.305.2.6 --- gstelement.c 20 Dec 2004 16:07:05 -0000 1.305.2.5 +++ gstelement.c 21 Dec 2004 14:50:57 -0000 1.305.2.6 @@ -26,15 +26,16 @@ #include <gobject/gvaluecollector.h> #include "gstelement.h" -#include "gstbin.h" #include "gstmarshal.h" #include "gsterror.h" #include "gstevent.h" #include "gstutils.h" #include "gstinfo.h" #include "gst-i18n-lib.h" #include "gstscheduler.h" -#include "gstpipeline.h" +#include "gstbus.h" /* Element signals and args */ enum @@ -191,7 +192,7 @@ element->state_cond = g_cond_new (); -/** +/** * gst_element_default_error: * @object: a #GObject that signalled the error. * @orig: the #GstObject that initiated the error. @@ -246,7 +247,7 @@ * gst_element_requires_clock: * @element: a #GstElement to query * - * Query if the element requiresd a clock + * Query if the element requires a clock. * Returns: TRUE if the element requires a clock @@ -369,7 +370,7 @@ * @element: a #GstElement. * @index: a #GstIndex. - * Set the specified GstIndex on the element. + * Set the specified GstIndex on the element. * MT safe. @@ -420,7 +421,7 @@ * @pad: the #GstPad to add to the element. * Adds a pad (link point) to @element. @pad's parent will be set to @element; - * see gst_object_set_parent() for refcounting information. + * see gst_object_set_parent() for refcounting information. * Pads are automatically activated when the element is in state PLAYING. |