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
Thibault Saunier
fca2411e77
validate:scenario: Add a way to ignore EOS
...
And ignore then in seek_forward/backward to avoid cases where the pipeline EOS
before we have the chance to launch the following seek, see:
https://ci.gstreamer.net/job/GStreamer-master-meson-validate/3483/testReport/junit/(root)/gst-validate-launcher/validate_rtsp_playback_seek_backward_raw_h264_1_mp4/
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
Philipp Zabel
99eaad17e2
validate: fix pause duration handling
...
Commit 394242c224
("validate:scenario: Enhance variable
implementation") caused the duration parameter to be stored
as a double instead of GstClockTime, which the _execute_pause
implementation expects. Fix the parameter type and use
gst_validate_action_get_clocktime to handle duration correctly.
https://gitlab.freedesktop.org/gstreamer/gst-devtools/merge_requests/73
2019-04-02 20:55:41 +00:00
Nicolas Dufresne
40755c2d90
meson: validate: Fix linking error missing GstBaseTransform
...
There is a mockdecryptor that has been added into validate-sources and
this element is base on GstBaseTransform. This added a deps against
gstbase which was leading to linking errors when building with meson.
2019-04-01 14:51:31 -04:00
Jimmy Ohn
6754d4e9f2
validate: Print some log when environment variable is not set
...
print some log when environment variable is not set
2019-04-01 21:40:58 +09:00
Tim-Philipp Müller
9521fdbf88
meson: validate: actually pass extra arguments to gnome.generate_gir()
...
Especially the init section and the --quiet.
Remove the whole manual build/source dir include addition
to the g-ir-scanner args seeing that things worked fine
without the args being passed to the scanner at all.
2019-03-23 19:51:08 +00:00
Tim-Philipp Müller
d99994a849
validate: fix g-i warnings
...
gst-validate-utils.c:914: gst_validate_element_matches_target: unknown parameter 'structure' in documentation comment, should be 's'
gst-validate-override-registry.h:49: gst_validate_override_registry_get_override_list: return value: Missing (element-type) annotation
2019-03-23 19:47:24 +00:00
Xavier Claessens
ad24cb1b77
Avoid C99 declaration in 'for' loop
2019-03-22 15:37:37 -04: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
Matthew Waters
f6ae425a1a
validate: allow building a static overrides library
2019-03-18 01:07:05 +00:00
Charlie Turner
ab0be78469
validate: Add a mock decryptor element.
2019-03-15 22:18:29 +00:00
Alicia Boya García
e536b05e5a
validateflow: Fail when a pad is not attached
...
Previously validateflow tests did not fail when the pad was not
attached.
This was a limitation caused by how the Validate API worked. Before, the
`notify::validate-runner` signal was not emitted until a monitor was
attached to the override. This made impossible to listen for the
runner's `stopping` signal.
This patch fixes the problem by setting `validate-runner` for all
existing overrides when the runner is initialized and adding checks in
validateflow to error in the case no pad was attached.
2019-03-15 17:38:15 +00: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
Thibault Saunier
c9eaf1fc02
validate: Check that position <= duration from the pipeline monitor
...
We should not require a scenario for that check to happen
2019-03-11 18:14:23 -03:00
Thibault Saunier
c32c3e82d6
validate:scenario: Cleanup spurious error message
2019-03-11 18:14:23 -03:00
Thibault Saunier
b61cb56e20
validate-flow: Add an ignored-event-fields configuration
...
It replaces `record-stream-id` as it is a more generic way of doing
the same thing.
2019-03-11 18:14:23 -03:00
Edward Hervey
9772e0c1d2
validate: More usage of g_strcmp0 instead of strcmp
2019-03-06 10:15:21 +01:00
Edward Hervey
ec7cd5a092
validateflow: Use glib variant of strcmp
...
safer, and avoids missing include
2019-03-06 10:11:59 +01:00
Edward Hervey
a750e3b540
validate: Include config.h before anything else
...
To avoid double-defines (such as GST_LEVEL_DEFAULT)
2019-03-04 15:20:49 +01:00
Tim-Philipp Müller
4893d6d561
Back to development
2019-03-04 09:15:11 +00:00
Tim-Philipp Müller
3fface0275
Release 1.15.2
2019-02-26 19:44:21 +00:00
Tim-Philipp Müller
61f1289dcc
scenarios: don't clobber scenarios in 'make install'
...
/usr/bin/install: will not overwrite just-created '_inst/share/gstreamer-1.0/validate/scenarios/default-seek-flags.scenario' with '../../../../data/scenarios/rtsp_overrides/includes/default-seek-flags.scenario'
https://gitlab.freedesktop.org/gstreamer/gst-devtools/merge_requests/44#note_123683
2019-02-26 19:44:21 +00:00
Tim-Philipp Müller
536a7dddb1
validate: add new API to exports file
2019-02-26 18:53:58 +00:00
Thibault Saunier
c7270b2d8a
validate: Notice that issue summaries should be 'stable'
...
As they are used in the testsuite to define known issues
2019-02-24 00:44:57 +00:00
Alicia Boya García
f0abd316e2
gst-validate-scenario: Make waits optional in appsrc-push
...
While in many cases it's desirable to wait for a buffer to be pushed
downstream when using appsrc-push, in some cases this is not possible as
such pushing action is dependent on following actions that would not be
executed if we wait.
An example for this is prerolling:
appsrc ! qtdemux ! video/x-h264 ! decodebin name=dec ! %(videosink)s
description, seek=false, handles-states=true
appsrc-push, target-element-name=appsrc0, file-name="raw_h264.0.mp4"
set-state, state=playing
appsrc-eos, target-element-name=appsrc0
In order for the preroll to occur, both the appsrc needs to push the
buffer and the state needs to reach PLAYING. But `set-state` cannot
finish if the buffer has not been pushed (the state transition does not
finish) and conversely pushing the buffer will not finish until the
state has reached.
Making appsrc-push not wait for the buffer solves this problem. This
patch makes appsrc-push aware of this issue by only waiting for the
buffer to be pushed if the pipeline is in a state that allows buffers to
flow.
2019-02-24 01:23:58 +01:00
Alicia Boya García
af205f63b7
gst-validate-scenario: Fix (another) race condition in EOS handling
...
Since gst_validate_action_set_done() is asynchronous, the bus EOS
handler may already be running before the action is actually finished.
This patch ensures that is not a problem.
2019-02-22 00:02:08 +01: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
b20f73099f
validate: allow config to check for minimum buffer frequency on pads
...
This change allow tests to check performance of elements by checking the
frequency at which buffers are pushed on src pads.
I re-used most of the logic from fpsdisplaysink to compute the
frequency.
We can now uses something like:
GST_VALIDATE_CONFIG='core,min-buffer-frequency=60,target-element-factory-name=v4l2src'
The 'buffer-frequency-start' optional field can be used to ignore the
frequency during the start of the pipeline. This is useful when testing live
pipelines where configuring and setting up elements can take some time slowing
down the first buffers.
2019-02-20 12:12:46 +01:00
Guillaume Desmottes
40f263e857
validate: factor out gst_validate_element_matches_target()
2019-02-20 12:12:46 +01:00
Charlie Turner
4602ee61c4
validateflow: Fix double-free on stdout
2019-02-18 11:05:26 +00:00
Thibault Saunier
34b5192b94
validate: report: Fix the way we print 'repeat' values
2019-02-15 14:19:03 +00:00
Thibault Saunier
53b2ca8f62
validate: Force LC_NUMERIC to C as it is required by our expression parser
...
And... add some expression parser unit tests
2019-02-15 14:19:03 +00:00
Thibault Saunier
394242c224
validate:scenario: Enhance variable implementation
...
- Stop arbitrarily consider params as ClockTime based on their names
but add a convetion that the `.type` field of the ActionType should
end by `(GstClockTime)` when it is a clock time.
2019-02-15 14:19:03 +00:00
Thibault Saunier
b7616e5fab
validate:scenario: Make gst_validate_action_new public
...
Mainly so it can be used in unit tests.
2019-02-15 14:19:03 +00:00
Thibault Saunier
be854d4be8
validate:scenario: Allow using set-vars from numeric expressions
...
And require them to follow the `$varname` (can't be $(varname) as
parenthesis have another meaning in those expressions).
Still accept "duration" and "position" as varname for backward compat
but update our scenarios anyway.
2019-02-15 14:19:03 +00:00
Thibault Saunier
28e041b2cb
validate: scenario: Parse playback times as we execute the scenario
...
This way we will be able to use 'set-vars' for it
2019-02-15 14:19:03 +00:00
Thibault Saunier
d24477d9e4
validate:scenario: Enforce a synthax $(varname) to reference variables
...
This way it is clear that you are using a variable reading the scenario
and we can verify that what the scenario writer intents is to use an
already set variable.
2019-02-15 14:19:03 +00:00
Guillaume Desmottes
3ebc26e265
validate: don't override max-latency if config contains multiple structs
...
gst_validate_utils_get_clocktime() is resetting the value if it's not
present in the struct so we were overriding it on the next iterations.
2019-02-12 02:21:14 +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
Alicia Boya García
1d4801d679
gst-validate-scenario: Add GST_VALIDATE_SCENARIO_EOS_HANDLING_LOCK
...
There was a race in appsrc-push when the pushed buffer caused an EOS.
The EOS event could be handled by the main thread, finishing the test
while the action, executing in the streaming thread, has not finished
yet.
A mutex is now introduced to add mutual exclusion for the two threads so
that an EOS does not cause the termination of the test while the action
is still going.
2019-02-11 14:15:30 +00:00
Thibault Saunier
5a2e2d5001
validateflow: Print some indication that the flow checking is happening
2019-02-11 08:34:36 -03:00
Edward Hervey
4467c9925d
validate: Add autotools support for flow plugin
2019-02-11 11:09:46 +01: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
Thibault Saunier
a88156a416
validate:launcher: Add a simple way to profile app
2019-02-09 17:23:28 -03:00
Guillaume Desmottes
0e03b38cc2
validate: scenario: not need to use an atomic to handle dropped count
...
It's all handled from the same thread.
2019-02-08 14:39:22 +01:00
Guillaume Desmottes
78a8306955
validate: scenario: fix dropped checking when terminating scenario
...
We want to early return if either no max value has been set for the
scenario or if we didn't receive any QoS information.
2019-02-08 14:25:52 +01:00
Guillaume Desmottes
916bf5cdf1
validate: properly namespace config related checks
2019-02-08 13:32:12 +01: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
Guillaume Desmottes
921a073bdf
validate: allow scenarios to define a max nb of dropped buffers
...
The 'max-dropped' description field can now be used to specify the max
number of buffers than can be dropped by the QoS system.
2019-02-07 14:12:59 +00:00
Thibault Saunier
e8162cc957
validate:launcher: Error out in the check testsuite if rebuilding failed
2019-02-06 21:14:13 +00:00
Guillaume Desmottes
2d8ef6e81c
validate: allow scenarios to define max pipeline latency
...
The 'max-latency' description field can now be used to specify the max
latency allowed for the running pipeline.
2019-02-06 16:07:02 +01:00