platform/upstream/gstreamer.git
5 years agovalidate: fix g-i warnings
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

5 years agog-i: pass --quiet to g-ir-scanner
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.

5 years agoAvoid C99 declaration in 'for' loop
Xavier Claessens [Fri, 22 Mar 2019 19:37:37 +0000 (15:37 -0400)]
Avoid C99 declaration in 'for' loop

5 years agovalidate:launcher: Set CK_MULTIPLIER=10 in GstCheck tests when using valgrind
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

5 years agomeson: use new 'python' module instead of deprecated 'python3' one
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

5 years agovalidate: allow building a static overrides library
Matthew Waters [Thu, 14 Mar 2019 12:17:16 +0000 (23:17 +1100)]
validate: allow building a static overrides library

5 years agovalidate: Add a mock decryptor element.
Charlie Turner [Thu, 21 Feb 2019 17:22:10 +0000 (17:22 +0000)]
validate: Add a mock decryptor element.

5 years agovalidateflow: Fail when a pad is not attached
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.

5 years agovalidate:launcher: Move '_format_config_template' to the utilities
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

5 years agovalidate: Check that position <= duration from the pipeline monitor
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

5 years agovalidate:scenario: Cleanup spurious error message
Thibault Saunier [Sun, 10 Mar 2019 20:05:15 +0000 (17:05 -0300)]
validate:scenario: Cleanup spurious error message

5 years agovalidate-flow: Add an ignored-event-fields configuration
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.

5 years agodocs: Document the validateflow plugin
Thibault Saunier [Thu, 7 Feb 2019 18:50:26 +0000 (15:50 -0300)]
docs: Document the validateflow plugin

5 years agovalidate: More usage of g_strcmp0 instead of strcmp
Edward Hervey [Wed, 6 Mar 2019 09:15:21 +0000 (10:15 +0100)]
validate: More usage of g_strcmp0 instead of strcmp

5 years agovalidateflow: Use glib variant 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

5 years agovalidate: Include config.h before anything else
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)

5 years agoBack to development
Tim-Philipp Müller [Mon, 4 Mar 2019 09:15:11 +0000 (09:15 +0000)]
Back to development

5 years agoRelease 1.15.2
Tim-Philipp Müller [Tue, 26 Feb 2019 12:00:40 +0000 (12:00 +0000)]
Release 1.15.2

5 years agoscenarios: don't clobber scenarios in 'make install'
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

5 years agovalidate: add new API to exports file
Tim-Philipp Müller [Tue, 26 Feb 2019 18:53:28 +0000 (18:53 +0000)]
validate: add new API to exports file

5 years agovalidate: Notice that issue summaries should be 'stable'
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

5 years agogst-validate-scenario: Make waits optional in appsrc-push
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.

5 years agogst-validate-scenario: Fix (another) race condition in EOS handling
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.

5 years agovalidateflow: interpolate folder directories into pipeline descriptions.
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.

5 years agovalidate: allow config to check for minimum buffer frequency on pads
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.

5 years agovalidate: factor out gst_validate_element_matches_target()
Guillaume Desmottes [Mon, 11 Feb 2019 15:07:28 +0000 (16:07 +0100)]
validate: factor out gst_validate_element_matches_target()

5 years agovalidateflow: Fix double-free on stdout
Charlie Turner [Mon, 18 Feb 2019 11:05:26 +0000 (11:05 +0000)]
validateflow: Fix double-free on stdout

5 years agovalidate: report: Fix the way we print 'repeat' values
Thibault Saunier [Mon, 4 Feb 2019 16:19:26 +0000 (13:19 -0300)]
validate: report: Fix the way we print 'repeat' values

5 years agovalidate: Force LC_NUMERIC to C as it is required by our expression parser
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

5 years agovalidate:scenario: Enhance variable implementation
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.

5 years agovalidate:scenario: Make gst_validate_action_new public
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.

5 years agovalidate:scenario: Allow using set-vars from numeric expressions
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.

5 years agovalidate: scenario: Parse playback times as we execute the scenario
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

5 years agovalidate:scenario: Enforce a synthax $(varname) to reference variables
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.

5 years agovalidate: don't override max-latency if config contains multiple structs
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.

