Commit graph

1068 commits

Author SHA1 Message Date
Thibault Saunier
e40d225614 validate:launcher Do not use git -C as it is relatively recent
https://bugzilla.gnome.org/show_bug.cgi?id=736160
2015-03-02 16:18:30 +01:00
Thibault Saunier
ec27b86fa9 validate: Build the preload so when possible 2015-02-26 11:09:23 +01:00
Thibault Saunier
4c13ec7121 validate:launcher: Print the long help in less when possible 2015-02-24 20:39:22 +01:00
Thibault Saunier
6309f8168a validate:launcher: Mention testsuite implementation in the help 2015-02-24 20:34:43 +01:00
Thibault Saunier
72dedae65d validate: Define GST_PLUGIN_LDFLAGS as needed 2015-02-23 12:24:39 +01:00
Young Han Lee
2d6c667c9a validate: Determine development mode using git hash value
Development mode has been determined by whether the launcher is in git
repo
or not. This could be wrong when the launcher is installed to
subdirectory of other project's git repo, such as jhbuild. It is normal
to install compiled output to subdirectory of your jhbuild.

Changed logic gets the first commit hash of current git repo and
compares it with gst-devtools' the first commit hash.

https://bugzilla.gnome.org/show_bug.cgi?id=744781
2015-02-19 13:57:30 +01:00
Thibault Saunier
c5393f79f3 validate:launcher: Fix typo s/FILE_EXTENDION/FILE_EXTENSION/g 2015-02-19 13:57:30 +01:00
Thibault Saunier
f3adc999f1 validate:scenario: Fix GstValidateAction ABI adding a private structure
This way we can easily extend the structure and avoid needing using
a union and such
2015-02-19 13:57:30 +01:00
Mathieu Duponchelle
ac1c1aec7c validate: Test buffer outside of received range.
Summary: As part of the preparation for a port to tracer.

Test Plan: This is a test, we won't test tests

Reviewers: tsaunier

Differential Revision: http://internal.opencreed.com:8888/D19
2015-02-19 12:19:46 +01:00
Thibault Saunier
3b6f187d85 validate: Properly notify user about missing plugins
This way it is clear in gst-validate-launcher that the failure is due
to a missing plugin
2015-02-18 10:07:17 +01:00
Thibault Saunier
f0511cc3a2 validate: Fix wrong sizeof usage
sizeof(int) is always <= sizeof(gpointer)
2015-02-17 18:22:12 +01:00
Ramiro Polla
2d5ad1ac62 validate: launcher: Use cElementTree for XML parsing
Using cElementTree instead of ElementTree speeds up parsing of media
descriptor files.

The total time spent parsing XML files drops from ~0.64 s to ~0.24 s,
leading to faster initialisation times for gst-validate-launcher.

https://bugzilla.gnome.org/show_bug.cgi?id=743293
2015-02-17 17:27:40 +01:00
Thibault Saunier
08afce235c validate: Print actions directly from the scenario
Avoiding user to have to print them in each and every action type
implementation.

This requires adding some API to prepare actions before printing them.
Preparing action in that case mean parsing the values contained in the
GstStructure parsing equations and setting back the actual value
afterward

API:
  * GstValidatePrepateAction
  * gst_validate_action_type_set_prepare_function
2015-02-17 17:11:51 +01:00
Thibault Saunier
8b6c521bb1 validate: Fix build on windows
Check where libgstvalidate.dll is installed and use that base folder to
figure out where GstValidate plugins are installed
2015-02-17 09:23:27 +01:00
Thibault Saunier
62a0db232c validate: Do not forget to dist _full variant of scrubing scenarios 2015-02-16 20:56:49 +01:00
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
Ramiro Polla
ef246a497c validate: launcher: Make TestManager handle waiting for processes
Patch 4/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
2015-02-05 15:18:38 +01:00
Ramiro Polla
0026c2804f validate: launcher: Use a Queue to test for test completion
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
2015-02-05 15:18:38 +01:00
Ramiro Polla
bd4c221141 validate: launcher: Initialize Test start time outside of wait_process
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.
2015-02-05 15:18:38 +01:00
Ramiro Polla
498f7002f3 validate: launcher: Split process_update() out of wait_process()
Patch 1/4 to make TestManager handle waiting for processes instead of
expecting each Test to do it.
2015-02-05 15:18:37 +01:00
Ramiro Polla
d12f55daf4 validate: launcher: Move logfile handling out of Reporter and into Test
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.
2015-02-05 15:18:37 +01:00
Ramiro Polla
500206d3ad validate: launcher: Remove redundant check
self.out is always available when _get_captured() is called.

Patch 4/5 to move logfile handling out of Reporter and into Test.
2015-02-05 15:18:37 +01:00
Ramiro Polla
177eee728f validate: launcher: Split test log file handling in Reporter
Patch 3/5 to move logfile handling out of Reporter and into Test.
2015-02-05 15:18:37 +01:00
Ramiro Polla
b9357e3b17 validate: launcher: Separate Reporter from current 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.
2015-02-05 15:18:37 +01:00
Ramiro Polla
39a4092434 validate: launcher: Initialize reporter timer before starting all tests
Patch 1/5 to move logfile handling out of Reporter and into Test.
2015-02-05 15:18:37 +01:00
Ramiro Polla
bdedd7abb9 validate: launcher: Don't wait for processes longer than necessary 2015-02-05 15:18:36 +01:00
Mathieu Duponchelle
db695185c9 socket interposer: Be even more platform restrictive. 2015-02-03 16:48:49 +01:00
Mathieu Duponchelle
e5976cad43 validate: do not compile for android. 2015-02-03 15:51:34 +01:00
Mathieu Duponchelle
4ce91b98f0 validate: Implement a fault injection library.
+ 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
2015-02-03 15:30:54 +01:00
Mathieu Duponchelle
89048ad862 validate: tests more issues with caps.
https://bugzilla.gnome.org/show_bug.cgi?id=743387
2015-01-26 18:08:47 +01:00
Mathieu Duponchelle
bf2c949aee validate: Add a test case for caps missing field.
+ Make the fake decoder have video/x-raw caps.

