Commit graph

480 commits

Author SHA1 Message Date
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
Philippe Normand
3351807107 validate/launcher: Ensure the HTTP server is started when a pipeline needs it
Pipelines declared in gst-integration-testsuites can rely on the validate HTTP
server, so when an URI pointing to it is detected, advertise the server as
needed before starting the test.

For this to work the test scenario should explicitely declare the pipeline uri,
as shown in this example:

    "some_playbin3":
    {
        "pipeline": "playbin3 uri=%(uri)s video-sink=%(videosink)s",
        "config": [
            "%(validateflow)s, pad=sink:sink"
        ],
        "scenarios": ["play_15s"],
        "uri": "http://127.0.0.1:%(http-server-port)s/defaults/html/foo.html"
    }
2019-08-21 08:37:38 +01:00
Thibault Saunier
8e01e03364 validate:launcher: Allow passing any extra_data in json test definition
This means that we can now pass any extra key that `populate_tests`
expects, meaning any key expected by FakeMediaDescriptor and
a few other keys supported by the methods such as
`expected-issues` and `extra_env_vars`
2019-08-20 13:55:52 +00:00
Thibault Saunier
556bc0bb4f launcher: Raise an exception when provided scenario can't be found 2019-08-19 10:33:20 +00:00
Mathieu Duponchelle
5a068bff72 validate: Update blacklisting reason for fast forward rtsp
While https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/14
was merged, the client side (in particular rtpbasedepayload) still
isn't expected to work appropriately
2019-08-01 21:04:12 +02:00
Mathieu Duponchelle
93114b55ab json tests: assume all user pipelines can seek reverse
When doing a targeted test, it is up to the user to make sure
their pipeline + scenario behaves correctly.
2019-07-26 02:26:20 +02:00
Thibault Saunier
ba4275ad00 validate:launcher: Pass the right timeout_factor is passed to subprojects 2019-07-08 23:37:31 -04:00
Thibault Saunier
3343f166da validate:launcher: Move get_fakesink_for_media_type to utils
So it can be reused in other apps like GES
2019-06-26 12:09:03 -04:00
Thibault Saunier
7d471ee25e validate: Set 'LOGSDIR' variable in scenarios and config files
Implementing support for variables in config files.
2019-06-23 03:10:34 -04:00
Thibault Saunier
a994dd0ca8 validate:launcher: Strip env vars in command line outputing verbose
But activate if activating verbosity more than once
2019-06-18 18:13:03 -04:00
Thibault Saunier
010e18862f validate:launcher: Avoid repeating failure info in summaries 2019-06-11 21:03:56 +00:00
Thibault Saunier
7161b21334 validate:launcher: Do not dump to big log files
Avoiding ' The script exceeded the maximum execution time set for the job' in GitLab
2019-05-13 11:37:38 -04:00
Tim-Philipp Müller
22e179cbc1 launcher: testsuites: skip systemclock stress tests
These are very flaky when the build bots are under load.
2019-05-04 21:00:33 +00:00
Thibault Saunier
0544232d73 validate:check: Mare nle test_simple_operation as long 2019-04-17 18:10:12 -04:00
Thibault Saunier
fe6443090c validate:check: Fix some mistakes translating regex from gitlab-ci.yml 2019-04-17 18:10:12 -04:00
Thibault Saunier
d60ea5da63 validate:launcher: Set ORC_CODE=backup when running gst unit tests under valgrind 2019-04-17 11:04:45 -04:00
Thibault Saunier
1fb0d73947 validate:check: Blacklist and mark some GES tests as long under valgrind 2019-04-17 10:43:42 -04:00
Thibault Saunier
96f996b66a validate:testsuites: Add unit tests blacklists 2019-04-17 10:30:02 -04:00
Thibault Saunier
b9cb5db869 validate:launcher: Ignore possibly lost for now 2019-04-17 09:06:55 -04:00
Mathieu Duponchelle
96361bd426 TestsManager: _add_blacklist in set_default_blacklist
Otherwise test suites that want to set_default_blacklist and
add tests in setup_tests were seeing their blacklist ignored.

