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
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
49102316df
validate:scenario: Set variables on all action fields
2019-02-01 23:46:21 +00:00
Thibault Saunier
e50d41420e
validate: Handle G_LOG_ERROR in our glog handler
2019-02-01 23:46:21 +00:00
Thibault Saunier
2f957ab932
validate:scenario: Rename action 'define-consts' to 'set-vars'
...
Those are not consts are they can be modified at runtime
2019-02-01 23:46:21 +00:00
Thibault Saunier
d0ee26e950
validate: Cleanup flags/enum_from_string
2019-02-01 23:46:21 +00:00
Mathieu Duponchelle
f9190236af
scenario: prioritize SCENARIOS_PATH when including
2019-02-01 23:08:16 +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
ba9b2c5ec5
validate: Keep trying to print stack traces when our log hanlder is removed
...
There are cases where a crash happens after the program ends
2019-02-01 00:08:45 -03:00
Thibault Saunier
68573ae919
validate:scenario: Give pipeline position when failling on EOS
2019-01-31 23:47:11 -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
25e0694d1e
validate:scenario: Explicitely mark generated stop() action as such
2019-01-31 22:37:17 -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
Edward Hervey
d1319a1b6d
pad-monitor: Remove unused pad getrange override
2019-01-30 14:30:52 +01:00
Edward Hervey
de59b3ad00
validate: Use g_object_{get|set}_qdata where applicable
...
This provides a substantial speedup compared to using strings
2019-01-30 14:29:48 +01: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
Thibault Saunier
7e70bf8729
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
2019-01-29 13:09:36 -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
Thibault Saunier
6665652cff
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
2019-01-26 15:54:00 +00:00
Thibault Saunier
1b3867b82d
launcher: Move http serveur and xvfb server to the main test runner object
...
No good reason for it to be in the main function
2019-01-26 15:54:00 +00:00
Thibault Saunier
3f4f815500
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
2019-01-26 15:54:00 +00:00
Thibault Saunier
9cf213dee0
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.
2019-01-26 15:54:00 +00:00
Thibault Saunier
a3bab7c66e
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...`
2019-01-26 10:11:24 -03:00
Tim-Philipp Müller
2dd8395ee8
Release 1.15.1
2019-01-17 10:01:50 +00:00
Tim-Philipp Müller
ce007a7dcb
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.
2019-01-17 10:00:46 +00:00
Tim-Philipp Müller
3c6769b9f5
win32: update .def file for new API
...
Fixes distcheck
2019-01-17 09:38:13 +00:00
Thibault Saunier
7befe3d033
validate:launcher: Display unix nickname of signals leading to test failure
2019-01-15 16:55:32 -03:00
Thibault Saunier
5692f8d74d
validate:launcher: Fix error message about 'crashed' test
2019-01-15 16:05:41 -03:00
Thibault Saunier
92483ae210
validate: Plug newly introduced leak
2019-01-12 15:25:53 -03:00
Thibault Saunier
31c1a7ac63
validate: Use filename instead of full path in dotfiles names
2019-01-12 10:00:42 -03:00
Thibault Saunier
27f1712671
validate:tests: Fix race in validate_padmonitor.buffer_outside_segment
...
We were using a fakesrc which data flow was potentially breaking the
test.
2019-01-07 00:07:34 +01:00
Thibault Saunier
9d11ade78a
validate: Lower a ERROR message to INFO
...
This behaviour is totally valid when running unit tests
2019-01-07 00:07:34 +01:00
Thibault Saunier
9843562616
validate:tests: s/discount_buffer/discont_buffer/
2019-01-03 15:27:33 +00:00
Thibault Saunier
26ddc02cef
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
2019-01-03 15:27:33 +00:00
Guillaume Desmottes
b1f22e7130
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.
2018-12-17 10:34:43 +01:00
Alexandru Băluț
9a04ba5000
validate:launcher: Fix error message
2018-12-14 12:00:18 +01:00
Alexandru Băluț
b280850718
validate:launcher: Fix discovery of commands
2018-12-14 11:17:41 +01:00
Matthew Waters
1559e1aec7
gst: allow building static libraries for e.g. Android/iOS
2018-12-10 16:47:50 +11:00
Nirbheek Chauhan
5caa9b23b1
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'
2018-12-09 17:55:37 +05:30
Thibault Saunier
b0c0c2d846
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
2018-12-07 09:06:50 -03:00
Thibault Saunier
72995d5bbe
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
2018-12-07 09:06:50 -03:00
Thibault Saunier
21e23c72fc
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
2018-12-06 23:17:29 -03:00
Thibault Saunier
5767d553a6
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!
2018-12-06 15:51:43 -03:00
Sebastian Dröge
744b432441
Automatic update of common submodule
...
From eb6a86e to 59cb678
2018-12-06 11:53:33 +02:00
Thibault Saunier
1c51d3499e
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
2018-11-30 11:00:10 -03:00
Thibault Saunier
ec9464dd90
validate:launcher: Don't about unexisting tests when filtering tests
...
It was wrong
2018-11-28 10:19:52 -03:00
Thibault Saunier
b971a7cd23
validate:launcher: Fix setting meson tests as "parallel"
2018-11-28 10:11:00 -03:00
Thibault Saunier
9ab1d3b6fb
validate:launcher: Avoid using not yet set variables
...
And make the file pep8 compliant with latest pep8 checker.
2018-11-26 10:16:12 -03:00
Thibault Saunier
4bb2648154
validate: launcher: Add a way to load pipeline tests from a scenario
2018-11-25 12:01:12 -03:00
Thibault Saunier
a28ce1b0c9
validate: Update default testsuite git repository
2018-11-22 21:06:36 -03:00
Thibault Saunier
79f686efa6
validate: Enhance printing actions with fields
...
If you have maby field, printed actions where unreadable, clean that
up by adding new lines.
2018-11-17 10:25:28 -03:00
Thibault Saunier
f9790f0eed
validate:scenario: Add an action to 'include' another scenario
...
This is particularly useful for scenario that define constants
that are used to check video frame checksum for example, we can
now have one single 'scenario' file that defines consts for the
checksum of the frames, and those can be reused everywhere.
2018-11-17 09:13:22 -03:00
Thibault Saunier
d4d99267a4
validate:override: Notify override object when they get attached
2018-11-17 09:13:22 -03:00
Alicia Boya García
2c1d8433bd
validate: fix bug monitor subscriptions on pads by name
...
gst_validate_override_register_by_name() was not working when using a
pad name because by the time gst_validate_pad_monitor_do_setup()
was called to set the name of the monitor it was too late for overrides
to have any effect.
Patch written by Thibault.
2018-11-14 17:10:28 +01:00
Matthew Waters
b6b3815dad
Update git locations to gitlab
2018-11-05 05:54:43 +00:00
Thibault Saunier
288258c366
validate: Allow connecting reporters by name for overrides
...
Using the element that owns the pad on which we are connecting
was not making sense.
2018-10-28 14:54:47 +00:00
Wonchul Lee
955fc5fcce
validate: Update for g_type_class_add_private() deprecation in recent GLib
...
https://gitlab.gnome.org/GNOME/glib/merge_requests/7
2018-09-20 15:16:16 -03:00
Thibault Saunier
6457690e1c
Update for g_type_class_add_private() deprecation in recent GLib
2018-09-08 19:24:41 -03:00
Thibault Saunier
64afff0c3e
launcher:scenario: Fix the way we compute scenario path/name when paths supplied
...
We were just iterating over the list without any check and could end
up with a patch that was not corresponding to the actual scenario.
2018-09-08 11:13:19 -03:00
Thibault Saunier
1623f7111c
validate:launcher: Just wait for a while before considering Xvfb is ready if xset is not present
...
This is what xvfb-run so let's consider it good enough
2018-09-07 16:19:50 -03:00
Thibault Saunier
f0cfdf9d14
validate:launcher: Use fakevideosink everywhere it makes sense.
2018-09-07 16:19:40 -03:00
Nirbheek Chauhan
8c06862e80
validate: Export the plugin symbol correctly
...
Otherwise it doesn't get correctly exported when building with MSVC
2018-09-06 17:29:24 +05:30
Nirbheek Chauhan
a86c36b9a9
meson: Add a feature option for tests
...
This autodetection is needed on iOS inside Cerbero where
gstreamer-check-1.0 is not available.
2018-09-01 12:09:32 +05:30
Nirbheek Chauhan
d035501228
meson: Maintain macOS ABI through dylib versioning
...
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.
Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
2018-08-31 14:52:04 +05:30
Nirbheek Chauhan
68a7ad72ac
meson: Build gstvalidate-default-overrides-1.0
...
Needed by Cerbero.
2018-07-31 23:30:36 +05:30
Alicia Boya García
5ff299f4e7
gst-validate-launcher: Print copypaste-friendlier commands
...
This patch removes the quotes surrounding the command shown by
gst-validate to reproduce the issues -- which were troublesome when
copying and pasting.
It also introduces escaping for the arguments, so that the command line
can be copied and pasted in the terminal without further changes.
https://bugzilla.gnome.org/show_bug.cgi?id=796897
2018-07-30 16:13:25 -04:00
Nirbheek Chauhan
fa3648d5fe
meson: Convert common options to feature options
...
The rest will be converted later, these are necessary for gst-build to
set options correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 18:49:13 +05:30
Thibault Saunier
0dbfa44839
validate:scenario: Add an action type to validate last sample checksum
2018-07-21 12:12:16 -04:00
Thibault Saunier
615a372274
validate: launcher: Print some ERROR log when inspecting scenario fails
2018-07-21 11:43:40 -04:00
Thibault Saunier
61a899acf2
validate:scenario: Add a way to define constants to be used in actions
...
Allowing writing simpler to read scenarios.
2018-07-21 11:43:37 -04:00
Thibault Saunier
64e84407bd
validate:scenario: Add a way to set rank on all features of a plugin
...
You often want to make sure that elements from a particular plugins
are always/never plugged, `set-rank,name=plugin-name,rank=XXX` allows
you to simply do that.
2018-07-14 08:27:05 -04:00
Thibault Saunier
4f009f4098
validate:launcher: Minor output string message
2018-07-12 19:13:21 -04:00
Edward Hervey
e0f683dde9
validate: Use 'skipped' keyword in xunit xml
...
It was always meant to be 'skipped' to be 100% compatible with xunit
xsl.
Makes jenkins happy again
2018-07-10 13:23:46 +02:00
Thibault Saunier
29ef55c469
validate:launcher: Stop spamming envvars in unit tests command printing.
...
We used to print the whole environment, making it ugly and hard to
read.
2018-07-08 17:04:25 -04:00
Thibault Saunier
69ec48feef
validate:launcher: Allow retrieving coredumps from within flatpak
2018-07-01 12:55:06 -04:00
Edward Hervey
8d58befadd
pad-monitor: Reset stream-related variables when deactivating
...
Any local variable related to the stream should be resetted
when the pad is deactivated
Avoids weird issues when elements are re-used (and pads are deactivated
and reactivated).
2018-06-19 08:04:01 +02:00