Thibault Saunier [Sat, 6 Apr 2019 02:05:20 +0000 (23:05 -0300)]
validate:launcher: Add an option to output HTML if commonmark is installed
Thibault Saunier [Sat, 6 Apr 2019 01:23:29 +0000 (22:23 -0300)]
validate:launcher: Do not user python 3.5 features
Thibault Saunier [Fri, 5 Apr 2019 13:41:14 +0000 (10:41 -0300)]
validate:launcher: Move all logs to one single log files to be displayed to end user
Thibault Saunier [Fri, 5 Apr 2019 13:40:45 +0000 (10:40 -0300)]
validate:launcher: Make extra_logfiles a set and fix their names
Thibault Saunier [Fri, 5 Apr 2019 13:40:04 +0000 (10:40 -0300)]
validate:launcher: Remove spurious print
Thibault Saunier [Thu, 4 Apr 2019 20:07:58 +0000 (17:07 -0300)]
validate:launcher: Remove noise about empty known issues in logs
Thibault Saunier [Thu, 4 Apr 2019 20:05:14 +0000 (17:05 -0300)]
validate:launcher: Fix printing application name in the logs
Tim-Philipp Müller [Thu, 11 Apr 2019 00:27:45 +0000 (01:27 +0100)]
Release 1.15.90
Tim-Philipp Müller [Thu, 11 Apr 2019 00:25:17 +0000 (01:25 +0100)]
validate: autotools: dist mock decryptor header file
Tim-Philipp Müller [Thu, 11 Apr 2019 00:00:39 +0000 (01:00 +0100)]
validate: win32: add new api to export file
Thibault Saunier [Thu, 28 Mar 2019 13:08:16 +0000 (10:08 -0300)]
validate:launcher: Add a list of well known subpression files from gst-build subprojects
Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/issues/38
Thibault Saunier [Wed, 27 Mar 2019 15:36:16 +0000 (12:36 -0300)]
validate: Add a mecanism to rerun failling tests
And add a way to mark some 'flakes' as tolerated
Thibault Saunier [Wed, 27 Mar 2019 18:07:48 +0000 (15:07 -0300)]
validate:launcher: Reset process on clean
Thibault Saunier [Tue, 26 Mar 2019 22:35:19 +0000 (19:35 -0300)]
validate: Print error message details in our reports
Thibault Saunier [Tue, 26 Mar 2019 18:18:27 +0000 (15:18 -0300)]
validate:launcher: Dump applied known issues in the logs
Thibault Saunier [Tue, 26 Mar 2019 17:09:54 +0000 (14:09 -0300)]
validate:launcher: Put all logs inside the failure node
Pleasing gitlab CI reporting system
Thibault Saunier [Tue, 26 Mar 2019 15:19:16 +0000 (12:19 -0300)]
validate:launcher: By default use cpu_count / 2
Thibault Saunier [Tue, 26 Mar 2019 13:49:26 +0000 (10:49 -0300)]
validate:launcher: Print name of the test to be debugged
When --debug was passed
Thibault Saunier [Tue, 26 Mar 2019 13:47:12 +0000 (10:47 -0300)]
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.
Thibault Saunier [Mon, 25 Mar 2019 21:14:53 +0000 (18:14 -0300)]
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
Thibault Saunier [Mon, 25 Mar 2019 21:14:35 +0000 (18:14 -0300)]
validate: Return the GstValidateAction on .ref()
Thibault Saunier [Mon, 25 Mar 2019 19:46:46 +0000 (16:46 -0300)]
validate: Generate dot files and link to them on CI
Thibault Saunier [Thu, 21 Mar 2019 20:10:25 +0000 (17:10 -0300)]
validate:launcher: Try to send SIGINT before killing processes
Giving a chance for validate to print reports
Thibault Saunier [Thu, 21 Mar 2019 13:01:14 +0000 (10:01 -0300)]
validate:launcher: Add a way to say that a known issues can happen several times
Thibault Saunier [Wed, 20 Mar 2019 00:39:02 +0000 (21:39 -0300)]
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
Thibault Saunier [Wed, 20 Mar 2019 21:36:17 +0000 (18:36 -0300)]
validate:launcher: Be a bit more resilient in GstValidateListener
And handle exception decoding received json info
Thibault Saunier [Wed, 20 Mar 2019 21:26:19 +0000 (18:26 -0300)]
validate:scenario: Implement a way to execute an action on message
And use it for seek forward and fast forward scenarios
Thibault Saunier [Wed, 20 Mar 2019 00:21:09 +0000 (21:21 -0300)]
validate:launcher: Add a way to require a non fatal error when matching a fatal one
Thibault Saunier [Tue, 19 Mar 2019 15:16:13 +0000 (12:16 -0300)]
validate:launcher: Add a way to force coloration
Thibault Saunier [Tue, 19 Mar 2019 15:15:35 +0000 (12:15 -0300)]
validate:launcher: factor out TTY check and enhance iteration output
Thibault Saunier [Tue, 19 Mar 2019 13:22:26 +0000 (10:22 -0300)]
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]
```
Thibault Saunier [Tue, 19 Mar 2019 13:12:42 +0000 (10:12 -0300)]
validate:launcher: Add generated known issue list to the logs instead of printing then
Thibault Saunier [Tue, 19 Mar 2019 12:43:55 +0000 (09:43 -0300)]
validate:launcher: Add a way to force stdout coloring
Thibault Saunier [Mon, 18 Mar 2019 19:52:11 +0000 (16:52 -0300)]
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`
Thibault Saunier [Mon, 18 Mar 2019 17:30:59 +0000 (14:30 -0300)]
validate:launcher: Allow printing log URL on a CI server
Thibault Saunier [Mon, 18 Mar 2019 14:09:10 +0000 (11:09 -0300)]
validate:launcher: Fix getting skip-parser when generating media descriptor
On old version it didn't exist
Thibault Saunier [Mon, 18 Mar 2019 13:32:06 +0000 (10:32 -0300)]
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
Thibault Saunier [Sun, 17 Mar 2019 17:39:38 +0000 (14:39 -0300)]
validate:launcher: Allow referencing known issue by exiting signal names
Thibault Saunier [Sun, 17 Mar 2019 01:52:53 +0000 (22:52 -0300)]
validate:launcher: Output markdown as much as possible
Thibault Saunier [Sun, 17 Mar 2019 00:37:16 +0000 (21:37 -0300)]
validate:launcher: Implement bug checks for gitlab
And use new gitlab urls for all the bugs
Thibault Saunier [Sun, 17 Mar 2019 00:37:37 +0000 (21:37 -0300)]
validate:launcher: Enhance and standardize output
Thibault Saunier [Sat, 16 Mar 2019 21:05:56 +0000 (18:05 -0300)]
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/
Thibault Saunier [Sat, 16 Mar 2019 19:28:15 +0000 (16:28 -0300)]
validate:launcher: Take into account the timeout when checking EOS
Thibault Saunier [Sat, 16 Mar 2019 15:21:34 +0000 (12:21 -0300)]
Pass python files through autopep8
Thibault Saunier [Sat, 16 Mar 2019 02:46:00 +0000 (23:46 -0300)]
validate:launcher: Help the user add known issues
And make it clear a bug should be opened about it
Thibault Saunier [Fri, 15 Mar 2019 10:39:04 +0000 (07:39 -0300)]
validate:launcher: Enhance dumping log files output
Thibault Saunier [Wed, 13 Mar 2019 22:08:25 +0000 (19:08 -0300)]
validate:launcher: Use gst-integration-testsuites subproject as default testsuite repo if avalaible
Philipp Zabel [Fri, 8 Mar 2019 14:44:31 +0000 (15:44 +0100)]
validate: fix pause duration handling
Commit
394242c2248a ("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
Nicolas Dufresne [Mon, 1 Apr 2019 19:23:21 +0000 (15:23 -0400)]
debug-viewer: Use python.install_sources()
With current implementation we would try and install into the system
path regardless of the prefix. On top of that, we could install any left
over pyc file and would install the unit test also.
To fix this, we now list every files to be installed and use
python.install_sources(), leaving to meson the decision on where things
should be installed.
Nicolas Dufresne [Mon, 1 Apr 2019 18:48:54 +0000 (14:48 -0400)]
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.
Jimmy Ohn [Mon, 1 Apr 2019 12:49:19 +0000 (21:49 +0900)]
codecanalyzer: Use glib variant of strcmp
safer, and avoids missing include
Jimmy Ohn [Fri, 15 Feb 2019 05:59:20 +0000 (14:59 +0900)]
validate: Print some log when environment variable is not set
print some log when environment variable is not set
Tim-Philipp Müller [Sat, 23 Mar 2019 19:48:29 +0000 (19:48 +0000)]
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.
Tim-Philipp Müller [Sat, 23 Mar 2019 19:47:24 +0000 (19:47 +0000)]
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
Tim-Philipp Müller [Sat, 23 Mar 2019 19:22:29 +0000 (19:22 +0000)]
g-i: pass --quiet to g-ir-scanner
This suppresses the annoying 'g-ir-scanner: link: cc ..' output
that we get even if everything works just fine.
We still get g-ir-scanner warnings and compiler warnings if
we pass this option.
Xavier Claessens [Fri, 22 Mar 2019 19:37:37 +0000 (15:37 -0400)]
Avoid C99 declaration in 'for' loop
Thibault Saunier [Fri, 22 Mar 2019 13:48:03 +0000 (10:48 -0300)]
validate:launcher: Set CK_MULTIPLIER=10 in GstCheck tests when using valgrind
Fixes https://gitlab.freedesktop.org/gstreamer/gst-devtools/issues/39
Tim-Philipp Müller [Thu, 21 Mar 2019 13:06:00 +0000 (13:06 +0000)]
meson: use new 'python' module instead of deprecated 'python3' one
https://github.com/mesonbuild/meson/pull/4169
Matthew Waters [Thu, 14 Mar 2019 12:17:16 +0000 (23:17 +1100)]
validate: allow building a static overrides library
Charlie Turner [Thu, 21 Feb 2019 17:22:10 +0000 (17:22 +0000)]
validate: Add a mock decryptor element.
Alicia Boya García [Fri, 15 Mar 2019 17:38:15 +0000 (17:38 +0000)]
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.
Thibault Saunier [Sun, 10 Mar 2019 20:07:08 +0000 (17:07 -0300)]
validate:launcher: Move '_format_config_template' to the utilities
So it can be reused by GES tests
Thibault Saunier [Sun, 10 Mar 2019 20:06:13 +0000 (17:06 -0300)]
validate: Check that position <= duration from the pipeline monitor
We should not require a scenario for that check to happen
Thibault Saunier [Sun, 10 Mar 2019 20:05:15 +0000 (17:05 -0300)]
validate:scenario: Cleanup spurious error message
Thibault Saunier [Sun, 10 Mar 2019 20:03:09 +0000 (17:03 -0300)]
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.
Thibault Saunier [Thu, 7 Feb 2019 18:50:26 +0000 (15:50 -0300)]
docs: Document the validateflow plugin
Edward Hervey [Wed, 6 Mar 2019 09:15:21 +0000 (10:15 +0100)]
validate: More usage of g_strcmp0 instead of strcmp
Edward Hervey [Wed, 6 Mar 2019 09:11:02 +0000 (10:11 +0100)]
validateflow: Use glib variant of strcmp
safer, and avoids missing include
Edward Hervey [Mon, 4 Mar 2019 14:20:49 +0000 (15:20 +0100)]
validate: Include config.h before anything else
To avoid double-defines (such as GST_LEVEL_DEFAULT)
Tim-Philipp Müller [Mon, 4 Mar 2019 09:15:11 +0000 (09:15 +0000)]
Back to development
Tim-Philipp Müller [Tue, 26 Feb 2019 12:00:40 +0000 (12:00 +0000)]
Release 1.15.2
Tim-Philipp Müller [Tue, 26 Feb 2019 19:42:08 +0000 (19:42 +0000)]
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
Tim-Philipp Müller [Tue, 26 Feb 2019 18:53:28 +0000 (18:53 +0000)]
validate: add new API to exports file
Thibault Saunier [Fri, 1 Feb 2019 13:02:22 +0000 (10:02 -0300)]
validate: Notice that issue summaries should be 'stable'
As they are used in the testsuite to define known issues
Alicia Boya García [Sun, 17 Feb 2019 14:38:53 +0000 (15:38 +0100)]
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.
Alicia Boya García [Thu, 21 Feb 2019 21:01:24 +0000 (22:01 +0100)]
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.
Charlie Turner [Tue, 19 Feb 2019 17:36:23 +0000 (17:36 +0000)]
validateflow: interpolate folder directories into pipeline descriptions.
Allow 'pipeline' fields in validateflow to be interpolated with
directory keys like $(medias)s.
Guillaume Desmottes [Thu, 7 Feb 2019 14:36:41 +0000 (15:36 +0100)]
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.
Guillaume Desmottes [Mon, 11 Feb 2019 15:07:28 +0000 (16:07 +0100)]
validate: factor out gst_validate_element_matches_target()
Charlie Turner [Mon, 18 Feb 2019 11:05:26 +0000 (11:05 +0000)]
validateflow: Fix double-free on stdout
Thibault Saunier [Mon, 4 Feb 2019 16:19:26 +0000 (13:19 -0300)]
validate: report: Fix the way we print 'repeat' values
Thibault Saunier [Mon, 4 Feb 2019 16:18:04 +0000 (13:18 -0300)]
validate: Force LC_NUMERIC to C as it is required by our expression parser
And... add some expression parser unit tests
Thibault Saunier [Sun, 3 Feb 2019 23:05:36 +0000 (20:05 -0300)]
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.
Thibault Saunier [Sun, 3 Feb 2019 23:03:40 +0000 (20:03 -0300)]
validate:scenario: Make gst_validate_action_new public
Mainly so it can be used in unit tests.
Thibault Saunier [Sat, 2 Feb 2019 16:43:35 +0000 (13:43 -0300)]
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.
Thibault Saunier [Sat, 2 Feb 2019 16:32:50 +0000 (13:32 -0300)]
validate: scenario: Parse playback times as we execute the scenario
This way we will be able to use 'set-vars' for it
Thibault Saunier [Sat, 2 Feb 2019 01:54:13 +0000 (22:54 -0300)]
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.
Guillaume Desmottes [Thu, 7 Feb 2019 16:34:56 +0000 (17:34 +0100)]
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.
Guillaume Desmottes [Fri, 8 Feb 2019 10:46:58 +0000 (11:46 +0100)]
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.
Alicia Boya García [Sat, 9 Feb 2019 00:16:31 +0000 (01:16 +0100)]
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.
Thibault Saunier [Thu, 7 Feb 2019 18:42:06 +0000 (15:42 -0300)]
validateflow: Print some indication that the flow checking is happening
Edward Hervey [Mon, 11 Feb 2019 10:09:21 +0000 (11:09 +0100)]
validate: Add autotools support for flow plugin
Thibault Saunier [Sun, 10 Feb 2019 04:23:50 +0000 (01:23 -0300)]
Revert "validate:launcher: Cache the result of meson introspect"
This reverts commit
05ce6d3b92e88341bd9743b021b33ce606c5d1bc.
We can't do that as it breaks meson logic to set envvars
Thibault Saunier [Sat, 9 Feb 2019 20:25:03 +0000 (17:25 -0300)]
validate:launcher: Do not sort tests all the time
Do it once only once it is fully populated
Thibault Saunier [Sat, 9 Feb 2019 20:24:10 +0000 (17:24 -0300)]
validate:launcher: Cache the result of meson introspect
Running it takes quite some time and we can easily cache it.
Thibault Saunier [Sat, 9 Feb 2019 20:23:28 +0000 (17:23 -0300)]
validate:launcher: Add a simple way to profile app
Guillaume Desmottes [Fri, 8 Feb 2019 13:36:56 +0000 (14:36 +0100)]
validate: scenario: not need to use an atomic to handle dropped count
It's all handled from the same thread.
Guillaume Desmottes [Fri, 8 Feb 2019 13:23:15 +0000 (14:23 +0100)]
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.
Guillaume Desmottes [Fri, 8 Feb 2019 12:32:12 +0000 (13:32 +0100)]
validate: properly namespace config related checks
Alicia Boya García [Sun, 28 Oct 2018 17:27:22 +0000 (17:27 +0000)]
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).