Commit graph

1853 commits

Author SHA1 Message Date
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
Aaron Boxer
e1129d2516 validate: add missing G_BEGIN/END_DECLS in validate.h 2019-08-03 20:09:32 -04: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
Tim-Philipp Müller
d8d35241fe validate: fix build with older GLib versions
g_enum_to_string() is only available in newer ones.

Add compatibility workaround for the time being to decouple
this from the decision whether to bump the GLib requirement
and what to bump it to.

https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/199

Fixes #45
2019-07-29 10:08:51 +01:00
Mathieu Duponchelle
7c255a9015 scenario: fix PAUSED position check
The way this was implemented was simply wrong, first of all checking
the position against the segment after a seek in PAUSED by a query
of the pipeline position is of limited interest, and can only work
in forward playback.

Furthermore the check was a huge blob of code that didn't even look
like it was pretending to do a good job at checking the position in
reverse playback.
2019-07-26 02:34:55 +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
aea1082116 scenario: Do not dereference NULL pointer 2019-07-08 23:36:52 -04:00
Thibault Saunier
8498861a28 validate:pipeline-monitor: Connect deep properties notification only when required
This is quite expensive and can lead to an overwhelm mainloop.
2019-07-03 15:42:32 -04:00
Thibault Saunier
258453a169 validate:scenario: Keep a reference to 'description' structure
For it to be reusable outside the scenario
2019-06-28 17:34:23 -04:00
Thibault Saunier
91728c6170 scenario: Use internal sinks when a sink bin can be used to check last-sample 2019-06-26 12:09:03 -04:00
Thibault Saunier
c28c0b5f98 validate:flow: Log buffers even when tracking srcpads 2019-06-26 12:09:03 -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
1e1797ee3a validate: Also monitor ghost pads
Allowing overrides to work on ghost pads too
2019-06-26 12:09:03 -04:00
Thibault Saunier
25a7173b22 validateflow: Add buffers-checksum option to log buffers data checksum 2019-06-26 12:09:03 -04:00
Thibault Saunier
ade8ba3fcb validate: Add SCENARIO_NAME and CONFIG_NAME vars in configs/scenarios 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
b11c5ba185 scenario: Set SCENARIO_PATH/DIR variables in scenarios
And add some documentation about it
2019-06-23 01:54:26 -04:00
Thibault Saunier
0e0928b0b7 scenario: Add a TMPDIR global variables in scenarios
This also adds the notion of global variables which will be useable
in config files too.

And add some documentation about default variables in scenarios
2019-06-23 01:34:41 -04:00
Thibault Saunier
db487b2732 docs: Update validate action types
Include minor fixes in the action types and markdown generator
2019-06-18 18:15:30 -04:00
Thibault Saunier
5b52c38b85 validate: Misc leaks plugging 2019-06-18 18:13:03 -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
314fd2b6de validate:reporter: Show report by branches when doing smart reporting
Meaning that instead of getting 1 "Detected on" line per monitor,
there will be one per "branch" like:

    Detected on <audioconvert1:sink, audioconvert1:src, audioresample1:sink, audioresample1:src, smart-adder-adder:sink_0, smart-adder-adder:src, smart-adder-capsfilter:sink, smart-adder-capsfilter:src, capsfilter2:sink, capsfilter2:src, tee1:sink, tee1:src_0>

Making it simpler to read and a bit less verbose.
2019-06-11 22:35:15 +00:00
Thibault Saunier
010e18862f validate:launcher: Avoid repeating failure info in summaries 2019-06-11 21:03:56 +00:00
Thibault Saunier
0a6c7c64a9 validate:scenario: Move force-key-unit action from the transcoding tool
The action is generally useful but was implemented in a way that
was restricting its usage for no good reason. Refactor the
implementation adding more argument so it can be used in a wider
context, such as uvch264src.

Something like:

``` bash
echo "video-request-key-unit, direction=upstream, all-header=true, count=1, target-element-factory-name=h264parse, srcpad=src, playback-time=1.0" > tmp.scenario && \
echo "stop,playback-time=2.0" >> tmp.scenario && \
gst-validate-1.0 --set-scenario=tmp.scenario uvch264src \
       device=/dev/video0 name=src iframe-period=33 auto-start=true src.vfsrc ! queue ! fakesink \
       src.vidsrc ! queue ! video/x-h264,width=1280,height=720,framerate=30/1 ! h264parse ! fakesink
```

