Граф коммитов

36 Коммитов

Автор SHA1 Сообщение Дата
Ricky Stewart 31755b431d Bug 1657650 - Require that Mach command providers subclass MachCommandBase. r=remote-protocol-reviewers,marionette-reviewers,maja_zf,mhentges,froydnj
Today we don't require that `mach` `CommandProvider`s subclass from any particular parent class and we're very lax about the requirements they must meet. While that's convenient in certain circumstances, it has some unfortunate implications for feature development.

Today the only requirements that we have for `CommandProvider`s are that they have an `__init__()` method that takes either 1 or 2 arguments, the second of which must be called `context` and is populated with the `mach` `CommandContext`. Again, while this flexibility is occasionally convenient, it is limiting. As we add features to `mach`, having a better idea what the shape of our `CommandProvider`s are and how we can instantiate them and use them is increasingly important, and this gives us additional control when having `mach` configure `CommandProvider`s based on data that is only available at the `mach` level. In particular, we plan to leverage this in bugs 985141 and 1654074.

Here we add validation to the `CommandProvider` decorator to ensure all classes inherit from `MachCommandBase`, update all `CommandProvider`s in-tree to inherit from `MachCommandBase`, and update source and test code accordingly.

Follow-up work: we now require (de facto) that the `context` be populated with a `topdir` attribute by the `populate_context_handler` function, since instantiating the `MachCommandBase` requires a `topdir` be provided. This is fine for now in the interest of keeping this patch reasonably sized, but some additional refactoring could make this cleaner.

Differential Revision: https://phabricator.services.mozilla.com/D86255
2020-08-07 18:24:59 +00:00
Anny Gakhokidze d6f531d3a5 Bug 1654922 - Part 2: Remove DocumentChannel pref from mach and mochitest tools, r=mattwoodrow,remote-protocol-reviewers,maja_zf
Depends on D85483

Differential Revision: https://phabricator.services.mozilla.com/D85484
2020-07-31 13:06:08 +00:00
Maja Frydrychowicz 0856418749 Bug 1651469 - [puppeteer-test] Report errors in mocha hooks r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D82813
2020-07-09 14:01:50 +00:00
Maja Frydrychowicz 9b12e5b93a Bug 1647439 - [remote] Clobber puppeteer lib/ when there are .ts changes r=remote-protocol-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D82071
2020-07-02 18:52:55 +00:00
Maja Frydrychowicz c0005663ae Bug 1647439 - Sync vendored puppeteer to v4.0.1 r=remote-protocol-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D82070
2020-07-02 18:52:52 +00:00
Maja Frydrychowicz d12c7d9231 Bug 1647439 - [remote] Don't record unexpected skips when there's no expectation metadata r=remote-protocol-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D82068
2020-07-02 18:46:57 +00:00
Maja Frydrychowicz 3cde6129cc Bug 1647439 - [remote] Remove 'jobs' argument r=remote-protocol-reviewers,jgraham
The environment variable it sets has been removed upstream and in practice we
never run tests in parallel.

Differential Revision: https://phabricator.services.mozilla.com/D82067
2020-07-02 18:46:49 +00:00
Maja Frydrychowicz 2456548253 Bug 1647439 - [remote] Preserve custom mocha recorder when vendoring Puppeteer r=remote-protocol-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D82066
2020-07-02 18:46:42 +00:00
Maja Frydrychowicz 408f595e19 Bug 1646923 - [remote] Add metadata checks for skipped and extra tests r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D80796
2020-06-25 05:39:22 +00:00
Maja Frydrychowicz 91ed2688dd Bug 1632710 - [puppeteer] vendor v3.1.0 r=remote-protocol-reviewers,whimboo,jgraham
This requires a custom mocha reporter under puppeteer/
and changes in output parsing.