5 years agovalidate: baseclasses: include env variable in logged command
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.

5 years agogst-validate-scenario: Add GST_VALIDATE_SCENARIO_EOS_HANDLING_LOCK
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.

5 years agovalidateflow: Print some indication that the flow checking is happening
Thibault Saunier [Thu, 7 Feb 2019 18:42:06 +0000 (15:42 -0300)]
validateflow: Print some indication that the flow checking is happening

5 years agovalidate: Add autotools support for flow plugin
Edward Hervey [Mon, 11 Feb 2019 10:09:21 +0000 (11:09 +0100)]
validate: Add autotools support for flow plugin

5 years agoRevert "validate:launcher: Cache the result of meson introspect"
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

5 years agovalidate:launcher: Do not sort tests all the time
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

5 years agovalidate:launcher: Cache the result of meson introspect
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.

5 years agovalidate:launcher: Add a simple way to profile app
Thibault Saunier [Sat, 9 Feb 2019 20:23:28 +0000 (17:23 -0300)]
validate:launcher: Add a simple way to profile app

5 years agovalidate: scenario: not need to use an atomic to handle dropped count
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.

5 years agovalidate: scenario: fix dropped checking when terminating scenario
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.

5 years agovalidate: properly namespace config related checks
Guillaume Desmottes [Fri, 8 Feb 2019 12:32:12 +0000 (13:32 +0100)]
validate: properly namespace config related checks

5 years agoNew validate plugin: validateflow
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).

5 years agobaseclass: add_validate_config: don't use self.proc_env
Guillaume Desmottes [Thu, 7 Feb 2019 16:04:52 +0000 (17:04 +0100)]
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.

5 years agovalidate: allow scenarios to define a max nb of dropped buffers
Guillaume Desmottes [Wed, 6 Feb 2019 17:24:19 +0000 (18:24 +0100)]
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.

5 years agovalidate:launcher: Error out in the check testsuite if rebuilding failed
Thibault Saunier [Wed, 6 Feb 2019 02:46:40 +0000 (23:46 -0300)]
validate:launcher: Error out in the check testsuite if rebuilding failed

5 years agovalidate: allow scenarios to define max pipeline latency
Guillaume Desmottes [Mon, 4 Feb 2019 16:03:01 +0000 (17:03 +0100)]
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.

5 years agoScenarios: override seek flags for RTSP tests
Mathieu Duponchelle [Sat, 2 Feb 2019 00:23:16 +0000 (01:23 +0100)]
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.

5 years agovalidate:scenario: Set variables on all action fields
Thibault Saunier [Fri, 1 Feb 2019 23:01:40 +0000 (20:01 -0300)]
validate:scenario: Set variables on all action fields

5 years agovalidate: Handle G_LOG_ERROR in our glog handler
Thibault Saunier [Fri, 1 Feb 2019 22:30:44 +0000 (19:30 -0300)]
validate: Handle G_LOG_ERROR in our glog handler

5 years agovalidate:scenario: Rename action 'define-consts' to 'set-vars'
Thibault Saunier [Fri, 1 Feb 2019 22:03:04 +0000 (19:03 -0300)]
validate:scenario: Rename action 'define-consts' to 'set-vars'

Those are not consts are they can be modified at runtime

5 years agovalidate: Cleanup flags/enum_from_string
Thibault Saunier [Fri, 1 Feb 2019 21:41:07 +0000 (18:41 -0300)]
validate: Cleanup flags/enum_from_string

5 years agoscenario: prioritize SCENARIOS_PATH when including
Mathieu Duponchelle [Fri, 1 Feb 2019 22:08:16 +0000 (23:08 +0100)]
scenario: prioritize SCENARIOS_PATH when including

5 years agovalidate: Let people know the testsuite starts running
Thibault Saunier [Fri, 1 Feb 2019 04:24:19 +0000 (01:24 -0300)]
validate: Let people know the testsuite starts running

Now that we do not print infos about successful tests when redirecting.

5 years agovalidate: Keep trying to print stack traces when our log hanlder is removed
Thibault Saunier [Fri, 1 Feb 2019 03:08:45 +0000 (00:08 -0300)]
validate: Keep trying to print stack traces when our log hanlder is removed

