Thibault Saunier
b1cf1ffebd
validateflow: Add a way to configure when to generate expectations
...
By default, generate them whenever the file is missing but adding a way
to override that with `validateflow,generate-expectations=true` to force
regenerating them or setting `validateflow,generate-expectations=false`
to disallow generating them (on CI servers for example)
Also update the validateflow documentation to take that into account
and remove references to pipeline.json file which is now gone!
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/200 >
2020-05-28 17:17:10 -04:00
Thibault Saunier
3264de6751
scenario: Minor cleanup around pipeline change state management
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/198 >
2020-05-27 19:20:16 +00:00
Thibault Saunier
e1ad840494
scenario: Mark seek as done only when reaching next state
...
There is a race where following actions could generate a
flush-start/flush-stop dance but the state change resulting from the
seek hasn't been committed yet, leading to the ASYNC_START being
ignored by GstBin since its pending_state is not VOID when receiving
the ASYNC_START message.
Conceptually it is totally correct to consider an action done when
the state change of the pipeline is stabilized..
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/198 >
2020-05-27 19:20:16 +00:00
Thibault Saunier
e49876bb05
validate:launcher: Stop wrongly erroring on testsuite loading failure
...
When the testsuite was actually already loaded as the .py
file was explicitly passed in
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 19:16:27 -04:00
Thibault Saunier
9f11ba5937
validate: Fix loading configs from a caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 19:16:26 -04:00
Thibault Saunier
cf0f1df314
flow: Use bat to color diffs when possible
...
Adding a function to check if can output colored logs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 19:16:26 -04:00
Thibault Saunier
91ac75aa4c
launcher: check: Properly set PLUGIN_PATH and registry when running in gst-build
...
This makes registry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 19:16:26 -04:00
Thibault Saunier
90cc65f7ee
launcher: Ensure that -j tests run in parallel when running forever
...
So that you can reproduce the issue you want faster!
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 17:19:36 -04:00
Thibault Saunier
c9318639d7
docs: Update gst-validate-launcher documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 17:19:36 -04:00
Thibault Saunier
766f339fb8
launcher: Add support for running tests inside rr
...
Allowing us to easily run the tests forever and then replay the
failures!
https://rr-project.org/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/197 >
2020-05-26 17:19:36 -04:00
Guillaume Desmottes
f78997ec2e
validate: add missing gir annotation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/194 >
2020-05-25 14:42:01 +00:00
Edward Hervey
5e2df60422
validate-scenario: Initialize variable correctly
...
ret needs to be always reset to FALSE *before* checking attempting to load the
individual files. Otherwise there's the possibility it would silently accept an
invalid scenario name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/196 >
2020-05-22 18:00:04 +02:00
Edward Hervey
8697663d8c
validate-scenario: Remove unused variable
...
We only need to check whether the field is present and of a given type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/196 >
2020-05-22 17:56:40 +02:00
Thibault Saunier
fa95de073b
validate: Stop using g_file_peek_path
...
It was introduced in 2.56 so is too recent
Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/issues/51
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/195 >
2020-05-15 11:28:10 -04:00
Thibault Saunier
0ffcacf325
validate: Add including support in the structure file parser
...
Adding proper error reporting support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/191 >
2020-05-11 17:03:49 -04:00
Thibault Saunier
d203f4251b
validate: utils: Do not try to replace vars in debug info fields
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/190 >
2020-05-08 20:21:16 -04:00
Thibault Saunier
dcb719d6cc
validate: Fix parsing validate tests files with vars on windows
...
And ensure that we escape windows path in variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/190 >
2020-05-08 20:21:16 -04:00
Thibault Saunier
884c45ff3e
validate:launcher:check: Add support for gst-tester-1.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189 >
2020-05-07 09:39:16 -04:00
Thibault Saunier
b669bb0327
validate: Add support for known-issues in the .validatetest
...
And add some tests about remaining actions failures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189 >
2020-05-07 09:36:03 -04:00
Thibault Saunier
da390689c9
validate: Ensure a meta structure is found in test files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189 >
2020-05-07 00:31:45 -04:00
Thibault Saunier
619efa56a7
validate:scenario: Check remaining action on stop, not EOS
...
When ignoring EOS, on addition action could end up not being executed
and no error was reported which was wrong.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/189 >
2020-05-07 00:31:45 -04:00
Thibault Saunier
e00ed70925
validate: Fix rendering destination directory path creation
...
We were ending up creating file:/some/path in cwd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/187 >
2020-05-06 22:54:59 +00:00
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
Thibault Saunier
a1a2efc970
validate:flow: Handle some more segment fields filtering
...
Those slept through when implementing filtering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/188 >
2020-05-05 23:09:31 -04:00
Thibault Saunier
04a648e345
ssim: Minor improvements on the way we attach to pads
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/174 >
2020-04-30 12:40:13 -04: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
a99cbecd98
validate:launcher: Mark some more tests as too long for valgrind
2020-04-29 08:24:18 -04:00
Bilal Elmoussaoui
91bf685fd5
Apply suggestion to debug-viewer/org.freedesktop.GstDebugViewer.appdata.xml.in
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/155 >
2020-04-28 15:05:40 +00:00
Bilal Elmoussaoui
5a8cf59451
Metainfo: backport flathub fixes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/155 >
2020-04-28 15:05:40 +00: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
b7202e2f16
validate:flow: Sensibly improve stdout
2020-04-27 10:52:48 -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