Guillaume Desmottes [Fri, 20 Mar 2015 10:39:32 +0000 (11:39 +0100)]
validate: scenario: don't borrow @structure in _fill_action()
@structure was borrowed in some code path and wasn't in some other. Make it
clearer, and fix a leak, by always copying it.
Guillaume Desmottes [Fri, 20 Mar 2015 10:33:01 +0000 (11:33 +0100)]
validate: override-registry: fix structs list leak
The list returned by _lines_get_strutures() needs to be deeply freed.
Guillaume Desmottes [Fri, 20 Mar 2015 10:27:29 +0000 (11:27 +0100)]
validate: scenario: fix scenarios leak
Guillaume Desmottes [Fri, 20 Mar 2015 10:25:39 +0000 (11:25 +0100)]
validate: reporter: fix message leak
Guillaume Desmottes [Fri, 20 Mar 2015 10:24:27 +0000 (11:24 +0100)]
validate: report: don't shadow the GString variable
We were leaking the GString as it's freed outside of the block.
Guillaume Desmottes [Fri, 20 Mar 2015 10:24:04 +0000 (11:24 +0100)]
validate: report: fix GStrv leak
Guillaume Desmottes [Fri, 20 Mar 2015 10:23:29 +0000 (11:23 +0100)]
validate: report: fix GStrv leak
We borrow the content of the GStrv but were leaking the array itself.
Guillaume Desmottes [Thu, 19 Mar 2015 16:22:26 +0000 (17:22 +0100)]
launcher: try using gst.supp as valgrind suppressions file
https://bugzilla.gnome.org/show_bug.cgi?id=746465
Guillaume Desmottes [Thu, 19 Mar 2015 16:44:19 +0000 (17:44 +0100)]
validate: install gst.supp
Will be used when running tests inside Valgrind.
https://bugzilla.gnome.org/show_bug.cgi?id=746465
Guillaume Desmottes [Thu, 19 Mar 2015 15:06:54 +0000 (16:06 +0100)]
launcher: add valgrind support
Add a --valgrind option to gst-validate-launcher to run the tests inside
Valgrind and tune GLib's memory allocator accordingly.
Fix https://bugzilla.gnome.org/show_bug.cgi?id=746465
Guillaume Desmottes [Fri, 20 Mar 2015 09:06:35 +0000 (10:06 +0100)]
validate: move scenarios to validate/scenarios/
https://bugzilla.gnome.org/show_bug.cgi?id=746465
Guillaume Desmottes [Thu, 19 Mar 2015 11:22:39 +0000 (12:22 +0100)]
validate:launcher: Fix small typo
Thibault Saunier [Wed, 18 Mar 2015 16:05:19 +0000 (17:05 +0100)]
validate:launcher: Make sure to show apps specific options in the help
Thibault Saunier [Wed, 18 Mar 2015 10:05:08 +0000 (11:05 +0100)]
validate:launcher: Fix test number printing
Thibault Saunier [Sat, 14 Mar 2015 15:40:17 +0000 (15:40 +0000)]
validate:launcher Rename _other_testsuite_for_tester
To _check_tester_has_other_testsuite
Thibault Saunier [Sat, 14 Mar 2015 15:08:12 +0000 (15:08 +0000)]
validate:launcher: Cache all the tests in the runner
This way we do not have to re ask all the test managers
what tests should be run.
Thibault Saunier [Fri, 13 Mar 2015 17:09:08 +0000 (17:09 +0000)]
validate:launcher: Add a way to simply run validate default tests on uris
Summary:
This allows us to easily run all the scenarios on a particular file doing:
$ gst-validate-launcher validate --validate-check-uri file:///some/media/file.webm
Reviewers: Mathieu_Du
Differential Revision: http://phabricator.freedesktop.org/D36
Thibault Saunier [Fri, 13 Mar 2015 17:07:00 +0000 (17:07 +0000)]
validate: keep executing actions even after linking up following execution
When linking actions execution without waiting on execution context, then
idle callback should keep being called so following action keep being
executed.
Thibault Saunier [Tue, 10 Mar 2015 09:29:28 +0000 (10:29 +0100)]
validate: Add more files to .gitignore
Differential Revision: http://phabricator.freedesktop.org/D34
Thibault Saunier [Tue, 10 Mar 2015 09:25:23 +0000 (10:25 +0100)]
validate:scenario: Rename get_position to execute_next_action
That function was wrongly called and did not correspond to what it
actually does.
Vincent Penquerc'h [Mon, 9 Mar 2015 18:26:37 +0000 (18:26 +0000)]
Revert "validate: add non flushing seek support"
This reverts commit
3ff55dcc3119b39e7c86044159db8bce49a2dc3a.
Regressions on the test server, apparently linked to this patchset.
Vincent Penquerc'h [Mon, 9 Mar 2015 18:26:33 +0000 (18:26 +0000)]
Revert "validate: use segments to detect success of flushing seeks too"
This reverts commit
c47cc7ba90e96ffaefe201087428ef448670f3be.
Regressions on the test server, apparently linked to this patchset.
Vincent Penquerc'h [Mon, 9 Mar 2015 18:26:06 +0000 (18:26 +0000)]
Revert "validate: expect a buffer with discontinuity after a seek"
This reverts commit
87064b6994e36203b6976d436feda809068f1497.
Regressions on the test server, apparently linked to this patchset.
Thibault Saunier [Mon, 9 Mar 2015 17:41:54 +0000 (18:41 +0100)]
validate:launcher: Make sure TIMEOUTs do not get converted to ERROR
This was a regression introduced in
c0e3d2e4f190fc9627897cc3d3d016448cb5dbe9
Vincent Penquerc'h [Fri, 27 Feb 2015 16:56:06 +0000 (16:56 +0000)]
validate: expect a buffer with discontinuity after a seek
https://bugzilla.gnome.org/show_bug.cgi?id=744783
Vincent Penquerc'h [Fri, 27 Feb 2015 14:40:09 +0000 (14:40 +0000)]
validate: use segments to detect success of flushing seeks too
https://bugzilla.gnome.org/show_bug.cgi?id=744783
Vincent Penquerc'h [Thu, 19 Feb 2015 13:12:50 +0000 (13:12 +0000)]
validate: add non flushing seek support
and a couple scenarios using them
https://bugzilla.gnome.org/show_bug.cgi?id=744783
Thibault Saunier [Fri, 6 Mar 2015 08:39:10 +0000 (09:39 +0100)]
validate:launcher: Do not forget to install apps/__init__.py
It is a python module that should be usable by external apps/testsuites
Thibault Saunier [Thu, 5 Mar 2015 12:33:27 +0000 (13:33 +0100)]
validate:scenario: Handle not mandatory action types
Summary:
There is currently no way to handle the fact that action types
might be handled only by a specific application but not handling
this action types would not cause any difference for the good execution
of the scenario as a whole
Differential Revision: http://phabricator.freedesktop.org/D33
Thibault Saunier [Mon, 2 Mar 2015 16:32:56 +0000 (17:32 +0100)]
validate:launcher: Better handle GST debug log outputs redirection
Thibault Saunier [Wed, 4 Mar 2015 16:30:41 +0000 (17:30 +0100)]
validate:launcher: First rely on the presence of criticals to set tests result
In the case of external applications they might not set their exist
code bases on the result of validate so we should rely on what
validates as to say first.
Thibault Saunier [Wed, 4 Mar 2015 16:26:55 +0000 (17:26 +0100)]
validate:report: Allow registering of issue types through the introspection
Fixing annotations and make GstValidateIssue refcounted
We break the ABI in that commit but I do not expect anyone to register
issue type outside GstValidate yet.
Add padding in the structures so we can avoid breaking the ABI again later.
Thibault Saunier [Wed, 4 Mar 2015 16:24:52 +0000 (17:24 +0100)]
validate:monitor: Do not requiere a GstObject as target
We can work with any GObject and that allows applications to write
monitors for other aspects too
Thibault Saunier [Tue, 3 Mar 2015 11:26:52 +0000 (12:26 +0100)]
validate:scenario: Alway execute sub action on action running SYNC
Move methods around to avoid needing on top prototypes
Wonchul Lee [Tue, 3 Mar 2015 10:26:33 +0000 (19:26 +0900)]
validate:docs: Rename gst-validate-launch to gst-validate-launcher
https://bugzilla.gnome.org/show_bug.cgi?id=745510
Thibault Saunier [Tue, 3 Mar 2015 10:33:06 +0000 (11:33 +0100)]
validate:scenario: Do not execute last sub action twice when ASYNC
Thibault Saunier [Tue, 3 Mar 2015 09:39:52 +0000 (10:39 +0100)]
validate:scenario: Properly print sub action as if they were main actions
Emanuele Aina [Mon, 2 Mar 2015 13:38:16 +0000 (14:38 +0100)]
validate:docs: Fix typos in Scenario File Format
https://bugzilla.gnome.org/show_bug.cgi?id=736160
Thibault Saunier [Thu, 26 Feb 2015 17:51:57 +0000 (18:51 +0100)]
validate:launcher Do not use git -C as it is relatively recent
https://bugzilla.gnome.org/show_bug.cgi?id=736160
Thibault Saunier [Thu, 26 Feb 2015 10:09:23 +0000 (11:09 +0100)]
validate: Build the preload so when possible
Thibault Saunier [Tue, 24 Feb 2015 18:32:37 +0000 (19:32 +0100)]
validate:launcher: Print the long help in less when possible
Thibault Saunier [Tue, 24 Feb 2015 18:08:12 +0000 (19:08 +0100)]
validate:launcher: Mention testsuite implementation in the help
Thibault Saunier [Mon, 23 Feb 2015 11:24:39 +0000 (12:24 +0100)]
validate: Define GST_PLUGIN_LDFLAGS as needed
Young Han Lee [Thu, 19 Feb 2015 11:53:16 +0000 (20:53 +0900)]
validate: Determine development mode using git hash value
Development mode has been determined by whether the launcher is in git
repo
or not. This could be wrong when the launcher is installed to
subdirectory of other project's git repo, such as jhbuild. It is normal
to install compiled output to subdirectory of your jhbuild.
Changed logic gets the first commit hash of current git repo and
compares it with gst-devtools' the first commit hash.
https://bugzilla.gnome.org/show_bug.cgi?id=744781
Thibault Saunier [Thu, 19 Feb 2015 10:32:05 +0000 (11:32 +0100)]
validate:launcher: Fix typo s/FILE_EXTENDION/FILE_EXTENSION/g
Thibault Saunier [Wed, 18 Feb 2015 13:23:16 +0000 (14:23 +0100)]
validate:scenario: Fix GstValidateAction ABI adding a private structure
This way we can easily extend the structure and avoid needing using
a union and such
Mathieu Duponchelle [Thu, 22 Jan 2015 21:29:10 +0000 (22:29 +0100)]
validate: Test buffer outside of received range.
Summary: As part of the preparation for a port to tracer.
Test Plan: This is a test, we won't test tests
Reviewers: tsaunier
Differential Revision: http://internal.opencreed.com:8888/D19
Tim-Philipp Müller [Wed, 18 Feb 2015 11:36:59 +0000 (11:36 +0000)]
codecanalyzer: fix codec detection with git master
The names might be 'MPEG-2 (Simple Profile)' now.
Shouldn't really rely on codec name strings here
in the first place, but use caps instead.
Thibault Saunier [Wed, 18 Feb 2015 09:05:55 +0000 (10:05 +0100)]
validate: Properly notify user about missing plugins
This way it is clear in gst-validate-launcher that the failure is due
to a missing plugin
Thibault Saunier [Tue, 17 Feb 2015 17:18:56 +0000 (18:18 +0100)]
validate: Fix wrong sizeof usage
sizeof(int) is always <= sizeof(gpointer)
Ramiro Polla [Wed, 21 Jan 2015 12:13:02 +0000 (13:13 +0100)]
validate: launcher: Use cElementTree for XML parsing
Using cElementTree instead of ElementTree speeds up parsing of media
descriptor files.
The total time spent parsing XML files drops from ~0.64 s to ~0.24 s,
leading to faster initialisation times for gst-validate-launcher.
https://bugzilla.gnome.org/show_bug.cgi?id=743293
Thibault Saunier [Tue, 17 Feb 2015 13:56:47 +0000 (14:56 +0100)]
validate: Print actions directly from the scenario
Avoiding user to have to print them in each and every action type
implementation.
This requires adding some API to prepare actions before printing them.
Preparing action in that case mean parsing the values contained in the
GstStructure parsing equations and setting back the actual value
afterward
API:
* GstValidatePrepateAction
* gst_validate_action_type_set_prepare_function
Thibault Saunier [Mon, 16 Feb 2015 21:12:54 +0000 (22:12 +0100)]
validate: Fix build on windows
Check where libgstvalidate.dll is installed and use that base folder to
figure out where GstValidate plugins are installed
Thibault Saunier [Mon, 16 Feb 2015 19:52:54 +0000 (20:52 +0100)]
validate: Do not forget to dist _full variant of scrubing scenarios
Thibault Saunier [Mon, 16 Feb 2015 18:49:50 +0000 (19:49 +0100)]
validate: Create a gst-validate-types.h header where we define types
And include it from validate.h.
This way we avoid to need to typedef GstValidateAction twice, which is
a C11 feature
Edward Hervey [Mon, 16 Feb 2015 18:24:23 +0000 (19:24 +0100)]
validate-report: Fix valist usage
a va_list always 'exists' (it's a struct). It therefore can't be NULL
(and can't be tested)
Just use the regular print variant where appropriate.
Thibault Saunier [Mon, 16 Feb 2015 15:47:37 +0000 (16:47 +0100)]
validate:scenario: Document locking
Thibault Saunier [Fri, 13 Feb 2015 11:17:37 +0000 (12:17 +0100)]
validate:scenario: Make get_position happen on idle
Summary:
- Add a way to force action to be executed in their own GSource dispatch, disabling chain action execution
API:
GstValidateScenario::execute-on-idle property
Thibault Saunier [Thu, 12 Feb 2015 15:23:49 +0000 (16:23 +0100)]
validate:scenario: Add a method to retrieve all remaining actions
Not only the next one as it was not making much sense!
API:
- gst_validate_scenario_get_next_action
+ gst_validate_scenario_get_actions
Thibault Saunier [Thu, 12 Feb 2015 15:13:09 +0000 (16:13 +0100)]
validate:utils: Fix some annotations
Thibault Saunier [Thu, 12 Feb 2015 15:10:00 +0000 (16:10 +0100)]
validate:scenario: Allow link up of action executions for overriden types
Exposing a GstValidateActionType.overriden_type field
And properly expose gst_validate_execute_action
Thibault Saunier [Thu, 12 Feb 2015 15:09:11 +0000 (16:09 +0100)]
validate:reporter: Always print reports in the Gst debug system
Thibault Saunier [Wed, 11 Feb 2015 17:27:10 +0000 (18:27 +0100)]
validate: Misc fixes
Thibault Saunier [Wed, 11 Feb 2015 16:06:06 +0000 (17:06 +0100)]
validate: Properly annotate gst_validate_register_action_type*
It does not return any reference to the type
Thibault Saunier [Tue, 10 Feb 2015 12:50:23 +0000 (13:50 +0100)]
Revert "validate:scenario: Add a way to specify action structure size"
This reverts commit
b976319ef7f977b8ce910c4b8aa1a843da3b264f.
Now that the exact same structure can be used to represent different
action types, we can not rely on the structure size to stuff
informations into the action. Users should just make use of
GstMiniObject.qdata.
Thibault Saunier [Tue, 10 Feb 2015 12:39:43 +0000 (13:39 +0100)]
validate:scenario: We do not own any ref in GstValidateExecuteAction
And gst_validate_action_set_done might very well unref the last
reference to the action
Thibault Saunier [Tue, 10 Feb 2015 12:22:34 +0000 (13:22 +0100)]
validate: Make sure that the latest action type registration is kept
Avoiding to change the behaviour!
Thibault Saunier [Sat, 7 Feb 2015 11:51:30 +0000 (12:51 +0100)]
validate:scenario: Handle scenario repeat property with sub actions
And port change_state_intensive.scenario to it
Thibault Saunier [Sat, 7 Feb 2015 10:19:22 +0000 (11:19 +0100)]
validate:scenario: Add the notion of sub actions
Sub action will allow user to executed action *right* after the
previous action has been completed, meaning in the end that both
action can be considered as one single action.
+ Factor out a function to fill an GstValidateAction structure from a
GstStructure
+ Factor out a function to set action playback time
Thibault Saunier [Fri, 6 Feb 2015 11:20:30 +0000 (12:20 +0100)]
validate: Document some env variable usage
Thibault Saunier [Fri, 6 Feb 2015 10:46:13 +0000 (11:46 +0100)]
validate: Add an API to cleanly register action type from plugins
API:
gst_validate_register_action_type_dynamic
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 21:12:48 +0000 (22:12 +0100)]
validate: Rename libfaultinjector to libgstvalidatefaultinjector
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:14:04 +0000 (15:14 +0100)]
validate: Use plugin name as implementer_namespace when registering action type
And document it as a good practice as it will allow us to map plugins
and action types
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 13:54:55 +0000 (14:54 +0100)]
validate: Move the fault_injection plugin to gst/plugins/
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 13:50:14 +0000 (14:50 +0100)]
validate: Use an actual GstRegistry to track our plugins
Keeping everything internal for now
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 13:30:05 +0000 (14:30 +0100)]
validate: Implement fault_injection as a Gs(tValidate)Plugin
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Mon, 2 Feb 2015 17:00:14 +0000 (18:00 +0100)]
validate:scenario: Add a way to specify action structure size
And return the register GstValidateActionType on registration
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Mon, 2 Feb 2015 10:41:24 +0000 (11:41 +0100)]
scenario: Do not concider we are seek_in_paused if executing a new action
The new action might change the position on purpose and we should not
fail in that case.
Also at that point we know the test of position after the seek has
been executed
+ Minor cosmetic fixes
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Tue, 20 Jan 2015 08:59:23 +0000 (09:59 +0100)]
validate:launcher:baseclasses: Avoid raising axception when all getting scenarios
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Tue, 13 Jan 2015 18:07:04 +0000 (19:07 +0100)]
launcher: Use gst-integration-testsuites FDO git repo
And make sure that people that were using the old repo get the origin
repo properly updated.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:27:37 +0000 (15:27 +0100)]
validate: launcher: Allow discovering scenario from full path
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:25:50 +0000 (15:25 +0100)]
validate: scenario: Add a method to get the following action to be executed
API:
+ gst_validate_scenario_get_next_action
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:24:35 +0000 (15:24 +0100)]
validate: Add helper functions ti print actions
API:
+ gst_validate_scenario_get_next_action
+ gst_validate_reporter_report_simple
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:23:29 +0000 (15:23 +0100)]
validate: Minor documentation fixes
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 4 Feb 2015 14:18:22 +0000 (15:18 +0100)]
validate: Set seek_with_stop as needing at least 2secs media files
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 22:23:11 +0000 (23:23 +0100)]
validate: Fix the check of action that can be *not* executed
The check was wrong and we ended up allowing seek actions to no be
executed.
API:
GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 22:16:27 +0000 (23:16 +0100)]
validate:scenario; Advertise action types that will be executed on addition
Adding a flag to the action type
And make that code thread safe.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 22:12:30 +0000 (23:12 +0100)]
validate:scenario: Add a Flag fore ActionType that need clocks sync
And cleanly use it to set the need-clock-sync field in
the scenario properties
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 18:17:45 +0000 (19:17 +0100)]
validate: Add the notion of INTERLACED actions
An interlaced action is an action that will be executed ASYNC but
without that will not block following actions during its execution.
The action should be set to done later on at any point during the
execution of the scenario.
API:
+ GST_VALIDATE_EXECUTE_ACTION_INTERLACED
+ GST_VALIDATE_ACTION_TYPE_INTERLACED
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 18:15:59 +0000 (19:15 +0100)]
validate: Add a way to retrieve register actoin type from outside
API:
* GstValidateActionType
* gst_validate_get_action_type
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 15:01:49 +0000 (16:01 +0100)]
validate:launcher: Implement a FakeMediaDescriptor
This allows us to more cleanly implement Simple pipeline test
generation
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 15:00:19 +0000 (16:00 +0100)]
validate:scenario: Make action->scenario public API
It can be usefull for action type implementers
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Sat, 13 Dec 2014 15:00:12 +0000 (16:00 +0100)]
validate:scenario: Add a disable-plugin action type
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Fri, 12 Dec 2014 13:41:38 +0000 (14:41 +0100)]
validate: Properly advertise the wait action as ASYNC
And add some printing when executing the set-property action
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Fri, 12 Dec 2014 13:36:16 +0000 (14:36 +0100)]
validate: Enhance support for simple pipeline test generation
The GstValidatePipelineGenerator was quite limited in term
of configuration for user who just want to specify pipelines
to run with/without scenario.
Enhance the API so that we can properly configure that.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Thu, 11 Dec 2014 13:21:12 +0000 (14:21 +0100)]
validate: Wait for switch-track to complete before executing next action
This action type can take some time, we need to make sure that the
combiner/input-selector element properly pushed a buffer marked
as DISCONT to concider the action is done.
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Thu, 11 Dec 2014 11:08:13 +0000 (12:08 +0100)]
validate:scenario: Avoid waiting for 50ms between actions
We should be able to execute the next action as soon as the previous
one is fully completed, make sure the code tries to do that and does
not artificially add some waiting time.
And make sure if the gst_validate_action_set_done is called from outside
our execution thread, we do not try to execute anything
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Thibault Saunier [Wed, 10 Dec 2014 19:37:58 +0000 (20:37 +0100)]
scenario: Add a signal to notify user when the scenario is DONE executing
https://bugzilla.gnome.org/show_bug.cgi?id=743994
Ramiro Polla [Tue, 20 Jan 2015 15:44:07 +0000 (16:44 +0100)]
validate: launcher: Print test name in Result
https://bugzilla.gnome.org/show_bug.cgi?id=743063
Ramiro Polla [Fri, 16 Jan 2015 20:29:55 +0000 (21:29 +0100)]
validate: launcher: Add option to run tests in parallel
Patch 4/4 to implement parallel test execution.
https://bugzilla.gnome.org/show_bug.cgi?id=743063