works now.
2019-06-11 21:03:56 +00:00
Thibault Saunier
05f1c6e1b1 validate:scenario: Minor documentation cleanup 2019-06-11 21:03:56 +00:00
Thibault Saunier
f27e98caee validate:pipeline-monitor: Avoid wrong position issue
If the reported position or duration is NONE, do not check its
validity
2019-06-11 21:03:56 +00:00
Thibault Saunier
3ca0b7123e validate: Implement seeking with DEFAULT format 2019-05-27 14:36:28 +00:00
Thibault Saunier
6e9b2c35ce ssim: Report critical issue when override not attached 2019-05-23 11:52:00 -04:00
Thibault Saunier
1e2bf1c841 ssim: Fix the way we handle when an override is attached 2019-05-23 11:35:28 -04:00
Thibault Saunier
85282e53ca docs: Fix docstrings 2019-05-13 17:00:00 -04: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
Thibault Saunier
67d4a39602 validate: inspect: Output valid markdown
So it can be used directly in the documentation Also add a special "all"
argument to `gst-validate-1.0 --inspect-action-type` so we can generate
the documentation for all action types easily.
2019-05-13 11:37:38 -04:00
Thibault Saunier
0a7b23f566 doc: Port to hotdoc
Ideally we want a GstValidate hotdoc plugin... not for now.
2019-05-13 11:37:38 -04:00
Thibault Saunier
8754d0520f meson: Use dep.type_name() when it makes sense 2019-05-13 11:37:38 -04:00
Thibault Saunier
040b71a3d9 doc: Minor fixes 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
Tim-Philipp Müller
751a6d756c validate: fix build on macOS
_Q_VALIDATE_MONITOR was defined twice because it wasn't declared
as extern in the header, so it would be defined as variable in all
included files. This doesn't seem to cause problems on Linux, but
seems to cause build failures on macOS.

Fixes #42
2019-05-04 19:54:16 +01:00
Tim-Philipp Müller
a1881d4dc2 Back to development 2019-04-19 10:42:30 +01:00
Tim-Philipp Müller
477d1e7d4a Release 1.16.0 2019-04-19 00:36:54 +01: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
Tim-Philipp Müller
dd97535391 Release 1.15.90 2019-04-11 01:27:46 +01:00
Tim-Philipp Müller
ad139b1b4f validate: autotools: dist mock decryptor header file 2019-04-11 01:25:52 +01:00
Tim-Philipp Müller
125277c73a validate: win32: add new api to export file 2019-04-11 01:02:14 +01: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
3650e66aec validate: Print error message details in our reports 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
dcfa084fae validate:pad-monitor: Accept any return value when we aggregated FLUSHING while tearing down
Basically nothing guarantees that the set of pads we aggregated the flow
for is the same as the one that was aggregated during the actual data
flow as some pads could have been removed meanwhile.
2019-04-03 13:38:42 +00:00
Thibault Saunier
d8aaf5fdaa validate:scenario: Allow last-sample to not be set when checking it
And instead of failling, wait for it to be set again.

Depends on https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/119
2019-04-03 13:38:42 +00:00
Thibault Saunier
c2c5c68573 validate: Return the GstValidateAction on .ref() 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
cd19b10d45 validate:scenario: Implement a way to execute an action on message
And use it for seek forward and fast forward scenarios
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
48fa4b6c4b validate:scenario: Clear up last seek on EOS generating a 'stop' action
Otherwise there is a race leading to a segfault where ASYNC_DONE is
received *after* generating EOS ourselves:

```
Executing stop (
    - generated-after-eos=true
)
<Caught SIGNAL: SIGSEGV>

**Stack trace**:

...
Thread 1 (Thread 0x7f3c3e50df00 (LWP 10183)):
    #8  0x00007f3c3f01bea5 in g_cclosure_marshal_generic (closure=<optimized out>, return_gvalue=<optimized out>, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gclosure.c:1496
    #9  0x00007f3c3f01b3dd in g_closure_invoke (closure=0x1855980, return_value=0x0, n_param_values=2, param_values=0x7ffda2e0a7e0, invocation_hint=0x7ffda2e0a760) at gclosure.c:810
    #10 0x00007f3c3f02e983 in signal_emit_unlocked_R (node=node@entry=0x15af670, detail=detail@entry=298, instance=instance@entry=0x171fc80, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffda2e0a7e0) at gsignal.c:3635
    #11 0x00007f3c3f037aaa in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffda2e0a9c0) at gsignal.c:3391
[Inferior 1 (process 10183) detached]

```
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