Commit graph

387 commits

Author SHA1 Message Date
Thibault Saunier
2520f4f110 validate: tools: Implement the notion of hard timeout
Allowing to define timeout that is not relative to the last observed number.
2014-02-12 11:23:25 +01:00
Thibault Saunier
2391a56714 validate: tools: Create a class for scenarios 2014-02-12 11:23:25 +01:00
Thibault Saunier
ba1f428351 validate: tools: Change timeouts depending on used protocol 2014-02-12 11:23:25 +01:00
Thibault Saunier
8b8562ea85 validate:tools: Implement Buffering support in the various tools 2014-02-12 11:23:23 +01:00
Thibault Saunier
b3c71bba02 validate:tools: Blacklist some scenario/protocol combinations
And add the option for user to easilly blacklist tests
2014-02-06 12:02:59 +01:00
Thibault Saunier
a88d54aec2 validate: Plug a leak in validate-reporter 2014-02-06 12:02:59 +01:00
Thibault Saunier
7b236c96bf validate:tools: Do not forget to give a ref for reporter's reports
Also enhance a bit report 'wording'
2014-02-06 12:02:59 +01:00
Thibault Saunier
3bce8f8966 validate:tools: Print test result in the terminal after the end of each test 2014-02-06 12:02:59 +01:00
Thibault Saunier
5d172e159e scenario: Enhance explanation about seek execution failure 2014-02-06 12:02:59 +01:00
Thibault Saunier
299a677f09 validate:tools: Add an option to run testforever 2014-02-06 12:02:59 +01:00
Thibault Saunier
d9386f7542 validate: tools: Cleanup the way we return code in position query 2014-02-06 12:02:59 +01:00
Thibault Saunier
d000ca62a4 validate:tools: Use the same semantic for all tests classnames 2014-02-06 12:02:59 +01:00
Thibault Saunier
ac92d5b428 scenario: Do not remove GSource if it has never been set 2014-02-06 12:02:59 +01:00
Thibault Saunier
705f8e7766 data: Add a scenario where we send EOS after 15secs if the duration is > to that 2014-02-06 12:02:59 +01:00
Thibault Saunier
c0673d7eea validate:tools: Add support for testing http streams locally 2014-02-06 12:02:59 +01:00
Thibault Saunier
c2e5c10767 validate:tools: Some cleanup in gst-validate test launcher 2014-02-06 12:02:59 +01:00
Thibault Saunier
33a744b688 validate:tools: Add actuall tests for media checking 2014-02-06 12:02:58 +01:00
Thibault Saunier
a3e7342eef validate: tools: media-check: When comparing with a file just compare
We do not want to know if the file is seekable etc, but in that case we
want to see that the results are stable throughout the various runs

Also make sure to report an understandable error if the media file info
could not be parsed
2014-02-06 12:02:58 +01:00
Thibault Saunier
677e111f0b validate: tools: Do not dot the pipeline every 50ms, it is a bit exessive 2014-02-06 12:02:58 +01:00
Thibault Saunier
d485180074 validate:tools: Return an exit code != 0 if pipeline can't go to playing
And give some information to the user about why the return code is !=0
everywhere it happens
2014-02-06 12:02:58 +01:00
Thibault Saunier
1c614b9ed9 validate:tools: Add informations about the test in the log files 2014-02-06 12:02:58 +01:00
Thibault Saunier
a6f3d5270c validate:tools: Remove reference to get_backtrace which is not implemented
+ Enhance Message about launched apps
2014-02-06 12:02:58 +01:00
Thibault Saunier
26e3a9e3c5 validate:tools: Do not duplicated name in the classname in xunit reports 2014-02-06 12:02:58 +01:00
Thibault Saunier
654bacebc9 validate:tools: Do not check if position > duration
This is actually done by the scenario themselve. Instead if it is the
case, we return 0, this way it will timeout if it happens too many times
concecutively
2014-02-06 12:02:58 +01:00
Thibault Saunier
6bd9177205 validate:tools: Properly inform the user about the log location when test fails 2014-02-06 12:02:58 +01:00
Thibault Saunier
eb23274a5b validate:tools: Add an option to generate .media_info files
So we can properly choose what media should be tested only placing
media_file as needed.
2014-02-06 12:02:58 +01:00
Thibault Saunier
32e1acbf88 validate:tools: use more scenarios in gst-validate launcher
And ensure that the list does not get mixed up with as we are sharing
"symboles" between all the files
2014-02-06 12:02:58 +01:00
Thibault Saunier
49cca6a329 validate:tools: Play the entire file in simple_backward 2014-02-06 12:02:58 +01:00
Thibault Saunier
6fcd2173eb validate:tools: Fix the fast forward scenario to handle any file duration 2014-02-06 12:02:58 +01:00
Thibault Saunier
8e81727b87 validate:tools: Do not try to transcode images 2014-02-06 12:02:58 +01:00
Thibault Saunier
9eb665dddf validate: Properly handle images in the media-info helper
In the case of images we should not check reverse playback, fast
forward etc...