https://bugzilla.gnome.org/show_bug.cgi?id=743387
2015-01-26 18:08:47 +01:00
Mathieu Duponchelle
887349167b validate: prepare tests for port to tracers backend.
https://bugzilla.gnome.org/show_bug.cgi?id=743387
2015-01-26 18:08:47 +01:00
Mathieu Duponchelle
165e35b3f0 bin-monitor: add itself as gobject data. 2015-01-22 22:07:37 +01:00
Ramiro Polla
b29f378296 validate: launcher: Fix test log header output
Write log file header before running tests, instead of overwriting the
file afterwards.

https://bugzilla.gnome.org/show_bug.cgi?id=742966
2015-01-16 16:24:16 +01:00
Ramiro Polla
9c3606a867 validate: launcher: Always create log files
Create log files even when stdout redirection is enabled.
This commit partially reverts 20c28de.

https://bugzilla.gnome.org/show_bug.cgi?id=742973
2015-01-16 16:24:13 +01:00
Ramiro Polla
4e0388c631 validate: launcher: Introduce new parameter for log file redirecting
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
2015-01-16 16:24:13 +01:00
Thiago Santos
10fe72aa52 pad-monitor: plug caps leak on iterator resync 2015-01-09 14:04:16 -03:00
Thiago Santos
389f6d96b4 pad-monitor: use the same filter caps when querying downstream caps
To avoid comparing the real result that has been filtered against
a much larger caps that contains all possibilities.
2015-01-09 14:04:13 -03:00
Thibault Saunier
0c48665458 validate: tests: disable g_log handler
It messes up our own failures counter

And pass test-utils into gst-indent
2014-12-09 10:11:02 +01:00
Thiago Santos
6df63915c2 tests: padmonitor: disable glog handling
It messes up our own failures counter
2014-12-08 18:53:55 -03:00
Thiago Santos
7b4df44f61 pad-monitor: get correct caps to check for proxied fields in caps queries
Elements should proxy the peer element's caps fields and not what they
have currently set on their pads when replying to a caps query
2014-12-08 17:28:47 -03:00
Thiago Santos
af2707d3a3 pad-monitor: Only add pending caps fields for source pads
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.
2014-12-08 17:28:47 -03:00
Thibault Saunier
1e39db18ad validate: launcher: Take the timeout as ref timeout to compute hard_timeout
when it is provided.
2014-12-08 18:38:46 +01:00
Thibault Saunier
5beaf5dfa8 validate: launcher: Set a hard timeout on GstValidate tests if we know the duration 2014-12-08 16:34:48 +01:00
Thibault Saunier
a2abf628dc validate: launcher: Force kill subprocess when done with them
Making sure that we do not end up having spurious subprocess around
2014-12-08 16:19:20 +01:00
Thiago Santos
d25fb034fa launcher: baseclass: add missing parameter
Fixes "NameError: global name 'options' is not defined"
2014-12-08 08:43:57 -03:00
Thibault Saunier
8450dff17d validate: launcher: Properly handle non default main dir
for the case of the new testsuite files
2014-12-08 10:10:04 +01:00
Thibault Saunier
5bfd579bf4 validate: launcher: Make the gstvalidate application a python module 2014-12-07 18:32:37 +01:00
Thibault Saunier
ce02887627 validate: Remove remaining reference to launcher/apps/validate
It has been removed now.
2014-12-06 10:53:37 +01:00
Thibault Saunier
1bc32a888f validate: Avoid assert removing an already removed signal handler
And, make sure that we set the return value != 0 when we receive
SIGINT
2014-12-05 20:51:44 +01:00
Thibault Saunier
272032c0b0 validate: Handle setting the HTTP server local path from testsuites 2014-12-05 20:51:44 +01:00
Thibault Saunier
22fba81138 validate: Rename gst-qa-assets to gst-integration-testsuites 2014-12-05 20:51:43 +01:00
Thibault Saunier
130a2892b1 validate: print execution of set_subtitles actions 2014-12-05 19:23:43 +01:00
Thibault Saunier
3dff417fdf validate: Factor out an LauncherConfig class type to handle configurations
Allowing us to more simply define default value and expose an API on
top of it
2014-12-05 19:23:43 +01:00
Thibault Saunier
515c8405f0 validate: Remove file specific blacklisted tests 2014-12-05 16:16:53 +01:00
Thibault Saunier
988e9a370e validate: Let the user know when new tests are added, or tests are REMOVED 2014-12-05 16:16:53 +01:00
Thibault Saunier
d38307a073 validate: Add a cleaner API to setup tests in testsuite files
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
2014-12-05 16:16:53 +01:00
Thibault Saunier
b852fbcbfb validate: Add a way to sync all assets, including big ones 2014-12-05 12:17:40 +01:00
Thibault Saunier
71566688bf validate: Remove the default testsuite implementation
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.
2014-12-05 12:17:40 +01:00
Thibault Saunier
36aed39259 validate: Make sure to at least listen to GStreamer and GLib g_logs
If somewhere else someone is overriding the g_log default handler,
we would not get notified of anything.
2014-12-05 12:16:55 +01:00
Thibault Saunier
ccbcc04498 validate: Disable coloration of GST_DEBUG logs when we have no-color
Do that only when those logs are not saved to a file
2014-12-05 12:16:54 +01:00
Thibault Saunier
582f1cfc06 validate: Factor out a function to print action types parametters
+ Remove playback-type from the list and just print it
2014-12-05 12:16:54 +01:00
Thiago Santos
db67a92b3f pad-monitor: do not enforce caps querying rules for converters
Some encoders/decoders can also be converters, do not enforce
caps proxying rules for them
2014-11-28 17:21:23 -03:00
Vineeth T M
163d286f5b validate: fix typo in documentation
There are some typing mistakes in gst-validate-launcher --help
Hence fixing the same.

