Commit graph

561 commits

Author SHA1 Message Date
Thibault Saunier
af383ad0c0 validate:launcher: Move the notion of test generator to the baseclasses
This can be very usefull for all the TestManager and thus exposes a
higher level API for test writers.
2014-07-07 11:27:34 +02:00
Thibault Saunier
aeec108c88 validate:launcher: Move default testsuite to a dedicated file
Making the separation cleaner between the launcher and the test
implementation
2014-07-07 11:27:34 +02:00
Thibault Saunier
00719fb07e validate: Properly handle CLOCK_TIME_NONE position and duration values
In the value parser.
2014-07-07 11:27:34 +02:00
Thibault Saunier
3607fd8deb validate: Print the return value at the end
Making it easier to know whether the test passed or not.
2014-07-07 11:27:34 +02:00
Thibault Saunier
f708156ff6 validate:scenario: Move the check about whether we are still seeking upper in the function
Avoiding to try to get position and do operations on a pipeline that is seeking
2014-07-07 11:27:34 +02:00
Vincent Penquerc'h
4dc3f5171e validate-scenario: only use valid position/duration
Position/duration query may fail, or yield unknown values (eg,
unknown duration for live streams). In these cases, we must ensure
we do not use those invalid values.

https://bugzilla.gnome.org/show_bug.cgi?id=715160
2014-07-07 11:27:34 +02:00
Thibault Saunier
71cd2a8ce7 validate:launcher: Not concider all scenarios by default with --wanted-test
Instead let the users activate that with -t ALL
2014-07-07 11:27:34 +02:00
Thibault Saunier
5266fee48c validate:launcher: Let the user set user options in the config file 2014-07-07 11:27:34 +02:00
Thibault Saunier
b9389c85c2 validate:launcher: Use RawTextHelpFormatter to (not) format user help 2014-07-07 11:27:34 +02:00
Thibault Saunier
f10ff2b610 validate:launcher: Add a way to create test suite outside the three
+ Make sure to namespace the API
+ Remove cruft about G_V_PROTOCOL_VIDEO_RESTRICTION_CAPS
2014-07-07 11:27:34 +02:00
Thibault Saunier
150c5bc6b2 validate:scenario: We are not changing state if the set_state failed. 2014-07-07 11:27:34 +02:00
Thibault Saunier
b3a168ed73 validate:scenario: Add a debug category and add some debug 2014-07-07 11:27:34 +02:00
Thibault Saunier
a4d3971709 validate: media-descirptor: Add more infos about discoverer error 2014-07-07 11:27:34 +02:00
Thibault Saunier
5983df47c5 validate:launcher: Cleanup the way we generate tests adding the notion of TestGenerator
Making it easier to extend the testsuite.
2014-07-07 11:27:34 +02:00
Thibault Saunier
5c85e4500d validate:tools: Dot the pipeline on usefull places
Meaning on warning and state changes.
2014-07-07 11:27:34 +02:00
Sebastian Dröge
b6c439ee88 validate: Don't call gst_debug_log_valist() if debugging is disabled
And also stop leaking a string every time.
2014-06-28 12:33:45 +02:00
Sebastian Dröge
3ecd8352eb gst-validate: Add $(GIO_LIBS) and $(GIO_CFLAGS) as required 2014-06-28 11:36:27 +02:00
Thibault Saunier
bbe56a4fd9 validate: Fix launcher when running installed 2014-06-17 15:10:41 +02:00
Thibault Saunier
c7c879fc1c validate: scenarios: Install play_15s.scenario 2014-06-17 14:17:21 +02:00
Thibault Saunier
4f01b2bd8a validate:launcher:reporter: Sort Final report by results 2014-06-16 16:47:18 +02:00
Thibault Saunier
b8e1c3e64c validate:launcher:ges: Fix rendered duration checking 2014-06-16 16:46:21 +02:00
Thibault Saunier
e847d7061a validate: pad-monitor: Do not compare not fixed sinkpad caps fields
We are only able to check that the sink pad caps values are inside the src pad
value.
2014-06-16 16:43:02 +02:00
Thibault Saunier
93d9032712 scenario: Do not be so tolerant about seek drift 2014-06-16 08:56:30 +02:00
Edward Hervey
0693805e9c pad-monitor: Handle out-of-segment first buffer
If the initial buffer is before segment.start, we don't want to raise
the "first buffer doesn't have 0 running-time" issue.