Split up and rename set_blacklists() to complete the refactoring
2019-04-17 02:31:30 +02:00
Mathieu Duponchelle
61d0605852 Check indirect leaks 2019-04-17 02:29:36 +02:00
Thibault Saunier
3fa393c498 validate:launcher: Do not copy logs for non flaky tests
That looks weird for users and is incorrect
2019-04-15 16:13:52 -04:00
Thibault Saunier
81b1368237 validate:launcher: Fix printing debug logs URIs 2019-04-15 11:50:16 -04:00
Thibault Saunier
e182272262 validate:launcher: Do not stop tcp server when reiterating tests runs 2019-04-12 12:33:25 -04:00
Thibault Saunier
d709cb54a9 validate:launcher: Associate issues with the bug they come from
Making it simpler to follow when print the known issues
2019-04-12 10:13:15 -04:00
Thibault Saunier
81f198f812 validate:launcher: Indent known issues printing 2019-04-12 10:12:45 -04:00
Thibault Saunier
e1625da9ed validate:launcher: Print the number of times the test was run when --forever 2019-04-11 10:38:46 -04:00
Thibault Saunier
0a56447bcc validate:launcher: Add python suppression files 2019-04-11 13:17:14 +00:00
Thibault Saunier
d053a07706 validate:launcher: Use md viewer to dump md logs if avalaible
And enhance the markdown
See https://github.com/axiros/terminal_markdown_viewer
2019-04-11 13:17:14 +00:00
Thibault Saunier
ebf0844d2c validate:launcher: Avoid forking when running gstcheck tests in gdb 2019-04-11 13:17:14 +00:00
Thibault Saunier
8639dc528c validate:launcher: Add an option to output HTML if commonmark is installed 2019-04-11 13:17:14 +00:00
Thibault Saunier
f7517e503c validate:launcher: Do not user python 3.5 features 2019-04-11 13:17:14 +00:00
Thibault Saunier
1294cb7b9b validate:launcher: Move all logs to one single log files to be displayed to end user 2019-04-11 13:17:14 +00:00
Thibault Saunier
446f1d8197 validate:launcher: Make extra_logfiles a set and fix their names 2019-04-11 13:17:14 +00:00
Thibault Saunier
2fcdc27c3a validate:launcher: Remove spurious print 2019-04-11 13:17:14 +00:00
Thibault Saunier
adbbfa1ec1 validate:launcher: Remove noise about empty known issues in logs 2019-04-11 13:17:14 +00:00
Thibault Saunier
148bb081b8 validate:launcher: Fix printing application name in the logs 2019-04-11 13:17:14 +00:00
Thibault Saunier
787939f750 validate:launcher: Add a list of well known subpression files from gst-build subprojects
Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/issues/38
2019-04-03 13:38:42 +00:00
Thibault Saunier
92f1979ec9 validate: Add a mecanism to rerun failling tests
And add a way to mark some 'flakes' as tolerated
2019-04-03 13:38:42 +00:00
Thibault Saunier
520c2102cc validate:launcher: Reset process on clean 2019-04-03 13:38:42 +00:00
Thibault Saunier
e279b1ff56 validate:launcher: Dump applied known issues in the logs 2019-04-03 13:38:42 +00:00
Thibault Saunier
de007b6819 validate:launcher: Put all logs inside the failure node
Pleasing gitlab CI reporting system
2019-04-03 13:38:42 +00:00
Thibault Saunier
8da6ecef13 validate:launcher: By default use cpu_count / 2 2019-04-03 13:38:42 +00:00
Thibault Saunier
b0cbae0fa7 validate:launcher: Print name of the test to be debugged
When --debug was passed
2019-04-03 13:38:42 +00:00
Thibault Saunier
abaa382847 validate: Generate dot files and link to them on CI 2019-04-03 13:38:42 +00:00
Thibault Saunier
01aa026e5a validate:launcher: Try to send SIGINT before killing processes
Giving a chance for validate to print reports
2019-04-03 13:38:42 +00:00
Thibault Saunier
28d413f059 validate:launcher: Add a way to say that a known issues can happen several times 2019-04-03 13:38:42 +00:00
Thibault Saunier
ba69336bf8 validate:launcher: Remove now useless code to check sending EOS brings down the pipeline
If we want to make an exception we can use known issues these days
2019-04-03 13:38:42 +00:00
Thibault Saunier
d73e283691 validate:launcher: Be a bit more resilient in GstValidateListener
And handle exception decoding received json info
2019-04-03 13:38:42 +00:00
Thibault Saunier
374917b9c4 validate:launcher: Add a way to require a non fatal error when matching a fatal one 2019-04-03 13:38:42 +00:00
Thibault Saunier
f2e180e51f validate:launcher: Add a way to force coloration 2019-04-03 13:38:42 +00:00
Thibault Saunier
ddb81f29e8 validate:launcher: factor out TTY check and enhance iteration output 2019-04-03 13:38:42 +00:00
Thibault Saunier
0a2af1b027 validate:launcher: Add generated known issue list to the logs instead of printing then 2019-04-03 13:38:42 +00:00
Thibault Saunier
c8a3b34a3a validate:launcher: Add a way to force stdout coloring 2019-04-03 13:38:42 +00:00
Thibault Saunier
ac7efe9500 validate:launcher: Rework expected-issues data format
Instead of having the issues centered on the test classes, they
are now focusing on the "bug".

