GNOME Bugzilla – Bug 521749
[souphttpsrc] unit test fails on mandriva cooker
Last modified: 2008-04-10 07:11:24 UTC
This is on Mandriva Cooker x86_64 with gst-plugins-bad 0.10.6, libsoup 2.4.0, gstreamer 0.10.17 and gst-plugins-base 0.10.17: Running suite(s): souphttpsrc 85%: Checks: 7, Failures: 0, Errors: 1 elements/souphttpsrc.c:203:E:general:test_icy_stream:0: (after this point) Test timeout expired FAIL: elements/souphttpsrc
Could you attach a GST_DEBUG=*:5 log? (possibly in combination with GST_CHECKS=test_icy_stream to narrow it down to just this one test)
I don't know if it applies to your case, but according to the ChangeLog: "Prefix proxy URIs with "http://" if they don't start with it already and catch errors earlier, fixes hanging in some situations." the last chunk of http://webcvs.freedesktop.org/gstreamer/gst-plugins-bad/ext/soup/gstsouphttpsrc.c?r1=1.13&r2=1.14 could be relevant.
The output of GST_DEBUG=*:5 GST_CHECKS=test_icy_stream make check 2> log is here: http://www-zeuthen.desy.de/~waschk/log.bz2 I'll try the patch from comment #2 next.
The patch has no effect, I guess I'm not using a proxy anyway.
None of the tests configure a proxy, so that's not the issue. The "test_icy_stream" test, which I copied from neonhttpsrc, tries to connect to http://ogg2.smgradio.com/vr32.ogg. If that is not reachable, the test will fail. Depending on an external site is of course annoying in a test, but I don't see myself writing a {Shout|Ice}cast server for the sake of this test alone.
I think it would be ok to just skip the rest of the test silently in case of a connection error. That's what the neon test does too IIRC.
The problem is that there is a timeout on the duration of the test which is probably shorter than the TCP connection timeout. The test framework would always kill the test and mark it as failed. Silently ignoring a failure on a test also seems like cheating to me. ;-) There's no real point in having the test in the first place then.
We could simply increase the timeout, no?
Created attachment 108951 [details] [review] Add 2 minute timeout on test requiring Internet connectivity.
The test suite segfaults in got_buffer() because GST_BUFFER_CAPS(buf) is NULL.
The timeout took 3 minutes and 9 seconds on my system. I suggest making it a 210s timeout instead of 120s. posted error message: Cannot connect to destination check elements/souphttpsrc.c:254:test_icy_stream: looks like there's no net connectivity or sgmradio.com is down. In any case, let's just skip this test
2008-04-10 Sebastian Dröge <slomo@circular-chaos.org> * tests/check/elements/souphttpsrc.c: (got_buffer), (souphttpsrc_suite): Increase the timeout for the internet tests to 250 seconds and check for NULL caps instead of just crashing. The real fix would be to implement an shoutcast server for the unit test instead of relying on a working internet connection. Fixes bug #521749.