Commit graph

1272 commits

Author SHA1 Message Date
Thibault Saunier
8e5b495c62 validate: Create a gst-validate-types.h header where we define types
And include it from validate.h.

This way we avoid to need to typedef GstValidateAction twice, which is
a C11 feature
2015-02-16 19:52:12 +01:00
Edward Hervey
a1da4cd733 validate-report: Fix valist usage
a va_list always 'exists' (it's a struct). It therefore can't be NULL
(and can't be tested)

Just use the regular print variant where appropriate.
2015-02-16 19:24:23 +01:00
Thibault Saunier
3d83370770 validate:scenario: Document locking 2015-02-16 17:18:37 +01:00
Thibault Saunier
89e2855964 validate:scenario: Make get_position happen on idle
Summary:
- Add a way to force action to be executed in their own GSource dispatch, disabling chain action execution

API:
  GstValidateScenario::execute-on-idle property
2015-02-16 17:18:32 +01:00
Thibault Saunier
51593df323 validate:scenario: Add a method to retrieve all remaining actions
Not only the next one as it was not making much sense!

API:
  - gst_validate_scenario_get_next_action
  + gst_validate_scenario_get_actions
2015-02-16 17:18:31 +01:00
Thibault Saunier
16f97e3df6 validate:utils: Fix some annotations 2015-02-16 17:18:31 +01:00
Thibault Saunier
a69af22ca9 validate:scenario: Allow link up of action executions for overriden types
Exposing a GstValidateActionType.overriden_type field
And properly expose gst_validate_execute_action
2015-02-16 17:18:31 +01:00
Thibault Saunier
19f9172586 validate:reporter: Always print reports in the Gst debug system 2015-02-16 17:18:31 +01:00
Thibault Saunier
6181f7763d validate: Misc fixes 2015-02-16 17:18:21 +01:00
Thibault Saunier
f4c6ed368e validate: Properly annotate gst_validate_register_action_type*
It does not return any reference to the type
2015-02-14 16:32:12 +01:00
Thibault Saunier
135cb2d2e4 Revert "validate:scenario: Add a way to specify action structure size"
This reverts commit b976319ef7f977b8ce910c4b8aa1a843da3b264f.

Now that the exact same structure can be used to represent different
action types, we can not rely on the structure size to stuff
informations into the action.  Users should just make use of
GstMiniObject.qdata.
2015-02-14 16:32:12 +01:00
Thibault Saunier
a5dab4b378 validate:scenario: We do not own any ref in GstValidateExecuteAction
And gst_validate_action_set_done might very well unref the last
reference to the action
2015-02-14 16:32:12 +01:00
Thibault Saunier
45f3f3d772 validate: Make sure that the latest action type registration is kept
Avoiding to change the behaviour!
2015-02-14 16:32:12 +01:00
Thibault Saunier
e80a7df4d3 validate:scenario: Handle scenario repeat property with sub actions
And port change_state_intensive.scenario to it
2015-02-14 16:32:12 +01:00
Thibault Saunier
a5a0722d20 validate:scenario: Add the notion of sub actions
Sub action will allow user to executed action *right* after the
previous action has been completed, meaning in the end that both
action can be considered as one single action.

+ Factor out a function to fill an GstValidateAction structure from a
  GstStructure
+ Factor out a function to set action playback time
2015-02-14 16:32:12 +01:00
Thibault Saunier
759b087c8c validate: Document some env variable usage 2015-02-14 16:32:12 +01:00
Thibault Saunier
441513e689 validate: Add an API to cleanly register action type from plugins
API:
    gst_validate_register_action_type_dynamic

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
1194b313af validate: Rename libfaultinjector to libgstvalidatefaultinjector
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
dae4051ed6 validate: Use plugin name as implementer_namespace when registering action type
And document it as a good practice as it will allow us to map plugins
and action types

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
cdc6565605 validate: Move the fault_injection plugin to gst/plugins/
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
5c90a06645 validate: Use an actual GstRegistry to track our plugins
Keeping everything internal for now

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
ed43ab1509 validate: Implement fault_injection as a Gs(tValidate)Plugin
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:11 +01:00
Thibault Saunier
a9b27057bb validate:scenario: Add a way to specify action structure size
And return the register GstValidateActionType on registration

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
fbfcf16b20 scenario: Do not concider we are seek_in_paused if executing a new action
The new action might change the position on purpose and we should not
fail in that case.

Also at that point we know the test of position after the seek has
been executed

+ Minor cosmetic fixes

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
be20eb015c validate:launcher:baseclasses: Avoid raising axception when all getting scenarios
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
00b222f38f launcher: Use gst-integration-testsuites FDO git repo
And make sure that people that were using the old repo get the origin
repo properly updated.

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
a85ace1783 validate: launcher: Allow discovering scenario from full path
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
9f5310b1d8 validate: scenario: Add a method to get the following action to be executed
API:
  + gst_validate_scenario_get_next_action

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
8125c46122 validate: Add helper functions ti print actions
API:
  + gst_validate_scenario_get_next_action
  + gst_validate_reporter_report_simple

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:10 +01:00
Thibault Saunier
16d52a445b validate: Minor documentation fixes
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
6350bf417e validate: Set seek_with_stop as needing at least 2secs media files
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
11f923fa52 validate: Fix the check of action that can be *not* executed
The check was wrong and we ended up allowing seek actions to no be
executed.

API:
    GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
5069e0347c validate:scenario; Advertise action types that will be executed on addition
Adding a flag to the action type

And make that code thread safe.

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
c74f33bd17 validate:scenario: Add a Flag fore ActionType that need clocks sync
And cleanly use it to set the need-clock-sync field in
the scenario properties

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
ef0f78f600 validate: Add the notion of INTERLACED actions
An interlaced action is an action that will be executed ASYNC but
without that will not block following actions during its execution.
The action should be set to done later on at any point during the
execution of the scenario.

API:
  + GST_VALIDATE_EXECUTE_ACTION_INTERLACED
  + GST_VALIDATE_ACTION_TYPE_INTERLACED

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
e7cc086f95 validate: Add a way to retrieve register actoin type from outside
API:
  * GstValidateActionType
  * gst_validate_get_action_type

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:09 +01:00
Thibault Saunier
eac25a3ad6 validate:launcher: Implement a FakeMediaDescriptor
This allows us to more cleanly implement Simple pipeline test
generation

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:08 +01:00
Thibault Saunier
71d53bb2d3 validate:scenario: Make action->scenario public API
It can be usefull for action type implementers

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:08 +01:00
Thibault Saunier
8848657ce3 validate:scenario: Add a disable-plugin action type
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:08 +01:00
Thibault Saunier
5f888fb5b6 validate: Properly advertise the wait action as ASYNC
And add some printing when executing the set-property action

https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:32:08 +01:00
Thibault Saunier
da31e3914f validate: Enhance support for simple pipeline test generation
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
2015-02-14 16:32:08 +01:00
Thibault Saunier
bee292f548 validate: Wait for switch-track to complete before executing next action
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
2015-02-14 16:32:08 +01:00
Thibault Saunier
d7b5d57305 validate:scenario: Avoid waiting for 50ms between actions
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
2015-02-14 16:32:07 +01:00
Thibault Saunier
508678cfe1 scenario: Add a signal to notify user when the scenario is DONE executing
https://bugzilla.gnome.org/show_bug.cgi?id=743994
2015-02-14 16:31:57 +01:00
Ramiro Polla
d833a51134 validate: launcher: Print test name in Result
https://bugzilla.gnome.org/show_bug.cgi?id=743063
2015-02-05 15:18:39 +01:00
Ramiro Polla
c0cefecd23 validate: launcher: Add option to run tests in parallel
Patch 4/4 to implement parallel test execution.

https://bugzilla.gnome.org/show_bug.cgi?id=743063
2015-02-05 15:18:39 +01:00
Ramiro Polla
1f981762c2 validate: launcher: Print test number on result
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
2015-02-05 15:18:39 +01:00
Ramiro Polla
a9a366427e validate: launcher: Use jobs list to take track of tests running
Currently the tests are still run serially.

Patch 2/4 to implement parallel test execution.

https://bugzilla.gnome.org/show_bug.cgi?id=743063
2015-02-05 15:18:38 +01:00
Ramiro Polla
d9097f8bf7 validate: launcher: Use test index instead of counting test numbers
Patch 1/4 to implement parallel test execution.

https://bugzilla.gnome.org/show_bug.cgi?id=743063
2015-02-05 15:18:38 +01:00
Ramiro Polla
9c46f5f889 validate: launcher: Support simultaneous requests in RangeHTTPServer
https://bugzilla.gnome.org/show_bug.cgi?id=743063
2015-02-05 15:18:38 +01:00