We also should keep the information
2014-02-06 12:02:58 +01:00
Thibault Saunier
32e7b9a55e validate:tools: Minor cleanups 2014-02-06 12:02:58 +01:00
Thibault Saunier
38615bcae2 validate:tools: Fix classname in gst-launch transcoding tests 2014-02-06 12:02:58 +01:00
Thibault Saunier
dc29cc2857 validate:tools: Properly name the project launcher in the report 2014-02-06 12:02:58 +01:00
Thibault Saunier
0b3b456f6a validate:tools: Create the rendering directory if it does not exist 2014-02-06 12:02:58 +01:00
Thibault Saunier
8697dd3da4 validate:tools: Add an option to desativate ANSI colors
And enhance some debugging output
2014-02-06 12:02:58 +01:00
Thibault Saunier
eae7e94f44 validate:tools: Remove our dependency to PyGobject 2014-02-06 12:02:58 +01:00
Thibault Saunier
0c535ef9cf validate:tools: Do not forget to add Makefile.am and main.py 2014-02-06 12:02:58 +01:00
Thibault Saunier
bd3aaded49 validate:tools: Enhance the way we detect if ges-launch can be used
We make sure it has been compiled against gst-validate
2014-02-06 12:02:58 +01:00
Thibault Saunier
c7aa259c78 validate:tools: Set video/webm instead of video/x-matroska as caps for webm
+ some mirore indentation cleanups
2014-02-06 12:02:58 +01:00
Thibault Saunier
384dd33843 validate:tools: Do not forget to keep our ref to file_info g-v-transcode 2014-02-06 12:02:57 +01:00
Thibault Saunier
446e5c88c2 validate:tools: Cleanup how we check result of rendering test
Factor out a method in the utils, and make use of it for both ges-launch and
gst-validate-transcode
2014-02-06 12:02:57 +01:00
Thibault Saunier
ff30c6ba3c validate:tools: Don't give file duration as timeout for gst-validate
We use the other mean letting us actually control the process
advancement.
2014-02-06 12:02:57 +01:00
Thibault Saunier
cdff1c93ca validate:tools: Veryfy test manager are operationnal before using them 2014-02-06 12:02:57 +01:00
Thibault Saunier
e30f6372f9 validate:tools: Move the main function in a dedictaed file 2014-02-06 12:02:57 +01:00
Thibault Saunier
c33d10470f validate:tools: Print some statistic at the end of the test run 2014-02-06 12:02:57 +01:00
Thibault Saunier
d8fc68479c validate:tools: Print position every 50ms in gst-validate 2014-02-06 12:02:57 +01:00
Thibault Saunier
ea7ae57d3b validate:tools: Rename files around and integrate into autotools
File distribution used to be messy, clean it all up. Also make sure the
launcher is integrated into the autotools.
2014-02-06 12:02:57 +01:00
Thibault Saunier
ac9820a435 validate: tools: Enhance error message for GstValidate tests 2014-02-06 12:02:57 +01:00
Thibault Saunier
1f3432a33e validate: tools: Concider timeouts as errors when printing tests 2014-02-06 12:02:57 +01:00
Thibault Saunier
dac5b38a4d validate: tools: Refactor and add a GstValidateTranscodeTest class 2014-02-06 12:02:57 +01:00
Thibault Saunier
e591882794 validate: launcher: add the debug logger from pitivi
It is way more powerfull, simple to use and usefull
than the stock python one and has been proved to work reliably
2014-02-06 12:02:57 +01:00
Thibault Saunier
b51e143fdf validate: tools: Unref the pipeline before the runner and monitor
Avoids segfault in some cases, and monitors and runners have week ref on
their targets.
2014-02-06 12:02:57 +01:00
Thibault Saunier
0d6d397e30 validate: tools: Add a gst-validate test manager 2014-02-06 12:02:57 +01:00
Thibault Saunier
7d0a6efaff validate: tools: media-info: Fixes in the media file descriptor parsing code
We used to always fail when the user was passing something not NULL as err
2014-02-06 12:02:57 +01:00
Thibault Saunier
e9b2967504 validate: tools: Cleanup test launcher tool
Previous commit was not meant to be pushed and those two should have
been fixed up together, sorry for the mistake
2014-02-06 12:02:57 +01:00
Reynaldo H. Verdejo Pinochet
8c39dbfaa8 validate: fix parallel build
Without this, parallel building with > 2 jobs fails.
Also, LDFLAGS should not contain -l flags but _LIBADD.
2014-01-30 17:26:16 -03:00
Reynaldo H. Verdejo Pinochet
463ca62ab2 validate: drop unneeded stdio include 2014-01-30 15:47:15 -03:00
Thibault Saunier
b4a2ca6286 Add a test launcher tool 2013-12-31 11:45:07 +01:00
Lubosz Sarnecki
e8db3c67b9 validate: fix installation
* install headers
* fix libname in pk file
2013-11-25 16:56:11 -03:00
Vincent Penquerc'h
70931813ad validate-scenarios: list scenarios in GST_VALIDATE_SCENARIOS_PATH
GST_VALIDATE_SCENARIOS_PATH was used only for loading scenarios,
so any in that path would not be listed by -l.

