Commit graph

465 commits

Author SHA1 Message Date
Edward Hervey
2dd165b4ec launcher: Limit copies of massive debug logs in markdown file
When debugging is activated, we could end up with log files ranging in the
multi-megabyte or even gigabyte range. Copying those is expensive from a cpu/io
point of view in addition to clobbering the storage.

Instead of always copying those files, check if they are smaller than 500kB. If
not, don't copy them and instead provide a link to their location.

Fixes #52

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/203>
2020-06-03 09:39:11 +02:00
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
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
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
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
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
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
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
a99cbecd98 validate:launcher: Mark some more tests as too long for valgrind 2020-04-29 08:24:18 -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
Nicolas Dufresne
856944c960 validate-launcher: Fix syntax error
This error prevents downloading assets from scratch. This regression was
introduced by MR !145 / commit 2581fef684
2020-04-13 15:38:05 -04:00
Thibault Saunier
1468b57430 validate:launcher: Fix reporting on failure when running forever/fatal 2020-03-12 12:35:45 -03:00
Thibault Saunier
0b41b8a8c0 validate:launcher: Add a generator to generate test for frame accurate seeking 2020-03-12 12:35:45 -03:00
Thibault Saunier
2e45db5ba4 validate:launcher: Enhance support for running ssim tests
Using a special 'ssim' variable in pipeline dicts to activate it
Similare to what we do for validateflow
2020-03-11 16:36:20 -03:00
Thibault Saunier
b4c1424ea2 validate:launcher: Add support for skipped media info files
Those are skipped to generate tests by default but are updated when
required, this will allow us to generate specific test on demand for
those
2020-03-11 16:36:16 -03:00
Thibault Saunier
48e007cb29 validate:launcher: Never try to load a testsuite with the same name from different locations 2020-03-06 16:05:38 -03:00
Thibault Saunier
080fdf8e2f validate:launcher: Add support for the imagesequence protocol 2020-03-06 16:05:38 -03:00
Thibault Saunier
e4ea35d25c validate:launcher: Fix reporting on failure when running forever/fatal 2020-03-06 15:59:17 -03:00
Thibault Saunier
e7b8ba2d68 validate:launcher: Cache GstValidateMediaDescriptor to avoid reparsing .media_info
Saving another second at startup
2020-03-06 15:59:17 -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
ca93a4b704 validate:launcher: Fix printed test number 2020-03-06 15:36:10 -03:00
Thibault Saunier
d1c3607bc3 validate:launcher: Allow passing configs paths when loading from dictionary
The same way we allow it for scenarios
2020-03-06 15:36:10 -03:00
Thibault Saunier
3d3a5bee25 launcher: Do not dump output on known issues
And remove dead code
2020-02-26 12:05:39 -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
2f135d430b validate:launcher: Handle validate report bigger than allowed by the socket
This almost never happens but I had a case where we had a report
with a GstSample in the caps that were reported leading to an
error printed.
2020-02-13 00:11:45 +00:00
Thibault Saunier
d17c2ff65c validate:launcher: Reference exception in a var as we use it in the handling 2020-02-13 00:11:45 +00:00
Thibault Saunier
d3c6611b76 validate:launcher: Fix defining several scenario with a same config
When generating tests from dictionary the dict format allows passing
several scenario for a same config and pipelines, but this was breaking
the case where expected flow is different with each config, instead we
should generate one config per scenario, fixing the expectation files
generated.
2020-02-06 14:33:56 -03:00
Thibault Saunier
600c5a27ed validate:launcher: Print the duration of the test run in the logs 2020-02-04 16:09:36 -03:00
Stéphane Cerveau
a2e926ff0a gst-validate-launcher: separate known error from passed tests
Introduce known_error in statistics to keep in mind the expected
error result.
2020-01-24 14:52:49 +00:00
Stéphane Cerveau
2581fef684 gst-validate-launcher: update documentation
Use the new api to create your custom testsuite.
Fix some broken links and enhance the logging system.
2020-01-24 14:52:49 +00:00
Nicolas Dufresne
1bc8e92efc launcher: Allow partionning the tests
This introduce new command line options, --parts and --part-index. When
--parts is set to a value larger then 1, the tests will be split in the
same number of group. The group number identified by --part-index will
be executed.

This is being added in orther to support gliblab CI parallel feature.
2020-01-15 10:04:11 -05:00
Thibault Saunier
e4ca67938e validate:launcher: Try to dump logs with bat if avalaible
We got to many issues with mdv, it seems not to be maintained
bat is a very good replacement.
2020-01-06 13:14:59 +00:00
Brady J. Garvin
06822b519b validate:launcher: Support mixed str/bytes control sequences.
It is not safe for `_preformat_levels` to assume that all of the fields in a
`TerminalController` have the same type; at least in my environment, some of
these fields are populated with `bytes` while others remain strings.

This change conditionally applies decoding to each control sequence separately
using a helper function `_as_string`.  As a side-effect, it also eliminates some
code repetition in `_preformat_levels`.

Closes #50.
2020-01-05 14:09:07 -06:00
Thibault Saunier
195d3a3edc validate:launcher: Enhance progress reporting using a progress bar
This also allows us to properly report progress on the CI
2019-12-30 16:52:22 +00:00
Thibault Saunier
d543375948 validate:launcher: Take our timeout factor into account for gstcheck 2019-12-30 15:56:02 +00:00
Mathieu Duponchelle
27677d4e10 check: unblacklist removed systemclock tests
See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/348
2019-12-23 10:27:11 +01:00
Mathieu Duponchelle
48faa5944b check: unblacklist gstreamer.pipelines_parse_launch.delayed_link
It should not be flaky anymore after
https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/343
2019-12-14 10:45:30 +01:00
Thibault Saunier
1f67876928 validate:launcher: Use python dict for pipeline description 2019-12-10 13:02:16 +00:00
Thibault Saunier
562750213f validate: launcher: Make encoding extra check use common code path
Reusing the reporting infrastructure instead of shurtcuting it
2019-11-20 18:07:48 -03:00
Thibault Saunier
8a6ee4841b validate: Add vp9 transcoding tests
Making sure to encode small frames as vp9enc is slow.
2019-11-20 18:07:47 -03:00
Thibault Saunier
80de180cc7 validate:launcher: Avoid clashes when importing testsuite
This introduce an hard dependency on python >= 3.5, same as meson
2019-11-11 18:57:27 -03:00
Jordan Petridis
6b907ba036
check: blacklist gst-plugins-good.elements_splitmux.test_splitmuxsink$
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/626
2019-11-11 14:25:16 +01:00
Stéphane Cerveau
998185acbc gstvalidate: fix GstValidateRTSPMediaDescriptor typo 2019-11-06 18:21:11 +01:00
Víctor Manuel Jáquez Leal
37a0dbfebf validate: blacklist gstreamer-vaapi checks
They still can be checked by running the tests explicitly.
2019-10-25 12:26:58 +02:00
Tim-Philipp Müller
280321dee1 validate: remove autotools build 2019-10-15 00:24:00 +01:00
Thibault Saunier
2153d82f34 validate:launcher: Fix the 'can-happen-several-times' known issue field 2019-10-02 19:22:31 +00:00
Thibault Saunier
461e479802 validate:launcher: Do not hardcode pathsep 2019-08-28 15:34:31 -04:00