From: <tp...@ke...> - 2008-05-24 16:38:23
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: tpm Date: Sat May 24 2008 16:38:29 UTC Log message: * tests/check/Makefile.am: * tests/check/pipelines/parse-launch.c: Add some unit tests for the new gst_parse_launch*_full() API. (Exposes a previously-existing memory leak in the error code path, so adding to VALGRIND_TO_FIX for now). Modified files: . : ChangeLog tests/check : Makefile.am tests/check/pipelines: parse-launch.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3879&r2=1.3880 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/check/Makefile.am.diff?r1=1.131&r2=1.132 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/tests/check/pipelines/parse-launch.c.diff?r1=1.16&r2=1.17 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3879 retrieving revision 1.3880 diff -u -d -r1.3879 -r1.3880 --- ChangeLog 24 May 2008 15:33:36 -0000 1.3879 +++ ChangeLog 24 May 2008 16:38:13 -0000 1.3880 @@ -1,5 +1,13 @@ 2008-05-24 Tim-Philipp Müller <tim.muller at collabora co uk> + * tests/check/Makefile.am: + * tests/check/pipelines/parse-launch.c: + Add some unit tests for the new gst_parse_launch*_full() API. + (Exposes a previously-existing memory leak in the error code + path, so adding to VALGRIND_TO_FIX for now). + +2008-05-24 Tim-Philipp Müller <tim.muller at collabora co uk> * docs/gst/gstreamer-sections.txt: * gst/gst.c: (init_post): * gst/gst_private.h: (_GstParseContext): Index: Makefile.am RCS file: /cvs/gstreamer/gstreamer/tests/check/Makefile.am,v retrieving revision 1.131 retrieving revision 1.132 diff -u -d -r1.131 -r1.132 --- Makefile.am 17 Mar 2008 10:21:59 -0000 1.131 +++ Makefile.am 24 May 2008 16:38:15 -0000 1.132 @@ -167,7 +167,8 @@ # these just need valgrind fixing, period VALGRIND_TO_FIX = \ gst/gstinfo \ - libs/collectpads + libs/collectpads \ + pipelines/parse-launch VALGRIND_IGNORE = \ pipelines/stress Index: parse-launch.c RCS file: /cvs/gstreamer/gstreamer/tests/check/pipelines/parse-launch.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- parse-launch.c 21 May 2008 15:57:52 -0000 1.16 +++ parse-launch.c 24 May 2008 16:38:15 -0000 1.17 @@ -1,7 +1,6 @@ -/* GStreamer +/* GStreamer gst_parse_launch unit tests * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org> - * - * cleanup.c: Unit test for cleanup of pipelines + * Copyright (C) <2008> Tim-Philipp Müller <tim centricular net> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -536,6 +535,65 @@ return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); } +GST_START_TEST (test_missing_elements) +{ + GstParseContext *ctx; + GstElement *element; + GError *err = NULL; + gchar **arr; + /* avoid misleading 'no such element' error debug messages when using cvs */ + if (!g_getenv ("GST_DEBUG")) + gst_debug_set_default_threshold (GST_LEVEL_NONE); + ctx = gst_parse_context_new (); + element = gst_parse_launch_full ("fakesrc ! coffeesink", ctx, + GST_PARSE_FLAG_FATAL_ERRORS, &err); + fail_unless (err != NULL, "expected error"); + fail_unless_equals_int (err->code, GST_PARSE_ERROR_NO_SUCH_ELEMENT); + fail_unless (element == NULL, "expected NULL return with FATAL_ERRORS"); + arr = gst_parse_context_get_missing_elements (ctx); + fail_unless (arr != NULL, "expected missing elements"); + fail_unless_equals_string (arr[0], "coffeesink"); + fail_unless (arr[1] == NULL); + g_strfreev (arr); + gst_parse_context_free (ctx); + g_error_free (err); + err = NULL; +} +GST_END_TEST; +GST_START_TEST (test_flags) + /* default behaviour is to return any already constructed bins/elements */ + element = gst_parse_launch_full ("fakesrc ! coffeesink", NULL, 0, &err); + fail_unless (element != NULL, "expected partial pipeline/element"); + gst_object_unref (element); + /* test GST_PARSE_FLAG_FATAL_ERRORS */ + element = gst_parse_launch_full ("fakesrc ! coffeesink", NULL, static Suite * parse_suite (void) { @@ -551,6 +609,8 @@ tcase_add_test (tc_chain, expected_to_fail_pipes); tcase_add_test (tc_chain, leaking_fail_pipes); tcase_add_test (tc_chain, delayed_link); + tcase_add_test (tc_chain, test_flags); + tcase_add_test (tc_chain, test_missing_elements); return s; |