Change-Id: If3cb94867ef3876933bda02477675c8ccf67baaf
2013-11-25 16:56:11 -03:00
Thibault Saunier
e9dee065f7 tools: transcoding: Avoid reencoding unless explicitely specified 2013-11-25 16:56:09 -03:00
Thibault Saunier
a8ae32df6d pad-monitor: Do not concider TIME_NONE as 0 for serialized events
In case we have serialized events right after a buffer that had no
timestamp set we concider that last timestamp was 0, but we can
actually not concider the timestamp at all in that case as it is
only "meaningless value".
2013-11-25 16:55:25 -03:00
Thibault Saunier
1c3340ecbb tools: Simplify the setting of action scenario vs config scenario
This make it easier for user to understand the difference between
the two concepts and avoids confusion.

Change-Id: Ib42913722c93a1e7e3c8b156173c458230946592

Conflicts:
	validate/tools/gst-validate-transcoding.c
	validate/tools/gst-validate.c
2013-11-25 16:55:25 -03:00
Thibault Saunier
9dfee4dffa scenario: Do not execute anything when listing scenarios 2013-11-25 16:55:25 -03:00
Thibault Saunier
71758d49da scenario: Add a "set-feature-rank" config action
This action can be used to change the rank of a particular element,
so you can force a particular element to be used when using
autoplugging elements (such as decodebin, encodebin, and friends)
2013-11-25 16:55:25 -03:00
Thibault Saunier
77bba657d1 scenario: Add support for "config" actions, actions executed at parse time
This type of actions is used to change some parametter on GStreamer
core and it plugins, it can be fore example, to change the rank of a
plugin or things like that.
2013-11-25 16:55:25 -03:00
Thibault Saunier
684eb19267 validate-transcoding: Dot pipeline on error 2013-11-13 18:46:15 -03:00
Thibault Saunier
74b86f7793 Properly link against gstreamer-video as it is now needed 2013-10-14 11:25:39 -03:00
Thibault Saunier
123ecb57c1 media-info: Do not use GST_PTR_FORMAT with g_print
Fix compilation
2013-10-14 11:20:03 -03:00
Thibault Saunier
3990d7716c data: Avoid races in the scrub_forward seeking scenario
Make sure that it does not last too long if the file is long (scrubing
on 10 secs maximum), and make sure that we do not end up seeking after
the max duration
2013-10-14 11:07:03 -03:00
Thibault Saunier
182f4e9a41 report: Set refcount=1 when creating a report
As it should start with 1 reference, not 0
2013-10-14 11:05:58 -03:00
Thibault Saunier
f8b4235e33 scenario: Add an action that checks the "force-key-unit" event execution 2013-10-09 14:24:42 -03:00
Thibault Saunier
10d1c4560e scenario: Make the get_clocktime helper a public method
So it can be reused outside of the core code
2013-10-09 09:33:06 -03:00
Thibault Saunier
4d59a2720e pad-monitor: Do not try to compare 2 not fixed values
There is no reliable way of checking those values in the case they
are not fixed, let's just make sure we get fixed values before
executing the check
2013-10-07 19:47:15 -03:00
Thibault Saunier
c2b58f347e data: Add an adaptive video framerate and size scenario 2013-10-07 17:40:54 -03:00
Thibault Saunier
464b008421 data: Add an adaptive video framerate scenario 2013-10-07 17:18:37 -03:00
Thibault Saunier
2580de34c5 data: Add a scenario where we change the video size on during playback 2013-10-07 15:57:30 -03:00
Thibault Saunier
10442def2f transcoding: Add a new action to change restriction caps at runtime 2013-10-07 15:57:30 -03:00
Thibault Saunier
75d7450e19 transcoding: Fix the way we get pad caps 2013-10-07 15:57:29 -03:00
Thibault Saunier
2b58bff057 data: Set seeks to accurate+flush by default 2013-10-05 13:36:21 -03:00
Thibault Saunier
b20166ff23 scenario: Pass through gst-indent 2013-10-05 13:36:05 -03:00
Thibault Saunier
820ebe3b26 scenario: Use g_error instead of exit (0) 2013-10-05 13:36:05 -03:00
Thibault Saunier
045cc47dcc scenario: Factor out function to get GstClockTime out of a structure 2013-10-05 13:36:04 -03:00
Thibault Saunier
4cea878563 scenario: Use a weak ref to the pipeline
We are listening to it, we should not be owning a ref to it.
2013-10-05 13:36:04 -03:00
Thibault Saunier
7e1249f089 runner: Use "18" as exit code in case of error
It is a random number, but it will in most cases give people a hint
that gst-validate reported a critical issue, and thus set the return
code, only by looking at it