https://bugzilla.gnome.org/show_bug.cgi?id=740833
2014-11-28 11:16:09 +01:00
Thibault Saunier
b5219eaceb validate: Handle unlimited tests duration
Running full length scenario when the user asks
2014-11-25 19:41:01 +01:00
Thibault Saunier
c952886813 validate: Already having a monitor is no error 2014-11-25 19:41:01 +01:00
Thibault Saunier
1753afbe8d validate: pre commit hook: Do not try to run pep8 on non python files! 2014-11-25 19:41:01 +01:00
Thibault Saunier
62bf27f5e3 validate: Add scub_*_seeking_full scenarios
Which basically do the same thing as scrub_*_seeking but during
throughout the whole duration of the media
2014-11-25 19:41:00 +01:00
Thibault Saunier
b56ebc8a43 validate: Enhance documentation 2014-11-25 19:41:00 +01:00
Thibault Saunier
65eb14de36 validate: Add an option to update all .media_info files 2014-11-25 19:41:00 +01:00
Thibault Saunier
11c49a7db8 validate:scenario: Execute actions without playback time without a valid position
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
2014-11-25 19:41:00 +01:00
Thibault Saunier
cdfa1ee61b validate:scenario: Properly handle ASYNC action execution in the API
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
2014-11-25 19:41:00 +01:00
Thibault Saunier
4cbcb97258 validate: Add a GstValidateActionTypeFlag flag
Allowing us to define action types more in detail.
Keep backward compatibility, at least with the C API

https://bugzilla.gnome.org/show_bug.cgi?id=739854
2014-11-25 19:29:13 +01:00
Thibault Saunier
fcb0f20828 validate: Add a GstValidatePipelineMonitor subclass
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
2014-11-25 19:29:13 +01:00
Thibault Saunier
36a2d61068 validate:launcher: Force clock sync for some protocols
In HLS for example, not having clock sync might lead to races and failures
do not test that for now
2014-11-20 12:09:29 +01:00
Thibault Saunier
057a864223 validate: Don't fail getting master report from a ghostpad without target 2014-11-20 12:09:26 +01:00
Thibault Saunier
6300fb9602 validate: Print current position even if we do not know the rate
That could cause gst-validate-launcher to wrongly concider tests
as timeout
2014-11-19 20:05:57 +01:00
Thibault Saunier
2be3c04b9b validate:scenario: Force clock sink for scenarios with a pause action 2014-11-19 17:59:26 +01:00
Thibault Saunier
a15b2544ce validate: Handle wrong paths when listing avalaible apps
User can make mistake or we can have an empty path.
2014-11-19 17:59:26 +01:00
Thibault Saunier
7f8c0c2751 validate: Do not check if first buffer running time is 0
It can perfectly not be 0, so it makes no sense to check that.

https://bugzilla.gnome.org/show_bug.cgi?id=739965
2014-11-19 17:59:26 +01:00
Thibault Saunier
5d8f6083b4 validate: Add audiomixer test to the default testsuite 2014-11-16 18:27:32 +01:00
Thibault Saunier
9255a8f876 pad-monitor: Give better details about segment mismatch issues 2014-11-16 18:27:32 +01:00
Thibault Saunier
4a2b9d6431 validate: Be more precise in issue type for wrong seqnum
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.
2014-11-16 18:27:32 +01:00
Thibault Saunier
c77089cc62 validate: Fix a few annotation issues 2014-11-16 18:27:32 +01:00
Thibault Saunier
8c6803c467 validate: Add the notion of WAIT_MULTIPLIER for the wait action
Allowing the user to decide to wait more, or less, or even not wait
for the wait action to execute when running scenarios.
2014-11-16 18:27:32 +01:00
Thibault Saunier
1c2c0e63c2 validate:scenario: Report an EXECUTION_ERROR on action execution failure
If the action type handles a better error report type, it should just
return TRUE, and report its issue itself.
2014-11-04 17:33:09 +01:00
Thibault Saunier
e2d8096cb7 validate: Do not exit when we can not discover a result file
Loggable.error actually exit the process, it is not what we want!

+ Avoid a backtrace
2014-11-04 17:33:08 +01:00
Edward Hervey
4814110a86 scenario: Allow set-property action to work much earlier
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.
2014-11-04 17:12:00 +01:00
Edward Hervey
6a86f7c1c9 validate-bin-monitor: Initialize local variable
Avoids segfaults when freeing them if they didn't get filled in
2014-10-31 16:01:52 +01:00
Mathieu Duponchelle
85587a9aa5 validate: update pre-commit hook.
+ Allows to run multiple pre-commit hooks.
+ Always relink the hooks on autogen.
+ Run pep8 on commited python files.