Differential Revision: https://phabricator.services.mozilla.com/D77625
2020-06-05 18:53:38 +00:00
Maja Frydrychowicz 22b8a4c02c Bug 1632710 - [puppeteer] Remove experimental/ dir r=remote-protocol-reviewers,jgraham,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D77624
2020-06-02 20:49:00 +00:00
Ricky Stewart 7a15c311ac Bug 1639313 - Print usage if you call a bare `mach vendor`, `mach cargo`, or `mach remote` r=remote-protocol-reviewers,froydnj,whimboo
The architecture of `mach` does not make this easy to do from within one process, not least of all due to persistent global, mutable state. :( There may be another way to do this, I'm not saying it's completely impossible (and obviously with a significant enough refactor there's a way to make this happen), but subprocessing is a foolproof way to accomplish the same.

Differential Revision: https://phabricator.services.mozilla.com/D77374
2020-05-29 16:16:31 +00:00
James Graham 9c097cff23 Bug 1638978 - Convert mach puppeteer-test to Python 3, r=remote-protocol-reviewers,maja_zf
Differential Revision: https://phabricator.services.mozilla.com/D77443
2020-05-29 12:37:45 +00:00
Henrik Skupin 02c8f20ea9 Bug 1638982 - [remote] Remove custom usage output for the remote command. r=remote-protocol-reviewers,maja_zf
This aligns our code with other mach commands that don't
show the command usage if no subcommand has been specified.

Differential Revision: https://phabricator.services.mozilla.com/D75900
2020-05-20 04:35:21 +00:00
Tooru Fujisawa 2108f90fcf Bug 1623965 - Improve error message when binary not found while testing. r=glandium,remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,Bebe,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D67726
2020-04-21 11:58:04 +00:00
Henrik Skupin ef795fd2ca Bug 1627780 - [remote] Add status mapping for Mocha's "CRASHED" status. r=remote-protocol-reviewers,maja_zf
Differential Revision: https://phabricator.services.mozilla.com/D70039

--HG--
extra : moz-landing-system : lando
2020-04-07 15:25:52 +00:00
James Graham 8e644c82a1 Bug 1624046 - Always write results with --write-results, r=remote-protocol-reviewers,maja_zf
Differential Revision: https://phabricator.services.mozilla.com/D67861

--HG--
extra : moz-landing-system : lando
2020-03-23 15:25:10 +00:00
James Graham 39d978e838 Bug 1624046 - Fix the ordering of puppeteer expected data, r=remote-protocol-reviewers,maja_zf
Differential Revision: https://phabricator.services.mozilla.com/D67859

--HG--
extra : moz-landing-system : lando
2020-03-23 15:25:33 +00:00
James Graham 01263f8b95 Bug 1622906 - Disabling tests is never unexpected, r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D67030

--HG--
extra : moz-landing-system : lando
2020-03-19 11:06:42 +00:00
James Graham 865cc5f942 Bug 1623029 - Add --subset to puppeteer-test to support running a subset of tests, r=remote-protocol-reviewers,maja_zf,whimboo
This prevents the missing tests check from happening.

Differential Revision: https://phabricator.services.mozilla.com/D67160

--HG--
extra : moz-landing-system : lando
2020-03-18 12:27:39 +00:00
James Graham cb738d610a Bug 1622446 - Make tbpl treat missing results as unexpected, r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D66946

--HG--
extra : moz-landing-system : lando
2020-03-16 14:46:25 +00:00
James Graham 97d4c625a2 Bug 1622446 - Fix default value for expected status, r=remote-protocol-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D66945

--HG--
extra : moz-landing-system : lando
2020-03-16 12:42:26 +00:00
James Graham a871058cb3 Bug 1622087 - Handle TERMINATED status in puppeteer tests, r=remote-protocol-reviewers,maja_zf
It's uncelar if this should be mapped to CRASH or ERROR, but
it probably doesn't matter much; it seems to be a fatal error
that terminates the rest of the run, but we don't get a stack.

I arbitarily chose CRASH.

Differential Revision: https://phabricator.services.mozilla.com/D66753

--HG--
extra : moz-landing-system : lando
2020-03-13 12:37:54 +00:00
James Graham 609861f3ed Bug 1607474 - Add logging and expected results to puppeteer-test, r=remote-protocol-reviewers,maja_zf
Use mozlog to handle logging from the `mach puppeteer-test`
command. This makes the output compatible with treeherder and allows
generating error summaries that can be used by the push-health
feature.

Presently the integration is based on parsing the output from mocha
with regex since that's easy to implement without digging into the
many layers of js code too much. In time it might make sense to
replace this with a custom output formatter integrated into mocha
itself.

We also add the ability to store and use expected results, so that we
are able to detect regressions even when not all test are passing. The
format of expected results is Dict[String, List[String]], where the
keys are test names and the values are lists of statuses. If the list
has more than one value the remaining values are treated as possible
intermittent statuses.

The updated expected statues can be generated by passing the
--write-results flag to the mach command.

Differential Revision: https://phabricator.services.mozilla.com/D65700

--HG--
extra : moz-landing-system : lando
2020-03-10 15:19:16 +00:00
Maja Frydrychowicz 2536ddcb74 Bug 1614108 - Truncate Remote Agent log messages; r=remote-protocol-reviewers,whimboo
Copy format module from Marionette.

Differential Revision: https://phabricator.services.mozilla.com/D62344

--HG--
extra : moz-landing-system : lando
2020-02-15 08:22:56 +00:00
Andreas Tolfsen 4e8d36ea9b bug 1606828: remote: add -v[v] flag to "./mach puppeteer-test" r=remote-protocol-reviewers,whimboo
This introduces a -v[v] flag to the "./mach puppeteer-test" command
for increasing the logging verbosity of the remote agent in Gecko.
This can be used as a shorthand for --setpref="remote.log.level=<level>".

A single -v will enable log messages up to debug level, and two
-vv will enable all log messages up to trace level.

Differential Revision: https://phabricator.services.mozilla.com/D58619

--HG--
extra : moz-landing-system : lando
2020-01-13 11:39:33 +00:00
Andreas Tolfsen b1d2305ed8 bug 1603078: remote: add --enable-fission to "./mach puppeteer-test" r=remote-protocol-reviewers,whimboo
The "./mach puppeteer-test" command now takes a new flag,
--enable-fission, which will set the fission.autostart preference to true.

Differential Revision: https://phabricator.services.mozilla.com/D58512

--HG--
extra : moz-landing-system : lando
2020-01-06 09:55:01 +00:00
Andreas Tolfsen cfb4f745d1 bug 1603078: remote: fix passing extra prefs to Puppeteer r=remote-protocol-reviewers,maja_zf
Puppeteer accepts an environmental variable EXTRA_LAUNCH_OPTIONS
that is a JSON encoded object as a string, containing additional
configuration to use when running tests.

This takes an extraPrefsFirefox key which is an object
mapping preference names to values.  This is extracted in
remote/test/puppeteer/lib/Launcher.js:390 and later written to a
fresh profile in :515.

It appears remote/mach_commands.py has left out the "Firefox" appendix.

Differential Revision: https://phabricator.services.mozilla.com/D58511

--HG--
extra : moz-landing-system : lando
2020-01-10 14:56:21 +00:00
Maja Frydrychowicz 5237b5f25c Bug 1590467 - Use new testing options in puppeteer-test mach command; r=remote-protocol-reviewers,ato
This takes advantage of the browser-selection patch proposed to Puppeteer.
A --product option allows choice between 'firefox' and 'chrome'.
Puppeteer takes care of profile creation for Firefox. Additional Puppeteer
Launcher options can be passed along with --setopt.

Depends on D52313

Differential Revision: https://phabricator.services.mozilla.com/D52314

--HG--
extra : moz-landing-system : lando
2019-11-08 11:58:08 +00:00
Maja Frydrychowicz dddda2631a Bug 1591216 - Minor corrections to Remote Agent documentation; r=remote-protocol-reviewers,ato
DONTBUILD

Differential Revision: https://phabricator.services.mozilla.com/D50519

--HG--
extra : moz-landing-system : lando
2019-10-28 10:16:54 +00:00
Henrik Skupin cef91826dc Bug 1585274 - [remote] Run Puppeteer unit tests in non-headless mode by default. r=remote-protocol-reviewers,maja_zf
Similar to all the other test jobs also the Puppeteer jobs should
not run in headless by default. Instead it should be an opt-in.

Differential Revision: https://phabricator.services.mozilla.com/D48823

--HG--
extra : moz-landing-system : lando
2019-10-10 15:10:48 +00:00
Andreas Tolfsen a5a5c8b5bb bug 1540655: remote: add mach command for running Puppeteer tests; r=remote-protocol-reviewers,jdescottes
Introduces "./mach puppeteer-test" command for running the Puppeteer
tests against the remote agent.  This has to be a top-level command
because the automatic test detection system in mach does not allow
us to delegate to a subcommand such as "./mach remote puppeteer-test".

The tests run against a fork of Puppeteer with hotfixes needed for
it to work  with the CDP implementation in Firefox.  This fork is
located at https://github.com/andreastt/puppeteer/tree/firefox, and
vendored under remote/test/puppeteer/ in a previous commit in this series.

Differential Revision: https://phabricator.services.mozilla.com/D37009

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:15 +00:00
Andreas Tolfsen 8350dc3134 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

Differential Revision: https://phabricator.services.mozilla.com/D37007

--HG--
extra : moz-landing-system : lando
2019-08-16 12:58:06 +00:00
Ciure Andrei 8a1785a6cc Backed out 11 changesets (bug 1540655) for test_resolve.py perma failures CLOSED TREE
Backed out changeset 1a23d770d8a1 (bug 1540655)
Backed out changeset 641a7cb25298 (bug 1540655)
Backed out changeset 73236f81da44 (bug 1540655)
Backed out changeset 8d7bad30be46 (bug 1540655)
Backed out changeset bb012df3018b (bug 1540655)
Backed out changeset 8c67b494e207 (bug 1540655)
Backed out changeset c0a80d37576d (bug 1540655)
Backed out changeset 939ce2afcf0b (bug 1540655)
Backed out changeset 3b3a2a9fbc8b (bug 1540655)
Backed out changeset b96dede008ad (bug 1540655)
Backed out changeset 997d1568d944 (bug 1540655)
2019-08-14 18:53:36 +03:00
Andreas Tolfsen 13b010827d bug 1540655: remote: add mach command for running Puppeteer tests; r=remote-protocol-reviewers,jdescottes
Introduces "./mach puppeteer-test" command for running the Puppeteer
tests against the remote agent.  This has to be a top-level command
because the automatic test detection system in mach does not allow
us to delegate to a subcommand such as "./mach remote puppeteer-test".

The tests run against a fork of Puppeteer with hotfixes needed for
it to work  with the CDP implementation in Firefox.  This fork is
located at https://github.com/andreastt/puppeteer/tree/firefox, and
vendored under remote/test/puppeteer/ in a previous commit in this series.

Differential Revision: https://phabricator.services.mozilla.com/D37009

--HG--
extra : moz-landing-system : lando
2019-08-14 14:58:00 +00:00
Andreas Tolfsen 1c16637ab1 bug 1540655: build, remote: add mach command for vendoring Puppeteer; r=firefox-build-system-reviewers,chmanchester
Introduces "./mach remote vendor-puppeteer" for vendoring the
Puppeteer client without dependencies into remote/test/puppeteer/.

The particular checkout of Puppeteer is
https://github.com/andreastt/puppeteer/tree/firefox, which contains a
couple of hotfixes we need for the client to work with the Firefox
implementation of CDP.

The remote agent targets a specific version of Puppeteer, so it is
not suitable for this to be vendored under third_party/.  We also
wouldn't want other code in central to accidentally use a patched fork.

The vendoring process is not part of "./mach vendor" because it does
not yet have Node.js support, and implementing that for mach is outside
the scope of getting the Puppeteer tests running with the remote agent.

Differential Revision: https://phabricator.services.mozilla.com/D37007

--HG--
extra : moz-landing-system : lando
2019-08-14 14:57:51 +00:00