Commit graph

637 commits

Author SHA1 Message Date
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
Thiago Santos
db21883c0c scenario: add set_property scenario action
Allows setting element's properties during a scenario. Very useful
for testing that elements behave correctly when changing properties
during playing state

https://bugzilla.gnome.org/show_bug.cgi?id=733070
2014-07-11 19:43:20 -03:00
Thibault Saunier
bed0f51d6c validate: Execute actions if we get seeked in ready state 2014-07-07 11:27:35 +02:00
Thibault Saunier
87ae465c77 validate: Let scenarios tell the apps about whether it handles states
The user only needs to add handles-states=true in the description line
of the scenario
2014-07-07 11:27:34 +02:00
Thibault Saunier
52e39a4fcb validate:scenario: Do not care about the position if we are not at least in PAUSED state
At that time the position query will be meaningless so we should just go to the next
action.
2014-07-07 11:27:34 +02:00
Thibault Saunier
4227655db1 validate: Handle MXF files 2014-07-07 11:27:34 +02:00
Thibault Saunier
1c2d31dd2f validate:media-check: Changes in tags detection are not fatal issues 2014-07-07 11:27:34 +02:00
Thibault Saunier
7d23d75edb validate:launcher Add video mixing tests
+ Move default_testsuite.py to validate_testsuite.py as we are now
exposing tests that are not enabled by default
2014-07-07 11:27:34 +02:00
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