I don't know if this covers all the things that use mozinfo (probably not)
but it covers all the suites that use mozinfo and have webrender conditions
in the test manifests (i.e. mochitest and wpt variants).
Differential Revision: https://phabricator.services.mozilla.com/D35869
--HG--
extra : moz-landing-system : lando
The mozlog documents have been updated to reflect the addition of a `known_intermittent`
parameter in `test_status` and `test_end` included in the `StructuredLogger`, and across
multiple mozlog handlers and formatters.
As this was a major change, the version has been bumped to 4.2 for the next pypi release.
Web-platform-tests will eventually require this update in order for future patches related
to `known_intermittent` statuses to merge upstream.
Differential Revision: https://phabricator.services.mozilla.com/D36029
--HG--
extra : moz-landing-system : lando
This effectively avoids the mkdir failures I see with the 29.0.11 emulator
on packet.net with Android 7.0 x86_64. I hate to add this sort of complication
but it really helps clear the way for an otherwise useful upgrade.
Differential Revision: https://phabricator.services.mozilla.com/D34740
--HG--
extra : moz-landing-system : lando
Use the geckoview TestRunnerActivity, org.mozilla.geckoview.test, by default
for all types of mochitests, reftests, and web-platform tests. TRA is already
the default for gtest and geckoview-junit. Fennec, based on ANDROID_PACKAGE_NAME,
remains the default for robocop and marionette-test and I have no plans to
change those. There is a related issue for xpcshell-test -- not the package
name, but the default apk -- but I am reluctant to handle that until bug 1553225
is resolved.
Differential Revision: https://phabricator.services.mozilla.com/D35479
--HG--
extra : moz-landing-system : lando
In particular:
* trait objects without an explicit `dyn` are deprecated
* `...` range patterns are deprecated
I think these shouldn't really warn by default and should be clippy / opt-in
lints, but anyway, doesn't hurt.
Differential Revision: https://phabricator.services.mozilla.com/D35135
--HG--
extra : moz-landing-system : lando
Improve support for Python 3 by running modernize over adb.py and a few other related changes.
Differential Revision: https://phabricator.services.mozilla.com/D19306
--HG--
extra : moz-landing-system : lando
This patch adds a `known_intermittent_statuses` attribute to the `StatusHandler`
class, allowing it to keep a count of expected intermittents for future use.
Additionally, known intermittents are not recorded as `unexpected_statuses` but
are recorded as `expected_statuses`.
testing/mozharness/mozharness/mozilla/structuredlog.py is directly affected by
this change and has been updated to also reflect `known_intermittent_statuses`.
However, it may require a test to be written to check this addition.
The `StatusHandler` test has been added to, ensuring this patch works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D33086
--HG--
extra : moz-landing-system : lando
This patch adds support for the known_intermittent field in the html,
and grouping formatters. Tests have been added to check the new
field in grouping and tbpl formatter tests.
Differential Revision: https://phabricator.services.mozilla.com/D32773
--HG--
extra : moz-landing-system : lando
mozalloc_abort and related abort functions are the top frame for many
different, unrelated crashes because they happen to be the standard way to
abort execution. That makes it difficult to properly classify and deal with
intermittent failures.
This patch changes our crash handling behavior so that we try to skip any
frames at the top of the stack that are in generic abort functions, and use
the topmost frame which is actually relevant to the crash reason instead.
Differential Revision: https://phabricator.services.mozilla.com/D33051
--HG--
extra : moz-landing-system : lando
As the number of tests have grown considerably, for clarity, this patch
moves the formatter tests in test_structured.py to test_formatters.py.
html.py and its corresponding test were also amended to account for
discrepancies in the way Python 2 and 3 handle strings (bytes vs text type).
Differential Revision: https://phabricator.services.mozilla.com/D33048
--HG--
extra : moz-landing-system : lando
As the number of tests have grown considerably, for clarity, this patch
moves the formatter tests in test_structured.py to test_formatters.py.
I am striking an error on one of the tests since the move.
`test_base64_other`, which tests that ability to read different characters
in the HTMLformatter. It appears that whilst moving the tests, `test_end`
now returns a unicode string, which fails the assertion. Am looking into
Python 2 v 3 discrepancies, but any guidance would be most welcome. Error
message will be attached below.
Differential Revision: https://phabricator.services.mozilla.com/D32732
--HG--
extra : moz-landing-system : lando
There is no real need to use mozprocess from this code, so switched to subprocess.
Differential Revision: https://phabricator.services.mozilla.com/D32897
--HG--
extra : moz-landing-system : lando
The in-tree log formatters have been updated to reflect the new `known_intermittent`
field, ensuring that a status matching a `known_intermittent` status is not logged as an
unexpected failure. A message is printed when there is a test status that matches this.
A test for known intermittents has been added to the test_formatters, following the
same testing style for pass or fail.
Differential Revision: https://phabricator.services.mozilla.com/D32174
--HG--
extra : moz-landing-system : lando
Currently, some of the raw JSON logs for mochitest and marionette, et al, include
empty dictionaries, None values and other unremarkable values that are marked
as optional. This fix aims to remove these unnecessary items from being
passed to the raw log.
A method has been added to the log_actions class which removes defaults if they
are marked as optional and the value is included in the default list. This is
called on the kwargs returned by the convert_known method, before being
propagated to the log_raw method for StructuredLogger.
Differential Revision: https://phabricator.services.mozilla.com/D25081
--HG--
extra : moz-landing-system : lando
Currently, some of the raw JSON logs for mochitest and marionette, et al, include
empty dictionaries, None values and other unremarkable values that are marked
as optional. This fix aims to remove these unnecessary items from being
passed to the raw log.
A method has been added to the log_actions class which removes defaults if they
are marked as optional and the value is included in the default list. This is
called on the kwargs returned by the convert_known method, before being
propagated to the log_raw method for StructuredLogger.
Differential Revision: https://phabricator.services.mozilla.com/D25081
--HG--
extra : moz-landing-system : lando
Added a new optional field on the test_end and test_status actions called expected_intermittents
which accepts a List of expected intermittent statuses. The default is None. As it is an optional
field, upon landing of D25081, it will only show if there is an expected intermittent.
A test was added to check that expected_intermittents are logged.
Differential Revision: https://phabricator.services.mozilla.com/D31809
--HG--
extra : moz-landing-system : lando
`./mach run` doesn't work since `_get_host_platform` returns None. So we should
return `win32` on Windows.
Differential Revision: https://phabricator.services.mozilla.com/D30608
--HG--
extra : moz-landing-system : lando
`mach run` as it is doesn't really parallel `mach run` on Desktop;
this makes it a little closer more fully featured. The underlying
functionality is all there in layers of mozharness; let's make it
easier to get to.
Differential Revision: https://phabricator.services.mozilla.com/D18292
--HG--
extra : moz-landing-system : lando
If there is still value to this -- if you know of anyone using jimdb via mach, etc -- I am
happy to throw this away, but otherwise, would like to clean it up.
Differential Revision: https://phabricator.services.mozilla.com/D30943
--HG--
extra : moz-landing-system : lando
The Mozlog version number needed to be updated to 4.1 for the new
release on PyPI. The dependencies of other libraries that require
mozlog were updated to reflect the new version. (mozversion,
mozrunner, mozprofile)
Differential Revision: https://phabricator.services.mozilla.com/D30550
--HG--
extra : moz-landing-system : lando
Uninstalling the test app before re-installing ensures a clean, predictable
starting state for gtest.
Differential Revision: https://phabricator.services.mozilla.com/D30407
--HG--
extra : moz-landing-system : lando
I think a more robust solution would involve disabling the checksum behavior in tooltool.py;
I will leave-open for us to consider later. In the meantime, this will get things working again.
Differential Revision: https://phabricator.services.mozilla.com/D30403
--HG--
extra : moz-landing-system : lando
tempdir has been deprecated for a while. I've set tempfile to 3.0.2 on
purpose to avoid duping rand for now (but this is one more step in the
direction of getting everything to rand 0.6 as tempfile 3 is on it
already).
Differential Revision: https://phabricator.services.mozilla.com/D28278
--HG--
extra : moz-landing-system : lando
In addition to the inconvenience of geckoview installation, there are other reasons to
re-install, notably to test against new changes; let's always offer to install, regardless
of which app is requested and regardless of whether it is installed.
I've also removed the looping that was here: I think prompting once is sufficient.
Differential Revision: https://phabricator.services.mozilla.com/D29880
--HG--
extra : moz-landing-system : lando
Previously we would silently change the value of "e10s" from False to True.
This can cause confusion and lead people to falsely think mochitest-chrome/a11y
work with e10s (they do not).
Now we explicitly error out in this case. This might be slightly less
convenient for the developer (e.g they might need to re-run the command), but
the downside of needing to rerun a test command is less than the risk of
misunderstanding what is being tested.
Note: when running |mach test| or |mach mochitest| on a directory that contains
both chrome/a11y and another suite, we'll still do the right thing and
implicitly set "e10s=False".
Differential Revision: https://phabricator.services.mozilla.com/D28538
--HG--
extra : moz-landing-system : lando
This officially makes 'moztest.resolve' the source of truth when it comes to
suite names. It aligns that file with the names used in both the
desktop_unittest and android_emulator_unittest scripts.
Differential Revision: https://phabricator.services.mozilla.com/D27555
--HG--
extra : moz-landing-system : lando
mozdebug has code to locate Visual Studio using vswhere.exe, but it only
works if vswhere is in PATH. We have a copy vendored in the source tree,
so this change adds support for using that binary when available. Additionally
the code parsing the output of vswhere appeared to be using a key that
does not exist in the JSON output, so this change fixes that to match the
documentation: https://github.com/Microsoft/vswhere/wiki#examples .
Differential Revision: https://phabricator.services.mozilla.com/D16542
--HG--
extra : moz-landing-system : lando
Since e10s is the default configuration, we shouldn't explicitly mark things
with the "-e10s" suffix. Instead we should mark things that *don't* run with
'e10s. This patch removes '-e10s' from all treeherder group symbols and task
labels, adds the "-1proc" suffix to tasks that are non-e10s.
Differential Revision: https://phabricator.services.mozilla.com/D25958
--HG--
extra : moz-landing-system : lando