Commit graph

1871 commits

Author SHA1 Message Date
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
0b41b8a8c0 validate:launcher: Add a generator to generate test for frame accurate seeking 2020-03-12 12:35:45 -03:00
Thibault Saunier
30ceb4ef40 validate:ssim: Use stream time to reference frames 2020-03-11 16:36:20 -03:00
Thibault Saunier
289c87de5d validate:ssim: Don't check neighbor frames when comparing exact same frame 2020-03-11 16:36:20 -03:00
Thibault Saunier
d816853838 validate:ssim: Enhance debugging message when similarity do not match
Printing out where the diff image file is
2020-03-11 16:36:20 -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
78f2026467 validate:ssim: Avoid segfaults trying to attach pads without a template 2020-03-11 16:35:23 -03:00
Thibault Saunier
d654a4049b validate:scenario:Handle GStreamer serialized timestamps 2020-03-11 16:35:23 -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
688265f1a0 validate:media-check: Fix wrong exit code
There are code paths where the runner doesn't contain any issue but an error has already been reported
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
eda925a334 validate:launcher: Generate profiling data even if an exception happens 2020-03-06 15:36:10 -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
Nirbheek Chauhan
d0e6c8a78c validate: Don't use sprintf + glib format modifiers
We do not have a way to know the format modifiers to use with string
functions provided by the system. `G_GUINT64_FORMAT` and other string
modifiers only work for glib string formatting functions. We cannot
use them for string functions provided by the stdlib. See:
https://developer.gnome.org/glib/stable/glib-Basic-Types.html#glib-Basic-Types.description

```
 ../validate/plugins/flow/formatting.c: In function 'format_number':
../validate/plugins/flow/formatting.c:68:22: error: unknown conversion type character 'l' in format [-Werror=format=]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/gtypes.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/galloca.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib.h:30,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/gstreamer-1.0/gst/gst.h:27,
                 from ../validate/plugins/flow/formatting.h:26,
                 from ../validate/plugins/flow/formatting.c:30:
/builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here
 #define G_GUINT64_FORMAT "llu"
                            ^
../validate/plugins/flow/formatting.c:68:22: error: too many arguments for format [-Werror=format-extra-args]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
../validate/plugins/flow/formatting.c:68:22: error: unknown conversion type character 'l' in format [-Werror=format=]
In file included from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/gtypes.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib/galloca.h:32,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/glib-2.0/glib.h:30,
                 from /builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/include/gstreamer-1.0/gst/gst.h:27,
                 from ../validate/plugins/flow/formatting.h:26,
                 from ../validate/plugins/flow/formatting.c:30:
/builds/nirbheek/cerbero/cerbero-build/dist/windows_x86_64/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here
 #define G_GUINT64_FORMAT "llu"
                            ^
../validate/plugins/flow/formatting.c:68:22: error: too many arguments for format [-Werror=format-extra-args]
   sprintf (dest_str, "%" G_GUINT64_FORMAT, number);
                      ^~~
```

Needed for https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/419
2020-02-27 19:32:21 +05:30
Thibault Saunier
77b6bf2050 meson: remove vs_module_defs
The GST_EXPORT should handle it.
2020-02-26 14:21:52 -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
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
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
db2acf1cdf validate:flow: Make field filtering in what is logged more generic
Instead of forcing it on event, allow specifying filters on anything
we log, meaning also buffers
2020-02-13 00:11:45 +00:00
Thibault Saunier
39d6c7760e validateflow: Add a logged-event-fields configuration 2020-02-13 00:11:45 +00: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
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
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
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
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
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
Edward Hervey
43815541d8 validate-scenario: Initialize variable
We could end up using it uninitialized

CID: 1444920
2019-11-27 15:33:14 +01: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