GNOME Bugzilla – Bug 623469
Unit test failures with CK_FORK=no make check
Last modified: 2016-04-11 09:48:30 UTC
$ CK_FORK=no make check (...) Running suite(s): GstObject /bin/bash: line 5: 19382 Segmentation fault STATE_IGNORE_ELEMENTS="" GST_REGISTRY=../../tests/check/test-registry.reg GST_PLUGIN_SCANNER=../../libs/gst/helpers/gst-plugin-scanner GST_PLUGIN_SYSTEM_PATH= GST_PLUGIN_PATH=../../plugins ${dir}$tst FAIL: gst/gstobject (...) Running suite(s): Gst Unexpected critical/warning: gst_object_unref: assertion `object != NULL' failed Unexpected critical/warning: gst_object_unref: assertion `object != NULL' failed 66%: Checks: 6, Failures: 2, Errors: 0 gstcheck.c:72:F:gst tests:test_new_pipeline:0: Unexpected critical/warning: gst_object_unref: assertion `object != NULL' failed gstcheck.c:72:F:gst tests:test_new_fakesrc:0: Unexpected critical/warning: gst_object_unref: assertion `object != NULL' failed FAIL: gst/gst (...) Running suite(s): GstElement 83%: Checks: 6, Failures: 1, Errors: 0 gst/gstelement.c:181:F:element tests:test_class:0: Failure 'type != 0' occured FAIL: gst/gstelement (...) Running suite(s): fakesrc 40%: Checks: 5, Failures: 3, Errors: 0 elements/fakesrc.c:114:F:general:test_sizetype_empty:0: Assertion 'g_list_length (buffers) == 100' failed elements/fakesrc.c:152:F:general:test_sizetype_fixed:0: Assertion 'g_list_length (buffers) == 100' failed elements/fakesrc.c:191:F:general:test_sizetype_random:0: Assertion 'g_list_length (buffers) == 100' failed FAIL: elements/fakesrc (...) Running suite(s): GstBaseTransform /bin/bash: line 5: 20482 Segmentation fault STATE_IGNORE_ELEMENTS="" GST_REGISTRY=../../tests/check/test-registry.reg GST_PLUGIN_SCANNER=../../libs/gst/helpers/gst-plugin-scanner GST_PLUGIN_SYSTEM_PATH= GST_PLUGIN_PATH=../../plugins ${dir}$tst FAIL: libs/transform1 ========================================================================== 5 of 62 tests failed Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer ========================================================================== I was trying this only because I noticed that make check-valgrind in -base leads to NULL-pointer crashes in the pipelines/theoraenc test (also happens in the gdb target).
This fixes the Gst and GstElement checks: commit 95a520be76991948f7091e6f573d5f4f28286039 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Sat Jul 3 14:09:36 2010 +0100 checks: run tests calling gst_deinit() last so things work with CK_FORK=no Because gst_init() will fail once gst_deinit() has been called. See #623469. commit 9b1bf88d7df91983ea9edceda6b993e5713fc2e4 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Sat Jul 3 14:04:32 2010 +0100 checks: don't assume element factory is not loaded yet It may already be loaded if check is being run with CK_FORK=no. See #623469.
One more: commit 694f4d90f82d29fc386075b419dc1f23e9bda556 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Sat Jul 3 15:13:14 2010 +0100 checks: make fakesrc check work in a CK_FORK=no environment Reset have_eos at the beginning of each test. See #623469. 2 left.
commit 9db5a93ed87628cfec979ba8c1c5e9e5c7a7559a Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Sat Jul 3 16:39:40 2010 +0100 check: skip silly test that segfaults when in a CK_FORK=no environment See #623469.
Fun fact: in CK_FORK=no mode fail_if() and fail_unless() don't actually seem to do anything when they fail..
Created attachment 165340 [details] [review] checks: rewrite gsttagsetter test to use fewer g_usleep() Does this work better? (Not quite sure why it times out after 4 seconds already on your machine, btw. If I make it spin endlessly, I have a much longer timeout here. )
Comment on attachment 165340 [details] [review] checks: rewrite gsttagsetter test to use fewer g_usleep() Wrong bug.
This is not really a blocker, downgrading severity.
commit 86c0058ae50ee633beaef4b177ede9529bdb9f16 Author: Tim-Philipp Müller <tim@centricular.com> Date: Mon Apr 11 10:44:22 2016 +0100 tests: baseparse: make work with CK_FORK=no https://bugzilla.gnome.org/show_bug.cgi?id=623469 commit 1fa64722d0c69158872e744eaf9c8e38381bb574 Author: Tim-Philipp Müller <tim@centricular.com> Date: Mon Apr 11 10:27:56 2016 +0100 tests: transform1: make test work with CK_FORK=no We need to clear some global state and register a new test basetransform subclass for each test because we do things in class_init base on global state. https://bugzilla.gnome.org/show_bug.cgi?id=623469 commit f9eb3b98f1858e2273696895827af2b9d86bfde1 Author: Tim-Philipp Müller <tim@centricular.com> Date: Sun Apr 10 20:45:24 2016 +0100 tests: collectpads: fix for CK_FORK=no Reset global state when done, and unref sink pads too in teardown function to make it valgrind clean. https://bugzilla.gnome.org/show_bug.cgi?id=623469 commit 71f554009d549ebf9e6aec4d876714f92fe10c9e Author: Tim-Philipp Müller <tim@centricular.com> Date: Sun Apr 10 20:25:44 2016 +0100 tests: streamiddemux: fix with CK_FORK=no Clear global state when done. https://bugzilla.gnome.org/show_bug.cgi?id=623469 commit 4b9f2966fbf8e374725e67276d33cda752ce4439 Author: Tim-Philipp Müller <tim@centricular.com> Date: Sun Apr 10 20:04:07 2016 +0100 tests: bufferpool: fix wrong assumptions about pointers and object lifecycles The test assumed that if a buffer has the same pointer address as before it is in fact the same mini object and has been re-used by the pool. This seems to be mostly true, but not always. The buffer might be destroyed and when a new buffer is created the allocator might return the same memory that we just freed. Instead attach a qdata with destroy notify function to buffer instances we want to track to make sure the buffer actually gets finalized rather than resurrected and put back into the pool.