There are cases where a crash happens after the program ends

5 years agovalidate:scenario: Give pipeline position when failling on EOS
Thibault Saunier [Fri, 1 Feb 2019 02:43:28 +0000 (23:43 -0300)]
validate:scenario: Give pipeline position when failling on EOS

5 years agovalidate:launcher: Do not print passing tests if not running in a tty
Thibault Saunier [Fri, 1 Feb 2019 02:35:50 +0000 (23:35 -0300)]
validate:launcher: Do not print passing tests if not running in a tty

5 years agovalidate:scenario: Explicitely mark generated stop() action as such
Thibault Saunier [Fri, 1 Feb 2019 01:37:17 +0000 (22:37 -0300)]
validate:scenario: Explicitely mark generated stop() action as such

5 years agovalidate:launcher:punittest: Raise an exception if a testsuite can't be loaded
Thibault Saunier [Wed, 30 Jan 2019 18:57:13 +0000 (15:57 -0300)]
validate:launcher:punittest: Raise an exception if a testsuite can't be loaded

5 years agopad-monitor: Remove unused pad getrange override
Edward Hervey [Wed, 25 Nov 2015 15:10:50 +0000 (16:10 +0100)]
pad-monitor: Remove unused pad getrange override

5 years agovalidate: Use g_object_{get|set}_qdata where applicable
Edward Hervey [Wed, 25 Nov 2015 13:20:31 +0000 (14:20 +0100)]
validate: Use g_object_{get|set}_qdata where applicable

This provides a substantial speedup compared to using strings

5 years agoTestsManager: stop displaying blacklisted tests on stdout
Mathieu Duponchelle [Wed, 30 Jan 2019 00:24:16 +0000 (01:24 +0100)]
TestsManager: stop displaying blacklisted tests on stdout

It's basically spam, better suited to the debug logs

5 years agovalidate:launcher: Never print lines larger than the terminal
Thibault Saunier [Tue, 29 Jan 2019 18:59:44 +0000 (15:59 -0300)]
validate:launcher: Never print lines larger than the terminal

5 years agovalidate: scenario: Mark action as being executed right before calling ->execute
Thibault Saunier [Tue, 29 Jan 2019 15:54:01 +0000 (12:54 -0300)]
validate: scenario: Mark action as being executed right before calling ->execute

And make sure that we do not try to execute the following action

In the case the action type leads to the GMainContext to be ieterated

5 years agovalidate: Report the full test name in the xunit file
Jordan Petridis [Tue, 11 Dec 2018 09:42:25 +0000 (11:42 +0200)]
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

5 years agovalidate:launcher: Make baseclasses.py pep8 compliant
Thibault Saunier [Sat, 26 Jan 2019 13:27:47 +0000 (10:27 -0300)]
validate:launcher: Make baseclasses.py pep8 compliant

5 years agovalidate:launcher: Handle launching launching a sub launcher
Thibault Saunier [Sat, 26 Jan 2019 01:27:07 +0000 (22:27 -0300)]
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).

5 years agovalidate:launcher: Refactor the "main" function
Thibault Saunier [Sat, 26 Jan 2019 01:13:28 +0000 (22:13 -0300)]
validate:launcher: Refactor the "main" function

- Move the parser code into a `LauncherConfig.create_parser()` method
- Remove the need to pass libsdir to the _TestsLauncher object
- Extract out a `setup_launcher_from_args` function

5 years agolauncher: Move http serveur and xvfb server to the main test runner object
Thibault Saunier [Sat, 26 Jan 2019 01:09:30 +0000 (22:09 -0300)]
launcher: Move http serveur and xvfb server to the main test runner object

No good reason for it to be in the main function

5 years agolauncher: Cleanup the way we find python test command line
Thibault Saunier [Sat, 26 Jan 2019 01:06:14 +0000 (22:06 -0300)]
launcher: Cleanup the way we find python test command line

By setting it before the test base class adds the current testsuite name in the classname

5 years agolauncher: Fix test listing in meson VS gstcheck tests
Thibault Saunier [Sat, 26 Jan 2019 01:03:57 +0000 (22:03 -0300)]
launcher: Fix test listing in meson VS gstcheck tests

