Minor version bumps in preparation for new pypi releases of modules now requiring mozlog 6.0 and/or mozcrash 2.0.
Differential Revision: https://phabricator.services.mozilla.com/D66116
--HG--
extra : moz-landing-system : lando
Major version number bump for both mozlog and mozcrash + requirements update.
This is very much like the previous mozlog major bump - see bug 1591384.
This patch does not update testing/web-platform/tests/tools/wptrunner/requirements.txt;
I expect that will be automatically updated by the pyup.io bot once mozlog is re-released.
Differential Revision: https://phabricator.services.mozilla.com/D65135
--HG--
extra : moz-landing-system : lando
The issue here is that the sort order of 2 or more elements with the same key
is indeterminate: One run (say, one test chunk) may order them one way and another
run (another test chunk) may order them another. The chunk_by_manifest() filter
relies on sort order in two places, in both cases using list length as the key
for sorting; as equal list lengths are not uncommon, multiple runs can assign
very different lists of tests to the chunks, even though all the inputs are the
same. Extending keys with unique data provides a simple fix.
Differential Revision: https://phabricator.services.mozilla.com/D59227
--HG--
extra : moz-landing-system : lando
Changes:
Change assert from `assertEquals` to `assertEqual` since the former has been technically deprecated as of 2.7.
Add python3 compatibility in `setup.py`.
This should be the last item to bring full python3 compatibility to manifestparser.
Differential Revision: https://phabricator.services.mozilla.com/D58208
--HG--
extra : moz-landing-system : lando
While the 'prefs' key can only exist in the DEFAULT section of manifests, this
allows parent manifests to propagate their prefs down to included ones.
Differential Revision: https://phabricator.services.mozilla.com/D57635
--HG--
extra : moz-landing-system : lando
Since we made backwards incompatible changes, let's do a major version bump.
Differential Revision: https://phabricator.services.mozilla.com/D57478
--HG--
extra : moz-landing-system : lando
Previously the [DEFAULT] section of a manifest would simply overwrite whatever
values were passed down from the parent. This patch ensures we use
'combine_fields' so things like 'skip-if' and 'support-files' are properly
merged.
Differential Revision: https://phabricator.services.mozilla.com/D57410
--HG--
extra : moz-landing-system : lando
There aren't any manifests using '[parent:<manifest>]' in mozilla-central.
Depends on D57406
Differential Revision: https://phabricator.services.mozilla.com/D57407
--HG--
extra : moz-landing-system : lando
This was probably a remnant from Mozmill. I don't see any uses of it in mozilla-central
anywhere (or even comm-central for that matter).
Depends on D57405
Differential Revision: https://phabricator.services.mozilla.com/D57406
--HG--
extra : moz-landing-system : lando
Changes:
Fix syntax in the test file to work under python3.
Assorted changes to the code style, and eliminating unnecessary warnings.
Differential Revision: https://phabricator.services.mozilla.com/D56803
--HG--
extra : moz-landing-system : lando
Previously, when running |mach mochitest path/to/manifest.ini|, any tests in
manifests that that one includes would not be run.
This fixes that behaviour.
Differential Revision: https://phabricator.services.mozilla.com/D57164
--HG--
extra : moz-landing-system : lando
Changes:
Import the appropriate version of `StringIO` instead of `BytesIO` depending on the version of python, and use it in `manifestparser.py`.
This is required for `test_convert_directory.py` to pass on both python versions. Changes to the test was not required.
Differential Revision: https://phabricator.services.mozilla.com/D56865
--HG--
extra : moz-landing-system : lando
We've long handled chunks by defining the total number of chunks in our CI
configuration, and then passing that value down into the test harnesses at task
runtime (via the '--this-chunk' and '--total-chunks' parameters). The test
harness then runs an algorithm to determine which tests should be run in "this"
chunk.
There are several problems with this approach, but by far the biggest is that
we can't use test information in our scheduling algorithms. The information
simply isn't available yet. This patch switches things around such that we
determine which tests go in which tasks during the taskgraph generation. This
means we have perfect information around which tasks are running which tests,
and if e.g a ccov or machine learning algorithm deems a particular test
important, we can make sure to *only* schedule the tasks that contain that
test.
I'm planning to enable this a couple suites at a time so we don't accidentally
stop running tests. This specifically only enables this mode for
'mochitest-media', 'mochitest-browser-chrome' and 'mochitest-devtools-chrome'.
I chose these suites because they are the ones that are already using the
'chunk_by_runtime' algorithm.
Differential Revision: https://phabricator.services.mozilla.com/D52729
--HG--
extra : moz-landing-system : lando
Ensures child (aka included) manifests always run in the same chunk as their parent.
Differential Revision: https://phabricator.services.mozilla.com/D55284
--HG--
extra : moz-landing-system : lando
Also rename the key from 'ancestor-manifest' to 'ancestor_manifest' to be
consistent with other keys.
Differential Revision: https://phabricator.services.mozilla.com/D55283
--HG--
extra : moz-landing-system : lando
Ensures child (aka included) manifests always run in the same chunk as their parent.
Differential Revision: https://phabricator.services.mozilla.com/D55284
--HG--
extra : moz-landing-system : lando
Also rename the key from 'ancestor-manifest' to 'ancestor_manifest' to be
consistent with other keys.
Differential Revision: https://phabricator.services.mozilla.com/D55283
--HG--
extra : moz-landing-system : lando
As a side-effect this will also update runtime data for all suites using
'--chunk-by-runtime'.
This change simultaneously:
1. Stores runtime data from all suites
2. Stores runtime data from all tests (no more percentile)
3. Stores distinct data for android, unix (osx/linux) and windows
4. Reduces the size of 'testing/runtimes' from 408k -> 168k
The chunks look more balanced from my unscientific glance (especially on Windows).
Differential Revision: https://phabricator.services.mozilla.com/D53702
--HG--
extra : moz-landing-system : lando
As a side-effect this will also update runtime data for all suites using
'--chunk-by-runtime'.
This change simultaneously:
1. Stores runtime data from all suites
2. Stores runtime data from all tests (no more percentile)
3. Stores distinct data for android, unix (osx/linux) and windows
4. Reduces the size of 'testing/runtimes' from 408k -> 168k
The chunks look more balanced from my unscientific glance (especially on Windows).
Differential Revision: https://phabricator.services.mozilla.com/D53702
--HG--
extra : moz-landing-system : lando
This patch fixes a minor issue with manifestparser when it is used in python 3. The problem was that dict.items() returns a generator in python 3 instead of a list.
Differential Revision: https://phabricator.services.mozilla.com/D53953
--HG--
extra : moz-landing-system : lando
Allows 'paths' passed into the pathprefix filter to be manifests. Any path that
ends with '.ini' is considered a manifest.
Depends on D51899
Differential Revision: https://phabricator.services.mozilla.com/D51900
--HG--
extra : moz-landing-system : lando
The current comment processing code strips whitespace from a line, calculates
comment offsets based on the unstripped version, and then strips those offsets
from the stripped version. That means that, for multi-line directives, which
typically have two spaces at the front, the offsets are wrong and lines with
comments end up with a trailing "# " that the expression parser doesn't
understand.
This patch fixes the comment parser to correctly use the stripped line for
offset calculations instead.
Differential Revision: https://phabricator.services.mozilla.com/D38724
--HG--
extra : rebase_source : 9f19314ccab3fb2fa68642ff0aef978cb5c3e13c
Test manifests may be included by multiple other manifests, optionally
with additional variables below the `[include:...]` section header.
These additional variables are specific to the manifest that contained
the "include" section, and should not inadvertently be shared with other
manifests that also happen to include this manifest.
To achieve that, store the defaults for included manifests in a (path to
parent manifest, path to included manifest) tuple instead of just the
included manifest.
Differential Revision: https://phabricator.services.mozilla.com/D18086
--HG--
extra : moz-landing-system : lando
Test manifests may be included by multiple other manifests, optionally
with additional variables below the `[include:...]` section header.
These additional variables are specific to the manifest that contained
the "include" section, and should not inadvertently be shared with other
manifests that also happen to include this manifest.
To achieve that, store the defaults for included manifests in a (path to
parent manifest, path to included manifest) tuple instead of just the
included manifest.
Differential Revision: https://phabricator.services.mozilla.com/D18086
--HG--
extra : moz-landing-system : lando
The following python-test paths are being moved out of 'make check' and into their own task:
- python/mozlint
- testing/mozbase
- tools/lint
The following python-test paths previously did not run on Windows:
- python/mozterm
- testing/marionette
- testing/raptor
- tools/tryselect
Differential Revision: https://phabricator.services.mozilla.com/D10759
--HG--
extra : moz-landing-system : lando
The following python-test paths are being moved out of 'make check' and into their own task:
- python/mozlint
- testing/mozbase
- tools/lint
The following python-test paths previously did not run on Windows:
- python/mozterm
- testing/marionette
- testing/raptor
- tools/tryselect
MozReview-Commit-ID: C07FANaYzf7
Depends on D10758
Differential Revision: https://phabricator.services.mozilla.com/D10759
--HG--
extra : moz-landing-system : lando
This implements a chunk_by_manifest algorithm. It is similar to chunk_by_slice
in that it tries to make an even number of tests run in each chunk. However,
unlike chunk_by_slice it will guarantee that tests in the same manifest will
all run in the same chunk. This makes it suitable to use with run-by-manifest.
This means the chunks won't be perfect (as manifests are differnet sizes). It
is also prone to more randomization, similar to chunk-by-runtime.
In fact, this algorithm is nearly identical to the chunk-by-runtime one, so it
was refactored out to a base class.
MozReview-Commit-ID: HI2ByxW0i8V
--HG--
extra : rebase_source : e066c034b85222d26bafe6873a80366d5bd9df9e
This is a new issue that gets linted with flake8 3.5.0. Basically you should
never use a blank except: statement.
This will catch all exceptions, including KeyboardInterrupt and SystemExit
(which is likely not intended). If a catch all is needed, use
`except: Exception`. If you *really* mean to also catch KeyboardInterrupt et
al, use `except: BaseException`.
Of course, being specific is often better than a catch all.
MozReview-Commit-ID: FKx80MLO4RN
--HG--
extra : rebase_source : 7c74a7d0d81f2c984b47aff3a0ee3448b791177b