mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 15:56:42 +00:00
25d7914395
Fixes #345 There were two causes for the flakiness, one much rarer than the other. The test sets up a source with a sometimes pad added during the transition of a wrapper bin from READY to PAUSED. It runs 4 iterations, the last of which makes it so the negotiation fails. In that case, the intention as correctly presented by the following comment: /* [..] ie, the pipeline should create ok but fail to change state */ However the implementation of run_delayed_test was neither calling get_state on the pipeline (it called it on the wrapper bin), nor checking that the return of get_state was FAILURE (it actually checked that it was not). This led to an obvious race condition, and was fixed by calling get_state on the pipeline, then checking that in this specific case (expect_link == FALSE), the state change has actually failed. The second, rarer race condition is at set_state time. When we don't expect the link to succeed, the return of set_state may either be FAILURE or ASYNC, depending on timing. This was fixed by taking expect_link into account when checking the return value of set_state. Co-authored by: Thibault Saunier <tsaunier@igalia.com> |
||
---|---|---|
.. | ||
benchmarks | ||
check | ||
examples | ||
misc | ||
meson.build | ||
README |
This directory contains regression tests, functionality tests, examples, benchmarks, ... benchmarks/ benchmarks to profile pieces of GStreamer check/ unit tests using the check library, non-interactive examples/ small examples demonstrating the use of various features misc/ prototypes, random bits, ...