You might select tests that match Meson but not gstcheck in which
case the 'meson only' variant is exposed but those should never exist.

5 years agovalidate:launcher: Add `%(config_path)s` in the pipeline desc vars
Thibault Saunier [Sat, 26 Jan 2019 12:19:35 +0000 (09:19 -0300)]
validate:launcher: Add `%(config_path)s` in the pipeline desc vars

When defining pipelines_descriptions to run test on in a `.json` file, you might
need to point to paths in the testsuite directory (for media files URIs
for example), you can now do

 `"pipeline": "filesrc location="$(config_path)s/../medias/some/file.mkv...`

5 years agoRelease 1.15.1
Tim-Philipp Müller [Thu, 17 Jan 2019 10:01:50 +0000 (10:01 +0000)]
Release 1.15.1

5 years agoFix distcheck
Tim-Philipp Müller [Thu, 17 Jan 2019 09:58:47 +0000 (09:58 +0000)]
Fix distcheck

Work around broken disthook check in release.mak so we don't
have to update the common submodules for that (applies only
to this module because the version number is in the top-level
meson.build but the package/dist directory is a subdir). This
only became a problem now because the common submodule hadn't
been updated for the last few years.

5 years agowin32: update .def file for new API
Tim-Philipp Müller [Thu, 17 Jan 2019 09:38:13 +0000 (09:38 +0000)]
win32: update .def file for new API

Fixes distcheck

5 years agovalidate:launcher: Display unix nickname of signals leading to test failure
Thibault Saunier [Tue, 15 Jan 2019 19:52:24 +0000 (16:52 -0300)]
validate:launcher: Display unix nickname of signals leading to test failure

5 years agovalidate:launcher: Fix error message about 'crashed' test
Thibault Saunier [Tue, 15 Jan 2019 19:05:41 +0000 (16:05 -0300)]
validate:launcher: Fix error message about 'crashed' test

5 years agopre-commit-python: Allow line breaks between binary operators
Alicia Boya García [Mon, 14 Jan 2019 21:55:35 +0000 (22:55 +0100)]
pre-commit-python: Allow line breaks between binary operators

pre-commit-python overrides the list of ignored Python style errors.
Unfortunately, before this patch the list did not exclude W503 and
W504 (which are otherwise ignored by default).

The consequence of having those two warnings enabled at the same time is
that it's not possible to break lines on binary operators, which is an
unreasonable unintentional restriction:

  'validateflow': "validateflow, expectations-dir=\"" +
                  expectations_dir + "\", actual-results-dir=\"" +
                  actual_results_dir + "\"",

W504 line break after binary operator

  'validateflow': "validateflow, expectations-dir=\""
                  + expectations_dir + "\", actual-results-dir=\""
                  + actual_results_dir + "\"",

W503 line break before binary operator

This patch excludes W503 so that there is a valid style for breaking
lines on binary operators.

5 years agovalidate: Plug newly introduced leak
Thibault Saunier [Sat, 12 Jan 2019 18:25:53 +0000 (15:25 -0300)]
validate: Plug newly introduced leak

5 years agovalidate: Use filename instead of full path in dotfiles names
Thibault Saunier [Sat, 12 Jan 2019 12:59:12 +0000 (09:59 -0300)]
validate: Use filename instead of full path in dotfiles names

5 years agovalidate:tests: Fix race in `validate_padmonitor.buffer_outside_segment`
Thibault Saunier [Sun, 6 Jan 2019 23:06:30 +0000 (00:06 +0100)]
validate:tests: Fix race in `validate_padmonitor.buffer_outside_segment`

We were using a fakesrc which data flow was potentially breaking the
test.

5 years agovalidate: Lower a ERROR message to INFO
Thibault Saunier [Sun, 6 Jan 2019 23:05:50 +0000 (00:05 +0100)]
validate: Lower a ERROR message to INFO

This behaviour is totally valid when running unit tests

5 years agovalidate:tests: s/discount_buffer/discont_buffer/
Thibault Saunier [Thu, 3 Jan 2019 13:15:16 +0000 (14:15 +0100)]
validate:tests: s/discount_buffer/discont_buffer/