https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
7bbd3ed288 apps: gstvalidate.py: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
9bdc6e9b6d validate-launcher: utils: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
b30d27e35e validate-launcher: main: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
95065edebd validate-launcher: loggable: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
a0a88e1708 validate-launcher: baseclasses: fix various pyflakes / uncaught pep8 issues.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
8c1e84b5f4 validate-launcher: pep8ify sources.
https://bugzilla.gnome.org/show_bug.cgi?id=739208
2014-10-30 15:40:17 +01:00
Mathieu Duponchelle
fa39e0358a validate-utils: downgrade ERROR to DEBUG.
This function is called in places where it is legit for it
to return NULL.
2014-10-30 15:39:01 +01:00
Mathieu Duponchelle
4d569b51ed launcher: add a way to specify an application directory.
https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Mathieu Duponchelle
74ed40c904 launcher: Don't implement product-specific TestManagers.
This manager will be moved in GES.

https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Mathieu Duponchelle
b0beefacfa validate-launcher: restructure filesystem
https://bugzilla.gnome.org/show_bug.cgi?id=739091
2014-10-30 15:31:29 +01:00
Ramprakash Jelari
eb47b1021f validate: Fix compiler warning about implicit enum type conversion
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;
  ~~~~~~ ^~~
2014-10-24 15:19:19 +02:00
Mathieu Duponchelle
6cf2d92b0f build: We install all headers system wide for now.
Will be fixed when the API is deemed stable enough
2014-10-22 14:16:45 +02:00
Mathieu Duponchelle
30aef5ba84 validate: rename GstValidateReportingLevel.
Removes the confusion with GstValidateReportLevel.

Modeled on GstDebugGraphDetails.
2014-10-21 23:41:04 +02:00
Thibault Saunier
6d0930bb36 validate: Verify that elements always send a segment before pushing EOS
EOS is some kind of data flow and thus a segment event should always be
pushed before the EOS is sent
2014-10-21 20:40:27 +02:00
Thibault Saunier
23d7df3788 validate: Properly check that the seqnum of the EOS is always properly set
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.
2014-10-21 20:37:23 +02:00
Thibault Saunier
34a9c36edc validate: Add support for text based override files
Allowing user to easily determine the severity of issue
types in a config file

https://bugzilla.gnome.org/show_bug.cgi?id=737852
2014-10-21 20:23:32 +02:00
Thibault Saunier
b0d39c1c45 validate: Remove unused method
gst_media_descriptor_add_frame is not used anywhere

https://bugzilla.gnome.org/show_bug.cgi?id=737852
2014-10-21 20:21:58 +02:00
Thibault Saunier
a3513fc952 validate: Move GstStructure file parsing into utils
So it can be reused, at least in GstValidate.
2014-10-21 20:21:52 +02:00
Thibault Saunier
8ec61ddac2 validate: report: Simplify the issue ID registering using GQuarks
+ Remove unused issue types

https://bugzilla.gnome.org/show_bug.cgi?id=737790
2014-10-21 20:21:42 +02:00
Thibault Saunier
bb93dbb9fb validate: Check all buffers when we have the info from MediaDescriptor
We now check that each buffer is the expected one for each buffer that
come into the decoder.

+ Fix some minor leaks in test-utils

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:21:36 +02:00
Thibault Saunier
cd9a3640b2 validate:media-descriptor-parser: Add a way to create from a string
So it is simple to make use of it from the testsuite

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
f793d06783 report: g_critical are CRITICAL issues!
https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
94efe0df85 validate: launcher: Fix printing of errors in final report
https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
20633cec19 validate: Add the possibility to generate media infos with frame descs
+ Fix a little issue when the generation fails.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
b3fa06c3c1 validate: MediaDescriptors: Add md5sum to buffer informations
In the media descriptor files, we now have the md5sum of the actual
content of encoded buffers so that we can check that the buffer content is
perfectly what is was supposed to be.

+ Fix the check of whether a frame is a keyframe in the string
  comparison (g_ascii_strcasecmp  return 0 if string matches)

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
50273c42a9 validate: Move some method between GstMediaDescriptorParser and GstMediaDescriptor
So that method land where they actually belong.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
c5dfd9c8c8 validate: Add a way to pass a MediaDescriptor around monitors
And add an option in gst-validate so that the user can define what
media descriptor file to use.

https://bugzilla.gnome.org/show_bug.cgi?id=736138
2014-10-21 20:14:05 +02:00
Thibault Saunier
c8a99218de validate:media-descriptor: Handle stream with no tags
It was segfaulting before.
2014-10-21 20:14:05 +02:00
Thibault Saunier
8fb3e6112c validate: Add more files to gitignore 2014-10-21 20:14:05 +02:00
Thibault Saunier
8f5347c465 validate: Move some method between GstMediaDescriptorParser and GstMediaDescriptor
So that method land where they actually belong.
2014-10-21 20:14:05 +02:00
Mathieu Duponchelle
c542d9c6bc validate-report / reporter: rework the way we repeat issues.
+ runner: update reports count algorithm.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
5690a02e0a pad-monitor: mark the peer pad as EOS too.
When a sink pad gets EOS, its src pad monitor should also
be marked as EOS (helpful with issue concatenation).
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
0b1d00df25 validate-pad-monitor / runner: Check per-object reporting levels. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
167c29125d validate-report: Set conditions in which a report can't be master. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
582cebeae6 validate-report: Add a reporting level field and setter. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
030e7e8ba8 validate-runner: implement synthetic report.
+ Fix criticals logic in validate_runner_printf
+ Update padmonitor tests
+ Split validate_report_printf function.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1993229993 validate-runner: Implement REPORT_NONE for global reporting.
Yeah that was tough. Helpful already though, for example:
GST_VALIDATE_REPORT_LEVEL=none,x:all gst-validate src name=x ! sink
will only report issues reported by the source.

