gecko-dev/testing
Andreas Tolfsen 3421774080 Bug 1211489: Provide message sequencing in Marionette
Message sequencing allows Marionette to provide an asynchronous,
parallel pipelining user-facing interface, limit chances of payload
race conditions, and remove stylistic inconsistencies in how commands
and responses are dispatched internally.

Clients that deliver a blocking WebDriver interface are still be expected
to not send further command requests before the response from the last
command has come back, but if they still happen to do so because of
programming error or otherwise, no harm will be done.  This will guard
against bugs such as bug 1207125.

This patch formalises the command and response concepts, and applies
these concepts to emulator callbacks. Through the new message format,
Marionette is able to provide two-way parallel communication.  In other
words, the server will be able to instruct the client to perform a
command in a non ad-hoc way.

runEmulatorCmd and runEmulatorShell are both turned into command
instructions originating from the server.  This resolves a lot of
technical debt in the server code because they are no longer special-cased
to circumvent the dispatching technique used for all other commands;
commands may originate from either the client or the server providing
parallel pipelining enforced through message sequencing:

             client      server
               |            |
    msgid=1    |----------->|
               |  command   |
               |            |
    msgid=2    |<-----------|
               |  command   |
               |            |
    msgid=2    |----------->|
               |  response  |
               |            |
    msgid=1    |<-----------|
               |  response  |
               |            |

The protocol now consists of a "Command" message and the corresponding
"Response" message.  A "Response" message must always be sent in reply
to a "Command" message.

This bumps the Marionette protocol level to 3.

r=dburns
r=jgriffin

--HG--
extra : commitid : 1kz4Oa2q3Un
2015-09-26 17:12:01 +01:00
..
config Bug 1219807 - Support 'mach run --debug' for Android; r=jmaher 2015-11-19 13:15:34 -07:00
crashtest Bug 1223734 - Add crashtest. r=baku 2015-11-16 18:07:39 -05:00
docker Bug 1223123 - Enable pulse_audio for Linux64 TC desktop jobs + proper window manager. r=dustin 2015-11-25 14:56:02 -05:00
eslint-plugin-mozilla Bug 1228363: Fixed eslint balanced-listeners rule to ignore listeners with no arguments. r=pbrosset 2015-11-27 14:12:52 -08:00
gtest Bug 1227775 - Call mozilla::ipc::windows::InitUIThread() in RunGtestFunc(). r=benwa 2015-11-26 13:50:52 +13:00
instrumentation Bug 1108782 - Part 1: straighten out Java classpaths. r=glandium 2015-08-31 13:35:05 -07:00
luciddream Bug 1216967: Bump Marionette Python packages 2015-10-21 14:21:27 +01:00
marionette Bug 1211489: Provide message sequencing in Marionette 2015-09-26 17:12:01 +01:00
mochitest Merge mozilla-central to fx-team 2015-12-01 15:28:12 +01:00
modules Backed out 2 changesets (bug 1202902) to recking bug 1202902 to be able to reopen inbound on a CLOSED TREE 2015-10-07 14:03:21 +02:00
mozbase Bug 1226554 - [mozlog] bump version to 3.1. r=jgraham 2015-11-20 13:40:24 +01:00
mozharness Bug 1227355 - Configure b2g-ota branch and add update channel r=wcosta a=b2g-otaneedsthis 2015-11-30 20:48:01 -06:00
profiles Merge mozilla-central to fx-team 2015-12-01 15:28:12 +01:00
runtimes Bug 912121 - Update misc. DevTools paths and comments. rs=devtools 2015-09-21 12:07:31 -05:00
specialpowers Bug 1228444 - Rename DIST_FILES to FINAL_TARGET_PP_FILES. r=gps 2015-12-01 08:25:22 +09:00
talos merge mozilla-inbound to mozilla-central a=merge 2015-11-30 13:19:02 +01:00
taskcluster Bug 1227355 - Configure b2g-ota branch and add update channel r=wcosta a=b2g-otaneedsthis 2015-11-30 20:48:01 -06:00
tools Bug 1220411 - add XLDFLAGS to correctly find X libs when linking screentopng r=glandium 2015-11-05 09:48:37 +01:00
tps Bug 1214593 - Remove service worker periodic updater. r=ehsan 2015-11-02 16:08:44 +08:00
web-platform Bug 1229071 - importScripts should throw the correct error result in case the loading of one of scripts fails, r=bz 2015-12-02 13:02:58 +00:00
xpcshell Bug 1222043 - Make "mach xpcshell-test" more TSan-friendly. r=ahalberstadt. 2015-11-25 12:38:20 +01:00
cppunittest.ini Bug 1201997 - Part 1 - Converted compiled test to gtest for nsDeque class. Added tests to test untested methods. r=froydn 2015-11-15 14:47:49 +01:00
mach_commands.py Bug 1216950 - Add --list to |mach try| to display saved try strings, r=chmanchester 2015-10-23 00:57:39 +01:00
machine-configuration.json
README.txt
remotecppunittests.py Bug 1201370 - Add emulator parameter to cppunit test. r=ahal 2015-09-25 11:49:40 +08:00
runcppunittests.py Bug 1217144: Allow for cppunittest to be run locally on OSX. r=erahm 2015-10-27 13:50:56 -04:00
testsuite-targets.mk Bug 1228674 - Handle filenames with spaces in 'define package_archive'. r=gps 2015-11-27 22:33:25 +01:00

Common testing tools for mozilla codebase projects, test suite definitions
for automated test runs, tests that don't fit anywhere else, and other fun
stuff