5 years agovalidate:tests: Fix race in `validate_padmonitor.buffer_before_segment`
Thibault Saunier [Thu, 3 Jan 2019 11:09:09 +0000 (12:09 +0100)]
validate:tests: Fix race in `validate_padmonitor.buffer_before_segment`

We were using a fakesrc which data flow was potentially breaking the
test. Stop using it and remove dead code.

Fixes #34

5 years agovalidate: fix crash if timeout when media_descriptor is None
Guillaume Desmottes [Mon, 17 Dec 2018 09:34:43 +0000 (10:34 +0100)]
validate: fix crash if timeout when media_descriptor is None

Some tests may not have any media_descriptor. If those were failing to
shutdown after EOS we were calling get_protocol() on None.

5 years agovalidate:launcher: Fix error message
Alexandru Băluț [Fri, 14 Dec 2018 11:00:18 +0000 (12:00 +0100)]
validate:launcher: Fix error message

5 years agovalidate:launcher: Fix discovery of commands
Alexandru Băluț [Fri, 14 Dec 2018 10:17:41 +0000 (11:17 +0100)]
validate:launcher: Fix discovery of commands

5 years agogst: allow building static libraries for e.g. Android/iOS
Matthew Waters [Mon, 10 Dec 2018 02:25:58 +0000 (13:25 +1100)]
gst: allow building static libraries for e.g. Android/iOS

5 years agomeson: Fix build on {cross-,}win{32,64}
Nirbheek Chauhan [Sun, 9 Dec 2018 12:25:37 +0000 (17:55 +0530)]
meson: Fix build on {cross-,}win{32,64}

We use visual studio module definitions for the list of symbols to
export when targetting Windows. Fixes CI failure:

../validate/tools/gst-validate.c:460: undefined reference to `gst_validate_spin_on_fault_signals'

5 years agovalidate:launcher: Do not CK_FORK on our test
Thibault Saunier [Fri, 7 Dec 2018 12:05:09 +0000 (09:05 -0300)]
validate:launcher: Do not CK_FORK on our test

Otherwise the process can't cleanly quit on assertion because of the way libcheck runner is implemented

5 years agovalidate: launcher: Add a way to retrieve trace without coredumpctl
Thibault Saunier [Fri, 7 Dec 2018 12:03:24 +0000 (09:03 -0300)]
validate: launcher: Add a way to retrieve trace without coredumpctl

Simply spnning on segfaults (like gst-launch) and catch that in
the launcher to transform the timeout into a segfault and grab a gdb
backtrace

5 years agovalidate:launcher: Do not take CK_DEFAULT_TIMEOUT into account to set the timeout
Thibault Saunier [Fri, 7 Dec 2018 02:17:29 +0000 (23:17 -0300)]
validate:launcher: Do not take CK_DEFAULT_TIMEOUT into account to set the timeout

The timeout is what is set in the meson build definition otherwise we will not behave as 'meson test' which we should avoid

5 years agovalidate:launcher: Make failure as <failure> in our xunit reporter
Thibault Saunier [Thu, 6 Dec 2018 18:35:18 +0000 (15:35 -0300)]
validate:launcher: Make failure as <failure> in our xunit reporter

I think it was a mistake to call them <error> as the two notions are
different (we marked failed test as "failures" in the <testuite> node).

Should make gitlab happy with our file!

5 years agoAutomatic update of common submodule
Sebastian Dröge [Thu, 6 Dec 2018 09:53:10 +0000 (11:53 +0200)]
Automatic update of common submodule

From eb6a86e to 59cb678

5 years agovalidate:launcher: Add a GST_VALIDATE_LAUNCHER_MAIN_DIR env variable
Thibault Saunier [Fri, 30 Nov 2018 13:59:51 +0000 (10:59 -0300)]
validate:launcher: Add a GST_VALIDATE_LAUNCHER_MAIN_DIR env variable

This is generally usefull so we do not have to pass -M every time we launch the launcher

And it adds support for nesting launcher calls always respecting the provided main directory

+ Fix some new pep8 errors

5 years agovalidate:launcher: Don't about unexisting tests when filtering tests
Thibault Saunier [Wed, 28 Nov 2018 13:14:35 +0000 (10:14 -0300)]
validate:launcher: Don't about unexisting tests when filtering tests

It was wrong