+ Add test.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
0a1cdb2164 tests: Check monitors correctly determine their reporting level.
+ [API] gst_validate_reporter_get_reporting_level
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
5cb60060dc validate-runner / monitor: Let the user single out pads.
That's some pretty specific code but it should be helpful.
The following syntax can be used : element-name::pad-name.

+ Free return of gst_object_get_name.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
b21bb1ff34 validate-runner / reporter: Sanitize reports refcounting.
The previous code worked but was confusing, the runner didn't actually
take the ref it was releasing later.

+ Fix indentation.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
de554ba417 tests: Test reports refcounts.
+ Set the element monitor on the element as qdata.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
c943a75766 validate-monitor: Determine the reporting level at setup. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1d7f15598f validate-runner: Add code to parse GST_VALIDATE_REPORT_LEVEL.
+ Extend the tests.
+ [API] gst_validate_runner_get_default_reporting_level
+ [API] gst_validate_runner_get_reporting_level_for_name
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6ed125bfb1 validate-runner: report-level initial work.
+ Defines reporting levels and document them.
+ Add API to get the default level.
+ fix indentation.
+ fix some typos.
+ Add the beginning of a reporting test.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6e08079f8b validate-pad-monitor: concatenate issues.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=735665

The process is to check for a similar report in intercept_report on
the pads of the upstream element, set that report as the master report
of the intercepted report, and return REPORTER_KEEP instead
of REPORTER_REPORT.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
d747e1cd05 test-utils: add a create_and_monitor element function. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
f001777cc6 validate-reporter: Add some methods
+ gst_validate_reporter_get_reports
+ gst_validate_reporter_get_reports_count
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
222a517384 validate-report: Add the notion of master / shadow reports.
A master report is a report that has been detected by a monitor
to stem from the same issue. It thus contains a list of
"shadow reports" which it will browse when printing itself.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
b8ac717297 validate-report: Make the ref / unref functions safer. 2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
1fcaf8918f tests/padmonitor: Correcly strdup the result of get_metadata.
The const pointer was becoming invalid after the first call to add_metadata,
and we ended up setting corrupted data on the second call.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
3e557ca92b validate-reporter: Add return value to intercept_report.
It will allow to drop, keep or report reports.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
6104701268 validate-pad-monitor: Reimplement reporter interface.
+ Do nothing there for now, except chain up.
2014-10-21 20:13:51 +02:00
Mathieu Duponchelle
fb90aa2ead validate-reporter: add gst_validate_reporter_get_report.
+ Add locking.
2014-10-21 20:13:51 +02:00
Thibault Saunier
1cc89414f1 Back to development 2014-10-20 13:38:20 +02:00
Thibault Saunier
ad415424a1 Release 1.4.0 2014-10-20 13:24:29 +02:00
Thibault Saunier
26ef55d622 validate: Print position if it could properly be queried
Otherwize we will print meaningless garbage.
2014-10-13 16:30:05 +02:00
Thibault Saunier
4823d998fc validate:launcher: Minor enhancement in the documentation 2014-10-13 10:32:07 +02:00
Thibault Saunier
99045f7dbb validate: Rename action type playback_time to playback-time
Keeping backward compatiblity with the old naming
2014-10-12 20:19:42 +02:00
Thibault Saunier
02ab99fcbb validate: Rename gst_validate_add_action_type to gst_validate_register_action_type
The _register naming corresponds much better to what the method does
and makes it more similar to how we refer to this kind of action in
GStreamer.

It is a last minute API change, but that API should not change anymore
after 1.4 is released.
2014-10-12 20:10:19 +02:00
Thibault Saunier
9158bb36e3 validate: Fix the addition of playback_time in the parameter types 2014-10-12 20:00:03 +02:00
Thibault Saunier
8289f64904 validate: Rename --list-action-types to --inspect-action-type
Making clearer the meaning of the parameter and closer to the
usual naming in the GStreamer land.
2014-10-12 19:46:39 +02:00
Thibault Saunier
ce87de95ea validate: Add the 'flags' for the seek action type
This was always a mandatory field but was not documented
2014-10-12 19:16:08 +02:00
Anuj Jaiswal
83c0453d81 validate: mishandled pointer criticals
Free glist of criticals

Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=736313
2014-10-09 20:38:12 -03:00
Thibault Saunier
17bf802515 validate:docs: Add documentation about the default testsuite 2014-10-01 11:02:17 +02:00
Mathieu Duponchelle
8cfffb4a3a validate-runner: switch to using a GList for the reports.
+ Return a copy of that list in get_reports.
+ update tests.
2014-09-30 11:42:42 +02:00
Mathieu Duponchelle
1f1cf83af8 validate-runner: Hide implementation. 2014-09-30 11:42:42 +02:00
Mathieu Duponchelle
855f141453 gst-validate-runner: Add locking for the reports list. 2014-09-30 11:42:42 +02:00
Thibault Saunier
e7315aa78e Release 1.3.90 2014-09-29 15:37:40 +02:00
Thibault Saunier
b856d5985c validate:launcher: Factorize code to get a MediaDescriptor name for classname
Instead of copy/pasting that code badly
2014-09-12 11:26:48 +02:00
Edward Hervey
490a8f1ed9 validate/docs: Add location of Scenario/Action defines 2014-09-12 10:22:15 +02:00
Anuj Jaiswal
c98f7e7b38 validate: (performance issue)refactor to remove duplicate assignment
Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=736412
2014-09-12 09:57:05 +02:00
Thibault Saunier
1649b49f1c validate: docs: Always dist the launcher directoty
Fixing make distcheck
2014-09-12 09:57:05 +02:00
Thibault Saunier
332a51d1f0 validate: Get the Runner reports in order of arrival
Making sure they are printed in the right order
2014-09-12 09:57:05 +02:00
Thibault Saunier
7e85c9b0b5 validate: Start a testsuite
Currently implemented tests are:
  * Settup and cleanup on monitor is done properly
  * Some tests in the PadMonitor are done properly, namely:
        - Buffer before segment
        - Buffer outside segment
        - First buffer running time is always 0
        - The Demuxer flow aggregation is properly checked