Also make use of gst_validate_runner_print() in
gst-validate-transcoding.c as we were copy pasting that method there.
2013-10-05 13:36:04 -03:00
Thibault Saunier
ae641d0353 scenario: Handle formulas in playback_time
And port seek forward/backward scenarios to relative seeking
2013-10-05 13:36:04 -03:00
Thibault Saunier
e24645b133 scenario: Check that all action were properly executed 2013-10-05 13:36:04 -03:00
Thibault Saunier
c9ee576e8e scenario: Add the notion of repeated actions 2013-10-05 13:36:03 -03:00
Thibault Saunier
a89f32725b utils: Add util functions to parse simple mathematical expressions
And make use of it to set the start of a seek
2013-10-05 13:19:14 -03:00
Thibault Saunier
75356d4bbe scenario: Error out and exit when we fail loading a scenario 2013-10-05 13:19:14 -03:00
Olivier Crête
75e1f5040a gst-validate-scenario: Only typedef the struct once
Some gcc versions don't like the typedef being done twice
2013-10-03 18:14:29 -04:00
Vincent Penquerc'h
bb124f787d scenario: do not set default seek flags
Seeks will be done with no particular flags, unless specified
in the scenario.
2013-10-03 05:32:54 -04:00
Olivier Crête
3a6f42bf67 gst-validate: Don't use the GOptionContext after freeing it 2013-09-30 09:52:07 -04:00
Thibault Saunier
c469f9b2a4 pad-monitor: Check if channel-mask is present only if channels > 2
As it is not a mandatory field otherwize

https://bugzilla.gnome.org/show_bug.cgi?id=708499
2013-09-21 00:34:05 +02:00
Thibault Saunier
42857faaae scenario: Add GST_VALIDATE_SCENARIOS_PATH environment variable
So you can specify the PATHS where to look for scenario files
2013-09-21 00:32:52 +02:00
Thiago Santos
720010f073 scenarios: add 2 new scenarios for seeks with different seek types
They test seeks that only update the stop or the start position, some
demuxers seem not to handle the case where start type is set to None.
2013-09-20 15:18:35 -03:00
Thiago Santos
e3e463c0cc validate-scenario: track position query results closer
Always keep probing the pipeline for the current position and compare
with the latest requested seek segment to detect if the seek boundaries
are being respected
2013-09-20 15:18:35 -03:00
Thibault Saunier
b4a711c568 scenario: Make it possible to define mandatory fields
And give a descrpition for actions
2013-09-17 18:38:31 -03:00
Vincent Penquerc'h
ccc3f8d696 scenario: add a track switch command, and an audio track switch test
The "switch-track" command can be used to switch tracks. The "type"
argument selects which track type to change (can be "audio", "video",
or "text"). The "index" argument selects which track of this type
to use: it can be either a number, which will be the Nth track of
the given type, or a number with a "+" or "-" prefix, which means
a relative change (eg, "+1" means "next track", "-1" means "previous
track").

Conflicts:
	validate/gst/validate/gst-validate-scenario.c
2013-09-17 18:38:31 -03:00