The GstValidatePipelineGenerator was quite limited in term
of configuration for user who just want to specify pipelines
to run with/without scenario.
Enhance the API so that we can properly configure that.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
This action type can take some time, we need to make sure that the
combiner/input-selector element properly pushed a buffer marked
as DISCONT to concider the action is done.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
We should be able to execute the next action as soon as the previous
one is fully completed, make sure the code tries to do that and does
not artificially add some waiting time.
And make sure if the gst_validate_action_set_done is called from outside
our execution thread, we do not try to execute anything
https://bugzilla.gnome.org/show_bug.cgi?id=743994
With parallel test execution, it will be hard to track which result
relates to which test. Therefore, the test number should be printed
along with the results as well.
Patch 3/4 to implement parallel test execution.
https://bugzilla.gnome.org/show_bug.cgi?id=743063
TestManager will use a Queue to track progress for all tests. This
commit implements a queue inside Test to simplify the transition.
Patch 3/4 to make TestManager handle waiting for processes instead of
expecting each Test to do it.
https://bugzilla.gnome.org/show_bug.cgi?id=743063
wait_process will be moved to TestManager, so the values used to track
process update must remain inside Test.
Patch 2/4 to make TestManager handle waiting for processes instead of
expecting each Test to do it.
This makes each Test handle its own logfile, allowing the Reporter to
work on multiple tests at the same time.
Patch 5/5 to move logfile handling out of Reporter and into Test.
Instead of saving the current Test in Reporter for every test, use
function parameters to achieve the same goal.
Patch 2/5 to move logfile handling out of Reporter and into Test.
+ And implement a corrupt-socket-recv action
+ Only compile this on Linux, LD_PRELOAD won't work on Windows.
For now the registering of the action is done through
a call to socket_interposer_init, this will get better
when we refactor the action logic.
https://bugzilla.gnome.org/show_bug.cgi?id=743871
Allow log file redirection through the new --redirect-logs parameter.
Keep the old --logs-dir stdout/stderr parameter, but reset to the
default logs directory in that case, and set redirect_logs internally.
This also prevents the creation of an stdout/stderr directory for
writing xunit.xml.
https://bugzilla.gnome.org/show_bug.cgi?id=742973
As caps events are downstream, caps set travels from sinks to
sources. Adding pending setcaps values to sink pads makes no sense
as when a new caps is set on the sink it would compare with values
currently set on the source pad, causing a critical failure when
renegotiation happens.
With the testsuite format you will get a setup_tests(tests_manager,
options) function called for each TestManager.
The function will have the exact same role as with old config
file but with a clean API and not magic global variables.
This implies that we need default blacklist to be directly set
on the TestManager and not on options.blacklisted_test
The default testsuite implementation should belong to the default
asset repo where we have the corresponding knowledge.
We should style manage a sensible list of known blacklisted tests,
encoding profiles, and generators in GstValidate itself and allow testsuite
actual implementations to easily use them though the register_default_*
methods.
This allow us to be able to remove the ugly execfile() call.
If the user did not specify any playback time we should be able to
execute actions even if the pipeline can't answer the position query
+ Make simpler to read the conditions of an action execution
The ->execute function now return a GstValidateExecuteActionReturn
which can be set as ASYNC in order to tell the scenario that the action
will be executed asynchronously, when the action is done, the caller is
responsible for calling gst_validate_action_set_done(); so that the
scenario keeps going on.
In this commit we make sure that the old API keeps working as
GST_VALIDATE_EXECUTE_ACTION_ERROR == FALSE and
GST_VALIDATE_EXECUTE_ACTION_OK == TRUE
Morevover GstValidateExecuteActionReturn is just a define
API:
+ gst_validate_action_set_done
+ GstValidateExecuteActionReturn
https://bugzilla.gnome.org/show_bug.cgi?id=739854
We had quite a bit of code dedicated to handled GstPipeline monitoring
inside GstValidateBinMonitor, cleanly split that code into a new object
type
https://bugzilla.gnome.org/show_bug.cgi?id=740704
Depending on the type of event where the bug occurs,
it is not the same issue type. That allows us to have
much precise reports, and better explain the user
where the issue stands.
By default an action has no playback-time, this makes it actionable
immediatly.
When no playback-time is set on a set-property action, it will
be activated the moment the element is added in the pipeline.
gst-validate-reporter.c:119:39: error: implicit conversion from enumeration type
'GstValidateReportingDetails' to different enumeration type
'GstValidateInterceptionReturn' [-Werror,-Wenum-conversion]
GstValidateInterceptionReturn ret = GST_VALIDATE_SHOW_UNKNOWN;
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
gst-validate-reporter.c:124:11: error: implicit conversion from enumeration type
'GstValidateReportingDetails' to different enumeration type
'GstValidateInterceptionReturn' [-Werror,-Wenum-conversion]
ret = iface->get_reporting_level (reporter);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gst-validate-reporter.c:127:10: error: implicit conversion from enumeration type
'GstValidateInterceptionReturn' to different enumeration type
'GstValidateReportingDetails' [-Werror,-Wenum-conversion]
return ret;
~~~~~~ ^~~
In the pipeline, an EOS should always have the same seqnum of the
previous SEGMENT event that was received. If the segment is the result
of a seek, it should always be the same as the seek seqnum too.
+ (Mathieu Duponchelle): fix reporting and concatenation tests.