https://bugzilla.gnome.org/show_bug.cgi?id=736379
2014-09-12 09:57:05 +02:00
Edward Hervey
80de4392ce validate/private: Avoid double typdef
Instead just include required (public and local) header

gst-validate-scenario.h:43:44: error: redefinition of typedef 'GstValidateActionParameter' is a C11 feature [-Werror,-Wtypedef-redefinition]
2014-09-12 09:49:35 +02:00
Thibault Saunier
07391578c9 validate: Make sphinx documentation generation optionnal 2014-09-06 12:37:30 +02:00
Thibault Saunier
3ff59368f0 validate:launcher: Add needed files to build documentation with sphinx 2014-09-06 12:22:48 +02:00
Thibault Saunier
b843ead1f8 validate: launcher: Cleanup and rename apps to avoid '-' in their name 2014-09-06 11:38:38 +02:00
Thibault Saunier
7838f3ebae validate:launcher: Avoid '.' before media file extension in test classnames 2014-09-06 10:02:13 +02:00
Felix Schwarz
1a8b460d23 validate:docs: fix spelling mistakes
https://bugzilla.gnome.org/show_bug.cgi?id=736160
2014-09-05 23:21:21 +02:00
Thibault Saunier
3755581fd3 validate: Take a const gchar ** in gst_validate_print_action_types
This is what we actually need and thus is cleaner.
2014-09-05 23:15:29 +02:00
Thibault Saunier
69165a9f04 validate: Implement the notion of implementer namespace to the action types
This allows users to know who implements an action type.

+ Enhance the printing of all action making it readable.
2014-09-05 23:03:58 +02:00
Thibault Saunier
15f52d4fa3 validate: Add informations on the switch-track action overrided for playbin 2014-09-05 19:30:52 +02:00
Thibault Saunier
34fd5af840 validate: docs: Add some GstValidate usage documentation
+ Fix minor issues in the gst-validate and gst-validate-transcoding
tools documentation
2014-09-05 19:00:23 +02:00
Guillaume Desmottes
f7955f5249 validate: remove redundant pre-condition in monitor_factory_create
The same check is already done at the head of the function.

https://bugzilla.gnome.org/show_bug.cgi?id=736019
2014-09-05 19:00:23 +02:00
Guillaume Desmottes
f900f53e95 validate: fix a couple of typos in comments
https://bugzilla.gnome.org/show_bug.cgi?id=736019
2014-09-05 19:00:23 +02:00
Thibault Saunier
ef64eb0d0e validate:docs: Sensibly update the usage file 2014-09-05 19:00:23 +02:00
Thibault Saunier
7cfdb5372c validate: Use a GList to store action types instead of hashtable
It is more adapted and allows us to print the action types in a stable
maneer.
2014-09-05 19:00:23 +02:00
Thibault Saunier
eb6739c91b validate: report: Do not repeat type name when printing its details 2014-09-05 19:00:23 +02:00
Thibault Saunier
b4ddea0fd2 validate: Change the version to 1.0.0.1
The 1.0.0.1 means that it is targetting the GStreamer 1.X serie,
and is a git version (thus 0.1)

GstValidate will most probably not be released and we should try to
be able to use it with as many version of the GStreamer 1.X serie
as possible.
2014-09-05 19:00:23 +02:00
Thibault Saunier
e5b485d776 validate: Document the API with gtk-doc 2014-09-05 19:00:23 +02:00
Thibault Saunier
45ffbdec07 validate: Add GObject Introspection support 2014-09-05 19:00:23 +02:00
Thibault Saunier
4fd1939b21 validate: Rework the action parameter API
Making it possible to properly define parameters, and describe them.

