Commit graph

2484 commits

Author SHA1 Message Date
Nicolas Dufresne 3762c1a6d2 ci: Port from only: to rules
This fixed CI breakage introduced by gst-ci!247
2020-03-17 11:53:36 -04: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 a055c3272e validate:ssim: Allow specifying file framerate to use frame numbers during comparison 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 06f6fd8de1 validatessim: Avoid having ':' in file names
This is unsupported on windows
2020-03-12 12:35:45 -03:00
Thibault Saunier e4f687e0e7 validate:ssim: Flush cairo surface before getting pixels 2020-03-12 12:35:45 -03:00
Thibault Saunier 1468b57430 validate:launcher: Fix reporting on failure when running forever/fatal 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 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
Philippe Normand b90c097eaa debug-viewer: Display nanoseconds in the timestamp column 2020-03-02 12:55:18 +00: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