Commit graph

686 commits

Author SHA1 Message Date
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