+ Document all action types!
2014-09-05 19:00:23 +02:00
Thibault Saunier
d29a8e4a77 validate: Add an option to print all avalaible actions with details
+ Cleanup actions descriptions
+ Make GstValidateActionType internal only and only expose the structure
2014-09-05 19:00:23 +02:00
Thibault Saunier
45e6d86c92 validate: Use the buffering mode to see if pipeline is live or not 2014-09-05 19:00:23 +02:00
Thibault Saunier
0ad475063d validate: Do not segfault when receiving a segment on unlink pad
For some reason we did no discover that before.
2014-09-05 19:00:23 +02:00
Thibault Saunier
8eeaa1a95f validate: Make GstValidateActionType a GstMiniObject and expose it in the API 2014-09-05 19:00:23 +02:00
Thibault Saunier
bdc09d2d4a validate:scenario: Cleanup header and add some padding to classes
Let's start making gst-validate ABI and API stable
2014-09-05 19:00:23 +02:00
Anuj Jaiswal
eb16061fa9 gst-validate: fix some minor memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=735099
2014-08-23 11:57:12 +01:00
Mathieu Duponchelle
99204c0018 validate: generate test names with the stream_info filename.
And not with the contained uri string, which is variable.
2014-08-19 18:47:18 +02:00
Thibault Saunier
3979c49cd2 validate: The scenario only old a weak ref so unref the weak ref
We were unrefing an object we did not actually own a ref on.
2014-08-12 15:14:28 +02:00
Thibault Saunier
161610c26e validate: Print when we set pipeline state because of buffering 2014-08-12 13:17:20 +02:00
Thibault Saunier
f4db183b2b validate:launcher: Properly handle libsdir when gst-validate is installed
+ Fix the _in_devel function
+ Install the validate default testsuite implementation in the right
place
2014-08-12 13:16:43 +02:00
Thibault Saunier
f6c62d071c validate:launcher: Let testsuite know the actual file in which they are 2014-08-12 13:16:43 +02:00
Thibault Saunier
bf30bf4fd7 validate:launcher: Add the logic of needed env variables in tests 2014-08-12 13:16:43 +02:00
Thibault Saunier
e81c0093fc validate:launcher: Expose all classes to be used to create testsuites
To create testsuite from outside gst-validate, the user will need to be
able to use the TestGenerator and subclasses of Test that we implement
in the apps, to do so we publicly expose them in the TestManager class
so that user have acces to everything they need.
2014-08-12 13:16:43 +02:00
Thibault Saunier
20c28def3c validate:launcher: Handle stdout/stderr as possible logfiles
Allowing people to get all the logs in the terminal
2014-08-12 13:16:43 +02:00
Thibault Saunier
32dac5014a validate: Allow several outputs in GST_VALIDATE_FILE 2014-08-12 13:16:43 +02:00
Thibault Saunier
8e1997d820 validate: Launcher: Add support for the dash protocol
And make sure that the HTTP server is started if it is needed to serve
some HLS or DASH streams
2014-08-12 13:16:43 +02:00
Thibault Saunier
631db75718 validate:Launcher: Use the first media path as a path for http server
We need to have a default path and the first one sounds like a
reasonnable default.
2014-08-12 13:16:43 +02:00
Thibault Saunier
2da2c6cc56 validate:launcher: Allow limitating local HTTP server bandwith
By default we limit its bandwith to 1MBps which is somehow similare to a
good internet connection case.
2014-08-12 13:16:43 +02:00
Thibault Saunier
702992cf7a validate:launcher: Disable racy HLS tests
+ Add need-clock-synk to switch_audio_track_while_paused as it relies on
the clock sync to pause and then display subtitles
2014-08-06 09:08:36 +02:00
Thibault Saunier
bab8a4c3bb validate:launcher: Take into account exitcode in transcoding tests
And disable a few racy tests that were not detected because of that
2014-08-05 11:33:08 +02:00
Thibault Saunier
7875b9a3d9 validate:launcher:testsuite: De activate backward playback where appropriate
And re activate it where it works
2014-08-04 13:03:54 +02:00
Thibault Saunier
f42f0724e5 validate: Actually accept rounding errors and small mistakes for position
WHen seeking in paused the position right after should be pretty much
the exact one, but sometimes it can be a little different because of
rounding issues and similare.
2014-08-04 13:03:19 +02:00
Thibault Saunier
8518e08dbb validate: Add a way to avoid printing all the issue in reports
Avoiding user to be flooded by information he does not want while
debugging
2014-08-04 13:02:46 +02:00
Thibault Saunier
d682bd29a9 validate: Print the report when aborting because of an issue
Letting a chance to the user to know what bug he faced!
2014-08-04 13:02:46 +02:00
Thibault Saunier
5c50219fae validate: Enhance output about critical errors
+Lower some warning to INFO
2014-08-04 13:02:46 +02:00
Thibault Saunier
6da09fb919 validate: Allow overrides for scenario issues 2014-08-04 13:02:46 +02:00
Thibault Saunier
1bd6b2767f validate: Avoid readding several time the same test in the tests result list 2014-08-04 13:02:46 +02:00
Thibault Saunier
b9712e336e validate:launcher: Fix test number print 2014-08-04 13:02:46 +02:00
Thibault Saunier
0dd8e9cd3d tools: Launcher: Disable validate.file.*.simple.scrub_forward_seeking.synchronized
It is still a bit racy and sometimes the seek just does not happen
2014-07-31 17:56:13 +02:00
Thibault Saunier
7057a9fd50 tools: launcher: Disable subtitle track switching scenario on Sintel
It is racy at the moment.
2014-07-31 17:43:51 +02:00
Thibault Saunier
1aa0d4eb4a validate:launcher: Allow informing minimum media duration in scenarios
Allowing the launcher to avoid running tests on medias that are not long
enough
2014-07-23 20:43:57 +02:00
Thibault Saunier
24fe345f73 validate:launcher: Always print final report + enhance output 2014-07-23 17:49:44 +02:00
Thibault Saunier
35b6bfb7c8 validate:scenario: Properly check that remaining actions are not 'ending' ones
When checking that all action were executed, we need to make sure that
actions such as EOS or stop are not taken into account as we might have
shorter medias than the duration of the scenario, and that should not be
fatal.

