check: Disable multiqueue test_output_order check
authorEdward Hervey <edward@collabora.com>
Wed, 2 Oct 2013 09:24:02 +0000 (11:24 +0200)
committerEdward Hervey <edward@collabora.com>
Wed, 2 Oct 2013 09:26:09 +0000 (11:26 +0200)
The check itself is racy.

 (CK_FORK=no GST_CHECK=test_output_order make elements/multiqueue.forever).

The problem is indeed the test and not the actual element behaviour.

The objects to push are being pulled out of the single internal queues in the
right order and at the right time...

But between:
* the moment the global multiqueue lock is released (which was used to detect
if we should pop and push downstream the next buffer)
* and the moment it is received by the source pad (which does the check)

=> another single queue (like the unlinked pad) might pop and push a buffer
downstream

What should we do ? Putting a bigger margin of error (say 5 buffers) doesn't
help, it'll eventually fail.

I can't see how we can detect this reliably.

https://bugzilla.gnome.org/show_bug.cgi?id=708661

tests/check/elements/multiqueue.c

index 651ff7d..2ec920f 100644 (file)
@@ -739,7 +739,10 @@ multiqueue_suite (void)
   tcase_add_test (tc_chain, test_request_pads);
   tcase_add_test (tc_chain, test_request_pads_named);
 
-  tcase_add_test (tc_chain, test_output_order);
+  /* Disabled, The test (and not multiqueue itself) is racy.
+   * See https://bugzilla.gnome.org/show_bug.cgi?id=708661 */
+  if (0)
+    tcase_add_test (tc_chain, test_output_order);
 
   tcase_add_test (tc_chain, test_sparse_stream);
   return s;