And harmise names on `expected_issue` not `expected_failures`
2019-04-03 13:38:42 +00:00
Thibault Saunier
6a4639352b validate:launcher: Allow printing log URL on a CI server 2019-04-03 13:38:42 +00:00
Thibault Saunier
06b8f23a34 validate:launcher: Fix getting skip-parser when generating media descriptor
On old version it didn't exist
2019-04-03 13:38:42 +00:00
Thibault Saunier
19dfd63408 validate:launcher: Review default for --mute
`--mute` is now True by default and added `--unmute` if the user wants
to have visual/audio feedback. It was really annoying to have thousand
of window pop up by default
2019-04-03 13:38:42 +00:00
Thibault Saunier
a77825ecbc validate:launcher: Allow referencing known issue by exiting signal names 2019-04-03 13:38:42 +00:00
Thibault Saunier
7dbdb84ca8 validate:launcher: Output markdown as much as possible 2019-04-03 13:38:42 +00:00
Thibault Saunier
3a826e1e3d validate:launcher: Implement bug checks for gitlab
And use new gitlab urls for all the bugs
2019-04-03 13:38:42 +00:00
Thibault Saunier
8d00a74f1a validate:launcher: Enhance and standardize output 2019-04-03 13:38:42 +00:00
Thibault Saunier
ad28bffa20 validate:launcher: Take into account the timeout when checking EOS 2019-04-03 13:38:42 +00:00
Thibault Saunier
6f9e5d4494 Pass python files through autopep8 2019-04-03 13:38:42 +00:00
Thibault Saunier
091ce6bcfe validate:launcher: Help the user add known issues
And make it clear a bug should be opened about it
2019-04-03 13:38:42 +00:00
Thibault Saunier
b4e96b4f4e validate:launcher: Enhance dumping log files output 2019-04-03 13:38:42 +00:00
Thibault Saunier
3d5099ee41 validate:launcher: Use gst-integration-testsuites subproject as default testsuite repo if avalaible 2019-04-03 13:38:42 +00:00
Thibault Saunier
6310145a44 validate:launcher: Set CK_MULTIPLIER=10 in GstCheck tests when using valgrind
Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/issues/39
2019-03-22 11:23:08 -03:00
Thibault Saunier
773f2e456c validate:launcher: Move '_format_config_template' to the utilities
So it can be reused by GES tests
2019-03-11 18:14:23 -03:00
Charlie Turner
a443b921a2 validateflow: interpolate folder directories into pipeline descriptions.
Allow 'pipeline' fields in validateflow to be interpolated with
directory keys like $(medias)s.
2019-02-21 13:57:17 +00:00
Guillaume Desmottes
da22878a5f validate: baseclasses: include env variable in logged command
We were missing the env variables in the command written to the log
file, making it impossible to re-run the test later from the logs.
2019-02-11 15:17:33 +00:00
Thibault Saunier
3d3264b342 Revert "validate:launcher: Cache the result of meson introspect"
This reverts commit 05ce6d3b92.

We can't do that as it breaks meson logic to set envvars
2019-02-10 01:25:52 -03:00
Thibault Saunier
5a6307f913 validate:launcher: Do not sort tests all the time
Do it once only once it is fully populated
2019-02-09 17:25:03 -03:00
Thibault Saunier
05ce6d3b92 validate:launcher: Cache the result of meson introspect
Running it takes quite some time and we can easily cache it.
2019-02-09 17:24:13 -03:00
Alicia Boya García
e96f2ca714 New validate plugin: validateflow
validateflow can be used to check the buffers and events flowing through
a custom pipeline match an expectation file. This can be used to test
non-regular-playback use cases like demuxers handling adaptive streaming
fragment pushing.

This patch includes also new actions used for these cases:
`appsrc-push`, `appsrc-eos` and `flush` (plus `checkpoint`, which is
only available with validateflow).
2019-02-07 18:19:22 +00:00
Guillaume Desmottes
0c83ff56dd baseclass: add_validate_config: don't use self.proc_env
self.proc_env is created when starting the test but this API can be call
by generator when creating the test.
2019-02-07 17:13:02 +01:00
Thibault Saunier
e8162cc957 validate:launcher: Error out in the check testsuite if rebuilding failed 2019-02-06 21:14:13 +00:00
Mathieu Duponchelle
90c2d32030 Scenarios: override seek flags for RTSP tests
Our RTSP server is not accurate, it makes no sense to perform
accuracy checks on the client-side segments.
2019-02-02 02:08:58 +01:00
Thibault Saunier
71d2e3f418 validate: Let people know the testsuite starts running
Now that we do not print infos about successful tests when redirecting.
2019-02-01 01:24:33 -03:00
Thibault Saunier
35003bc25b validate:launcher: Do not print passing tests if not running in a tty 2019-01-31 23:47:11 -03:00
Thibault Saunier
78781de913 validate:launcher:punittest: Raise an exception if a testsuite can't be loaded 2019-01-30 15:57:13 -03:00
Mathieu Duponchelle
d5e3f4d31c TestsManager: stop displaying blacklisted tests on stdout
It's basically spam, better suited to the debug logs
2019-01-30 00:27:32 +00:00
Thibault Saunier
440055214a validate:launcher: Never print lines larger than the terminal 2019-01-29 16:09:30 -03:00
Jordan Petridis
31164cf0a6 validate: Report the full test name in the xunit file
Looks like gitlab prefers this way of representing tests as it
displays only the name field in its junit reports.

Close #32
2019-01-26 16:55:23 +00:00
Thibault Saunier
2551e8750e validate:launcher: Make baseclasses.py pep8 compliant 2019-01-26 15:54:00 +00:00
Thibault Saunier
9b69bcad08 validate:launcher: Handle launching launching a sub launcher
If you use validate-launcher in a meson testsuite, those test now
gets integrated as one unique testsuite (with a pretty long namespace).
2019-01-26 15:54:00 +00:00