Also add debug for tracking issues
2014-06-03 10:05:25 +02:00
Edward Hervey
ca44a11429 validate: Run gst-indent on all code
so whitespace. much indent. spacing !
2014-06-03 10:05:25 +02:00
Thibault Saunier
90f5dae534 validate: Depend at least on GLib 2.36 2014-05-27 12:33:08 +02:00
Thibault Saunier
0bde7bcacb validate: Add a scrub_backward_seeking scenario
+ Make use of it in ges-launch and do not try to seek while playing in
GES as it is not supported yet
2014-05-27 12:33:08 +02:00
Nicolas Dufresne
fea3893686 validate: Don't pass NULL to g_strsplit 2014-05-24 01:28:36 -04:00
Edward Hervey
ebde58f1d1 validate-utils: Fix unitialized variable
gst-validate-utils.c:413:7: error: variable 'v0' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
  if (c == '!') {
      ^~~~~~~~
gst-validate-utils.c:424:10: note: uninitialized use occurs here
  return v0;
         ^~
gst-validate-utils.c:413:3: note: remove the 'if' if its condition is always false
  if (c == '!') {
  ^~~~~~~~~~~~~~~
gst-validate-utils.c:411:13: note: initialize the variable 'v0' to silence this warning
  gdouble v0;
            ^
             = 0.0
1
2014-05-22 16:13:31 +02:00
Thibault Saunier
1a2f4a3cd3 validate: Move overrides and preload libraries to dedicated folders
This way it is cleaner and it is simpler to handle the various compilation dependencies.
2014-05-21 12:00:26 +02:00
Lubosz Sarnecki
1043aa3f55 python: change shebangs to python2 2014-05-19 10:21:07 +02:00
Thibault Saunier
9660a8bd3a validate: Properly use boolean in XML 2014-05-15 09:46:24 +02:00
Thibault Saunier
92d390bc5d validate: Improve perf when writing the XML file
+ Pass the file into gst-indent
2014-05-08 17:48:39 +02:00
Thibault Saunier
dae0c4ef81 validate: Add a scenario that switches state many intensively
+ Use it by default in the launcher tests
2014-05-07 16:45:27 +02:00
Thibault Saunier
384686a7f7 validate: Minor fix for blacklisted test output formatting 2014-05-07 12:44:51 +02:00
Thibault Saunier
0b4bd7940a validate:launcher: Add an option to only launch the http server 2014-05-07 12:44:51 +02:00
Thibault Saunier
8a295da795 validate: Keep scenario discovering logs in a file 2014-05-07 12:44:51 +02:00
Thibault Saunier
7590148e20 validate: Avoid using stop value in the fast_forward scenario 2014-05-07 12:44:39 +02:00
Thibault Saunier
720b9eff47 validate: Properly check that outputed videos have a correct duration 2014-05-07 11:30:39 +02:00
Thibault Saunier
cdb8822ae3 validate: Add the notion of "long" tests so that we can avoid some test to be run if they are too long 2014-05-07 11:30:09 +02:00
Thibault Saunier
ac6e463009 scenario: Add a general action to set state 2014-05-07 09:51:19 +02:00
Thibault Saunier
08898ff219 validate: Properly set the pre commit hook 2014-05-07 09:50:28 +02:00
Thibault Saunier
7d55065277 validate:scenario: Pass into gst-indent 2014-05-07 09:46:28 +02:00
Thibault Saunier
cd8000994b validate: The wait mandatory field is duration 2014-05-07 09:15:34 +02:00
Thibault Saunier
0aff591b2f validate: Make sure mandatory fields are present when parsing scenarios 2014-05-07 09:11:12 +02:00
Mathieu Duponchelle
7d4abf31e7 scenarios: add a stateless property.
This property enables the user to have actions executed independently
of the state of the pipeline.

Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2014-05-06 15:37:26 +02:00
Mathieu Duponchelle
1332e9fc4f scenario: make sure to not execute actions when changing state.
Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2014-05-05 17:21:06 +02:00
Thibault Saunier
49ab41743b validate: The 'buffering' variable needs to be static
We need its value between bus_callback calls to be the same
2014-05-04 09:30:16 +02:00
Luis de Bethencourt
eabcf8f106 gst-validate: some static variables can be local
buffering is only used inside the bus_callback, so it can have that local
scope. same thing with ret which is only used in the main function.
2014-05-02 17:25:07 -04:00
Luis de Bethencourt
0b01b578ce gst-validate: small typo in usage summary 2014-05-02 16:53:51 -04:00
Thibault Saunier
aceba228ce validate: Wait for the PAUSED state to be reached before executing actions 2014-05-02 20:05:28 +02:00
Thibault Saunier
bb42d287e7 validate: Fix the name of the sintel blacklisting 2014-05-02 19:00:49 +02:00
Thibault Saunier
15cceffcf1 validate: Add a scenario to disable subtitle track while paused 2014-05-02 18:50:41 +02:00
Thibault Saunier
fbcee57902 validate: Implement frame by frame writing in the media descriptor writer
+ Add an option to fully parse media files in the gst-validate-media-check tool
2014-05-02 18:30:23 +02:00
Thibault Saunier
ba38d09961 validate: Execute position right when the pipeline reaches PAUSED
We might go to PAUSED SYNC if nothing happens in the pipeline
2014-05-02 18:30:23 +02:00
Thibault Saunier
5d200f8819 validate: Add a scenario that disable subtitles
+ Clean the sythax to define switch-track action that actually
desactivate the track
2014-05-02 18:30:23 +02:00
Thibault Saunier
efb40d9778 validate: Do not execute action when buffering
While buffering we should no try to execute anything as we would not be
controlling properly the execution.

+ Activate scrub forward seeking for HTTP streams
2014-05-02 18:30:23 +02:00
Thibault Saunier
867bfec188 validate: Add a scenario that switches subtitle track while paused
+ Integrate it in the launcher
2014-05-02 18:30:23 +02:00
Thibault Saunier
872472feb3 validate:launcher: Sensibly simplify scenario handling 2014-05-02 18:30:23 +02:00
Thibault Saunier
b37fafa1e6 validate: Plug a minor leak 2014-05-02 18:30:23 +02:00
Thibault Saunier
9c5009c724 validate: Use ges-launch recursing path new feature
And fix path to URI conversion
2014-05-02 18:30:23 +02:00
Thibault Saunier
2077e76aa2 validate: Add a gst-validate-launcher documentation 2014-05-02 18:30:23 +02:00
Thibault Saunier
447b299dab validate:launcher: Port OptionParser to ArgParse 2014-05-02 18:30:23 +02:00
Thibault Saunier
5e2b577372 validate: Can not do reverse playback on sintel sample
+ Minor improvement in the CLI
2014-05-02 18:30:23 +02:00
Thibault Saunier
97482e2512 validate:launcher: Do not except meaningless argument in ges-launch 2014-05-02 18:30:23 +02:00
Thibault Saunier
804cdb5ad2 validate: Handle per file special scenarios
When a file is int the same folder as a media file and has a name like:
mediafilename.mkv.scenarios_name.scenario  we run that scenario on that
particular file
2014-05-02 18:30:23 +02:00
Thibault Saunier
1ffb6b4e1c validate: Allow specifying scenarios to parse when lisiting them
It used to only handle the scenario present in proper paths, we
also need to handle special scenarios provided by users on the fly
2014-05-02 18:30:22 +02:00
Thibault Saunier
f165fb41d0 validate: Handle ERROR on the bus when monitoring the pipeline
This way the user get a  clear information in the report about the issue

+ sensibly cleanup code
2014-05-02 18:30:22 +02:00
Thibault Saunier
da42500df7 validate: Add a scenarios that switchs subtitle track
+ Make it easier and cleaner to tell that a switch is actually disabling
a track type.

And run the scenario in gst-validate-launcher by default
2014-05-02 18:30:22 +02:00
Thibault Saunier
3281add6b5 validate: Add a switch_audio_track_while_paused scenario
And run it as a default
2014-05-02 18:30:22 +02:00
Thibault Saunier
a62560bc81 validate: Add an action to set an external URI file on playbin at runtime 2014-05-02 18:30:22 +02:00
Thibault Saunier
2a9e0824b2 validate: Override switch_track action when using a playbin
And use the playbin feature for that when the pipeline is based on playbin
2014-05-02 18:30:22 +02:00
Thibault Saunier
3a1db22188 validate: Do not g_strrstr with a NULL pointer as needle 2014-05-02 18:30:22 +02:00
Thibault Saunier
3402d5556a validate: Print more details when executing the switch_track action
+ Fix some issue in the memory freeing codepath of GstValidateAction
2014-05-02 18:30:22 +02:00
Thibault Saunier
93bd46dbc2 validate: Do not try to use a NULL iter 2014-05-02 18:30:22 +02:00
Thiago Santos
385d6d4ccd pad-monitor: check that no buffers are pushed after a pad is EOS
Make sure no resources are wasted after elements are done with the
current segment
2014-05-02 12:07:53 -03:00
Thibault Saunier
28bd6ee17a launcher: Now using git annex to handle media files 2014-04-28 13:08:17 +02:00
Thibault Saunier
676602644c validate: Expose a seeking method so other actions types can seek
Other action types might need to seek and we GstValidateScenario need
to know about it, add a method others can use to do the seeking
2014-04-26 09:52:37 +02:00
Thibault Saunier
a3a132489a Revert "validate:launcher: Always put gst-validate result as stderr in reports"
This reverts commit 925ff7542b.

Actually jenkins never  truncates on failure stacktrace... we do not
want to set gst-validate as failure stacktrace in our results. That
commit was not usefull.
2014-04-26 09:16:26 +02:00
Thibault Saunier
925ff7542b validate:launcher: Always put gst-validate result as stderr in reports
This way jenkins will always keep the information in its database even
if the test passes
2014-04-26 08:11:20 +02:00
Thibault Saunier
4f920dc405 validate: Pass -scenario.c into gst-indent and fix some docs 2014-04-25 18:33:33 +02:00
Thibault Saunier
0c4216d005 validate: Add a "dot-pipeline" action 2014-04-25 18:27:30 +02:00
Thibault Saunier
eb4a70a263 validate: Return a boolean when parsing an enum string 2014-04-25 18:26:50 +02:00
Thibault Saunier
8852633dfc validate:scenarios: Prefer stop action instead of EOS when appropriate 2014-04-25 14:51:28 +02:00
Thibault Saunier
bd936dae4c validate:launcher: Properly set error message when sending EOS did not work 2014-04-25 14:51:28 +02:00
Thibault Saunier
da6dc3882b validate:launcher: Add a way to specify tests filtering only on defaults 2014-04-25 14:51:28 +02:00
Thibault Saunier
be72ec5f6a validate:launcher: Add support for audio track switching scenario 2014-04-25 14:51:28 +02:00
Thibault Saunier
8b4542540c validate:launcher: Make it possible to run any scenario test in gst-validate 2014-04-25 14:33:06 +02:00
Thibault Saunier
8035094128 validate:launcher: Do not run reverse playback on mpegts files 2014-04-25 14:33:06 +02:00
Thibault Saunier
fba15f71c6 validate:launcher: Cleanup media descriptor usage 2014-04-25 14:33:06 +02:00
Thibault Saunier
81b0c74bfa validate:launch: Port to the new media_info format 2014-04-25 14:33:06 +02:00
Thibault Saunier
d280d0dbc9 validate: Add a media-descriptor parser and writer 2014-04-25 14:33:06 +02:00
Thibault Saunier
f6c6043317 validate: Minor printing cleanup 2014-04-25 14:33:06 +02:00
Thibault Saunier
2d7d03d2f7 validate: Add a 'stop' action to stop a pipeline
It uses the GST_MESSAGE_REQUEST state with the scenario as a source
so that application can stop running when they receive it on the bus.
2014-04-25 14:33:06 +02:00
Thibault Saunier
7133e4b4e0 validate:launcher: Use the new validatelog file
Making the output cleaner and clearer in junit XML file
2014-04-25 14:33:06 +02:00
Thibault Saunier
38eda37341 validate: Handle position printing at the monitor level
Instead of replicating that code all around
2014-04-23 11:27:44 +02:00
Thibault Saunier
810e432da2 validate: Add printing utilities
Allowing the user to print everyting in a file through the
GST_VALIDATE_FILE env variable
2014-04-23 11:16:32 +02:00
Thibault Saunier
cac53e9078 validate: Add an action to wait for a given amout of time
During that time we will just not execute any new action

+ Lower WARNING to DEBUG when no playbcak_time is provided for an
action, it should just be 0.
2014-04-23 09:37:22 +02:00
Thibault Saunier
21a4888ae7 validate: Check that for raw, buffers are strictly contained in segment
For encoded data we might need buffers that have timestamp <
segment.start to make sure that we have the keyframe, etc... but for raw
data, buffer end should strictly be inside the segment, be more strict
about that.
2014-04-22 16:57:21 +02:00
Thibault Saunier
8527d91737 validate: PAR is not a mandatory field
Also make it possible to check other not mandatory fields in the future
2014-04-22 16:57:21 +02:00