+ Plug a leak on the way
2014-07-23 17:49:44 +02:00
Thibault Saunier
386b572066 validate: launcher: Force clock syncronization for some scenarios
In some cases it is necessary that the clock is sync so that all the
actions can be executed.
2014-07-23 17:49:44 +02:00
Thibault Saunier
40003689df validate: Launcher: Make sure tests are always executed in same order 2014-07-23 13:48:44 +02:00
Thiago Santos
3cf3e7a438 gst-validate-scenario: add emit-signal
emit-signal action allows to emit signals to elements in scenarios.
The implementation only accepts signals without arguments for now but
it can be extended to use parameters if needed in the future
2014-07-22 11:59:58 -03:00
Thibault Saunier
1cdbba4327 validate: Launcher: Fix a backtrace using self in a @staticmethod 2014-07-22 15:50:47 +02:00
Thiago Santos
fd7c13d446 gst-validate-scenario: the structure has the type
Get the GValue directly from the structure and do not assume everything
is stored as a string and use the GstStructure's GValue to set the property
to the instances
2014-07-21 22:41:28 -03:00
Thiago Santos
d7c3d652d0 gst-validate: properly set pipeline to null before unref
In case it fails when going ready->paused it will remain in ready state
and be unref'd in ready, leading to an assertion
2014-07-21 22:01:27 -03:00
Arnaud Vrac
e1b3ec2ad7 validate: Fix build on some custom platforms
We need to explicitely pass GLIB_LIBS for GModule as it seems not to be included by
GST_ALL_LIBS and we need LIBM
2014-07-21 19:09:58 +02:00
Lubosz Sarnecki
24046a6168 httpserver: launch webserver with the same python interpreter. 2014-07-21 18:01:25 +02:00
Thibault Saunier
7d695fbed4 validate: Dot the pipeline on interuption 2014-07-19 09:48:17 +02:00
Aurélien Zanelli
d1c261f5b1 validate: duplicate strings in gst_validate_issue_new()
Do this to avoid discarding 'const' qualifier when using it with
constant strings. Moreover it will avoid a g_free on constant string.

https://bugzilla.gnome.org/show_bug.cgi?id=733362
2014-07-18 16:28:58 +02:00
Thibault Saunier
cf540d002b validate:launcher: Fix a backtrace using an undefined method 2014-07-18 16:28:49 +02:00
Thibault Saunier
3cfa480eba valdate:launcher: Do not refer to self in @staticmethod
There is no self in there.
2014-07-17 17:04:59 +02:00
Thibault Saunier
d7d1445e67 validate: Add a set-debug-threshold scenario action
Allowing users to activate the debug only at the interesting time
2014-07-17 17:04:59 +02:00
Thibault Saunier
cd55381a5f validate: Add Gst debugging when using gst-validate printing feature
Giving usefull debugging informations in the GSt debug logs
2014-07-17 17:04:59 +02:00
Thibault Saunier
f6884a5a54 validate: Do not auto flush pipeline bus
We want to see all messages in our async handler

And flush it when we are done.
2014-07-17 12:17:31 +02:00
Thibault Saunier
fcb8a77e17 validate:launcher: Avoid using sync=true on fakesinks
Making the test run much faster!
2014-07-16 19:38:01 +02:00
Thibault Saunier
b075646451 validate: Launcher: Print total time spent in the final report 2014-07-16 19:37:35 +02:00
Thibault Saunier
71ae6d3816 validate: Make switch_subtitle_track_while_paused handle states 2014-07-16 18:21:16 +02:00
Thibault Saunier
e07e7cd43e vaildate: Make disable_subtitle_track_while_paused handle states 2014-07-16 15:47:59 +02:00
Thibault Saunier
ded4bec35a validate: Make scrub_forward_seeking handle states 2014-07-16 15:47:59 +02:00
Thibault Saunier
f5454f07f0 validate:launcher: Properly check that encoded files have the exact wanted format 2014-07-16 15:47:58 +02:00
Thibault Saunier
fe9ed41d6c validate:launcher: Add a method to create a GstValidateMediaDescriptor from a uri 2014-07-16 15:47:58 +02:00
Thibault Saunier
265688fcd6 validate:launcher: Move MediaFormatCombination to baseclasses.py
+ Add some simple helpers
2014-07-16 15:47:58 +02:00
Thibault Saunier
f1163d61ba validate:launcher: Implement a GstValidateEncodingTestInterface class
Allowing code to be shared between apps that run rendering tests
2014-07-16 15:47:58 +02:00
Thibault Saunier
a735b9eb99 validate:launcher: Implement a MediaDescriptor subclass for xges project files 2014-07-16 15:47:58 +02:00
Thibault Saunier
d61c0d6166 validate:launcher: Make a MediaDescriptor baseclass to be used by any application 2014-07-16 15:47:58 +02:00
Thibault Saunier
89aa70545a validate:launcher: Give information to users when cloning asset failed
It might not be obvious from the stacktrace so it is better to clearly
explain what the failure was when we know it
2014-07-16 15:47:58 +02:00
Thibault Saunier
6beb346aa3 validate:launcher: Fixup the default asset update command 2014-07-16 15:47:58 +02:00
Thibault Saunier
9a69c21acc validate:launcher: Generate proper EncodingProfiles for audio/video only media files 2014-07-16 15:47:58 +02:00
Thibault Saunier
87cc7da213 validate:launcher: Move the MediaDescriptor class to the baseclasses.py file 2014-07-16 15:47:58 +02:00
Thibault Saunier
58256ab135 validate:launcher: Allow transcoding audio only files 5 time longer than long_limit
Transcoding audio is a lot shorter so we can concider that transcoding files that are only
only is 5 time shorter than the actual file (empirical number)
2014-07-16 15:47:58 +02:00
Thibault Saunier
f925c0c1be validate:media-check: Pass the GError where needed. 2014-07-16 15:47:58 +02:00
Thibault Saunier
822c7eaa6e validate: Avoid segfault in the error path 2014-07-16 15:47:58 +02:00
Thibault Saunier
f8a37a1c80 validate:media-descriptor-writer: Handle medias with 1 single stream 2014-07-16 15:47:58 +02:00
Thibault Saunier
fa35a10779 validate: Check that after a seek in PAUSED position is perfect
In case of ACCURATE seeking, the position after a SEEK in PAUSED state
should be *exactly* the one requested by the user.
2014-07-16 15:47:58 +02:00