Thibault Saunier
af3006dc12
validate: Plug some leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187 >
2020-05-06 22:54:59 +00:00
Thibault Saunier
bb0d81fd4c
validate: Add details on all g_log message reports.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187 >
2020-05-06 22:54:59 +00:00
Thibault Saunier
b65b2bc2fe
validate: Add a mechanism to mark tests as skipped
...
And use it when a plugin is missing and the user didn't ask for
failure when it happens
And use the TAP[0] synthax to report it
[0]: https://testanything.org
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187 >
2020-05-06 22:54:59 +00:00
Thibault Saunier
b1e9e409fd
validate: Enhance issue reporting from structures
...
And properly bail out when required
This is preparatory work for gst-test in core which will use the TAP
protocol
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187 >
2020-05-06 22:54:59 +00:00
Edward Hervey
fb71bf8fab
validate-scenario: Refactor seek handling
...
* Store all seek values into a list of pending seeks instead
of hardcoding some values
* Store all segments that sinks received
* Match segments to seeks when all sinks received segments with
the same seqnum
* Detect when a seek did *not* result in segments with identical
matching seqnums
Should allow checking for all types of seek handling, including
flush-less seeks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Edward Hervey
5dafe4bb64
validate-report: Add new check for top-level seek
...
This issue is to detect seeks that don't result in segments
with identical seqnums. This check can be done at the top-level
scenario
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Edward Hervey
e05d4ac8f5
validate-pad-monitor: Post GstBaseSink SEGMENT on the bus
...
Allows higher-level bin or app (like validate-scenario) to know
what each sink currently has in terms of SEGMENT.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Edward Hervey
854826501c
validate-element-monitor: Detect basesink elements
...
And add a macro
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Edward Hervey
4080cd9749
validate-scenario: Add logging for scenario lock taking/releasing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Thibault Saunier
1e8a0dac2a
pad-monitor: Reliably track pending seeks
...
Instead of overriding all values when receiving a seek, store
them as a list of expected values.
This allows handling several seeks in a row, like non-flushing
seeks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:12 -04:00
Thibault Saunier
ec2a139246
validate: Allow overidding issue severity from configs
...
Refactoring sensibly to allow getting configs outside the `core` namespace
and outside plugin names.
The `GST_VALIDATE_OVERRIDE` env variable should probably be removed
all together at some point.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185 >
2020-04-29 10:13:51 -04:00
Thibault Saunier
0e85d15da0
validate: Add an option to describe issue types
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185 >
2020-04-29 10:13:51 -04:00
Thibault Saunier
66d29a31fd
validate: Show the exact file line when error out in structure files
...
And minor stdout enhancements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/185 >
2020-04-29 08:33:21 -04:00
Thibault Saunier
640469ce0c
validate: Do not check pulling thread when thread is paused
...
With decodebin3 we have cases where a task has been started in
the `typefind` element but the demuxer is the one pulling (from
its own thread)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/183 >
2020-04-28 10:17:02 -04:00
Thibault Saunier
75d30ae2d3
validate: Add a check-position action type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182 >
2020-04-27 17:00:12 -04:00
Thibault Saunier
47f59ad731
validate:scenario: Enhance failures messages
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182 >
2020-04-27 17:00:12 -04:00
Thibault Saunier
9840417a87
validate: Add a way to run a TestClock in scenarios
...
A TestClock will be used automatically when a scenario has a
`crank-clock` action.
And make `validate` and `debug-viewer` options features in meson,
no reason they weren't and now we require gst-check to build validate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/182 >
2020-04-27 17:00:12 -04:00
Thibault Saunier
bf952d3c8b
validate: Introduce the concept of "Test files"
...
This way we can have a single file that wraps scenarios,
`gst-validate-1.0` arguments, as well as a configuration.
It changes the name of `description` of scenarios to use `meta`
The goal is to replace tests describes in python with dictionary
to fully self contained `.validatetest` files which look like:
```
meta,
handles-states=true,
ignore-eos=true,
gst-validate-args = {
"videotestsrc pattern=blue ! video/x-raw,format=I420,framerate=1/1 ! timeoverlay ! $(videosink) name=videosink allocation-meta-flags=0",
},
configs = {
"$(validateflow), pad=videosink:sink, buffers-checksum=true, ignored-fields={\"buffers=meta\", }",
}
play
seek, start=0.0, stop=5.0, flags=accurate+flush, rate=1.0
crank-clock, expected-elapsed-time=0.0
crank-clock, repeat=4, expected-elapsed-time=1.0
crank-clock, expected-elapsed-time=1.0
stop, on-message=eos
```
2020-04-27 16:03:33 -04:00
Thibault Saunier
9aff82d6bb
validate: Fix criticals around NULL structure usage
2020-04-27 10:52:47 -04:00
Thibault Saunier
7d3ada4f4e
validate: Fix 'repeat' parameter on non ASYNC action types
2020-04-27 10:52:47 -04:00
Thibault Saunier
05815d4b4f
validate:scenario: Do not consider action with 'on-message' as on addition
2020-04-23 19:57:54 -04:00
Thibault Saunier
2b32a68df1
validate: report: Handle when reporting NULL action
...
And add information about the action repeat state.
2020-04-23 19:57:54 -04:00
Thibault Saunier
449674459a
validate: Handle comments in multiline expressions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/179 >
2020-04-22 13:02:29 -04:00
Thibault Saunier
bf24fd3d74
validate: Fix multi variable in a single structure field
...
We were keeping using the GMatchInfo even after modifying the string
which is explicitly stated as invalid in the GRegex documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/179 >
2020-04-22 12:47:20 -04:00
Thibault Saunier
58de8e5330
validate:scenario: Fix 'on-message' actions execution
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/177 >
2020-04-21 20:45:51 -04:00
Thibault Saunier
4f7217b0b3
validate: Add { and [ as line continuation markers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/177 >
2020-04-21 15:28:00 -04:00
Nicolas Dufresne
4bc9f73650
utils: Fix double free in error case
...
This was detected by Coverity. The content point would have been freed gain in
the done: label.
CID 1461289
2020-04-07 18:33:08 -04:00
Thibault Saunier
81770eda7e
validate: Use gst_print for validate report messages
2020-03-23 21:28:45 -03:00
Thibault Saunier
9b260a1ec6
validate: Plug some leaks
...
And add some valgrind suppression for fontconfig
2020-03-12 12:35:45 -03:00
Thibault Saunier
f24ca37794
validate:scenario: Make the action->prepare function return a GstValidateExecuteActionReturn
...
Implementers might want to report the error themselves
2020-03-12 12:35:45 -03:00
Thibault Saunier
7898d5b347
validate: Add a way to check last frame number
...
This introduces a new 'timecode-frame-number' in the 'check-last-sample'
action type se we can verify the number of output frames.
2020-03-12 12:35:45 -03:00
Thibault Saunier
ee5e0b396e
validate: Enhance debug message on invalid expression function call
2020-03-12 12:35:45 -03:00
Thibault Saunier
987d125c7e
validate:utils: Allow plain string in gst_validate_utils_get_strv
2020-03-12 12:35:45 -03:00
Thibault Saunier
4ae29ab7ed
validate:ssim: Enhance printing position
...
Adding a new `gst_validate_print_position` method which also
sends messages to the runner if required.
2020-03-12 12:35:45 -03:00
Thibault Saunier
d654a4049b
validate:scenario:Handle GStreamer serialized timestamps
2020-03-11 16:35:23 -03:00
Thibault Saunier
080fdf8e2f
validate:launcher: Add support for the imagesequence protocol
2020-03-06 16:05:38 -03:00
Thibault Saunier
bc622ec658
validate:launcher: Batch inspecting scenarios
...
Removing almost 1 second to start running tests with the default
testsuite
2020-03-06 15:36:10 -03:00
Thibault Saunier
77b6bf2050
meson: remove vs_module_defs
...
The GST_EXPORT should handle it.
2020-02-26 14:21:52 -03:00
Thibault Saunier
1ee84f7c10
validate: Fix leak parsing structure files
2020-02-26 10:52:12 -03:00
Thibault Saunier
d86fa2c44a
validate: Enhance error reporting for errors in struct files
...
Get a sense of files and line numbers in the parsed GstStructure
and take that information when reporting GstValidateAction errors
by letting the user know where the action comes from in the messages.
And accept non-literal string in printing formats.
2020-02-25 16:22:10 -03:00
Thibault Saunier
cf6fb4a7f2
validate: Add a specific error type for check actions
...
And mark it as `NO_BACKTRACE | FULL_DETAILS`, same as for
other action failure types.
2020-02-25 11:28:35 -03:00
Thibault Saunier
2036d8292f
validate: Enhance error reporting when scenario or configs are invalid
2020-02-25 11:28:35 -03:00
Thibault Saunier
1a6f404c5d
validate: Add a flags to issues
...
Currently those allow registering issue that:
- Won't print backtrace as it is sometimes useless info
- Will repeat the details even in smart mode
2020-02-25 11:28:35 -03:00
Thibault Saunier
a12cb70422
validate: Consider ',' as continuing line marker in struct files
...
Since `,` is the separator between fields of GstStructure we can
safely consider that if a line ends with it, the following line
is the logical continuity of the serialized GstStructure.
This makes writing those files more convenient and reading them
more pleasant as we do not need to add extra `\` at end of lines
anymore
2020-02-19 22:20:25 -03:00
Thibault Saunier
27fc0d45a2
validate:scenario: Stop rounding up clocktime values
...
This doesn't make any sense in that context
2020-02-11 15:57:56 -03:00
Thibault Saunier
5b82274f17
validate:flow: Add a way to set the types of events to log/ignore
...
Added two properties to the plugin:
* ignored-event-types: A list of event types to be ignored when logging events
* logged-event-types: A list of event types to be logged when logging events
This commits also moves the "ignored-event-fields" property to using a proper
GstValueList for the list of event fields to be taken into account, instead
of the home grown separated by comas list of string, making the API more
uniform.
This also adds a simple helper method: `gst_validate_utils_get_strv`
2020-02-04 16:09:36 -03:00
Thibault Saunier
0b3ce37eea
validate:scenario: fix some typos
2019-12-30 10:25:55 -03:00
Thibault Saunier
bba35fccf2
validate:scenario: Implement an action to check property value
2019-12-30 10:25:55 -03:00
Edward Hervey
43815541d8
validate-scenario: Initialize variable
...
We could end up using it uninitialized
CID: 1444920
2019-11-27 15:33:14 +01:00
Edward Hervey
4f0bfcc7bb
validate: Fix memory leaks
...
Various structures were being leaked.
2019-11-20 10:19:00 +01:00