Currently AWSY-with-DMD doesn't work on Windows. This is because `fix-stacks`
is initialized lazily, and by the time the initialization happens some file
descriptors for files are open, and that leads to some major Python2-on-Windows
sadness as described in the big comment in the commit.
To fix the problem, this commit adds an `init` function to `fix_stacks.py` so
that `fix-stacks` can be initialized eagerly, hopefully before any file
descriptors for files are open.
For `dmd.py`, other than fixing the AWSY problems, this has little effect,
because `fix-stacks` is always initialized.
For `utils.py`, which is used to process the output of most tests, this has a
more noticeable effect: the `fix-stacks` process is always spawned, rather than
being spawned only when needed. If no stack traces appear in the test output,
this means that `fix-stacks` is spawned unnecessarily. But it's cheap to spawn;
the expensive part only happens when stack traces start getting fixed. So I
think this change in behaviour is acceptable.
Furthermore, the commit adds a `finish` function to `fix_stacks.py`, so that
the `fix-stacks` process can be explicitly shut down. This has never been done
for processes spawned for any of the stack fixing scripts. It's never caused
problems on Linux/Mac, but it seems to be necessary on Windows to avoid
similar "this file is locked" problems with the test_dmd.js test.
The commit also renames some things to more standard Python style, e.g.
`json_mode` instead of `jsonMode`.
Finally, Android tests use `utils.py` from the repository but `fix_stacks.py`
from the Android host utils. Because the two scripts must be updated in tandem,
this commit also updates the Android host utils to a version that contains the
updated `fix_stacks.py`. Thanks to aerickson for packaging up the new Android
host utils and providing the change to the `hostutils.manifest` file.
Differential Revision: https://phabricator.services.mozilla.com/D69478
moztest assumes os.path but that fails for windows to compare against inputs that use mozpath commands with a posix slash.
Differential Revision: https://phabricator.services.mozilla.com/D71619
Changes:
- add build_flavor attribute in order to support writeruntimes and resolve().
- add subsuite attribute to web-platform-tests in resolve.py so that resolve() does not filter out test objects.
Differential Revision: https://phabricator.services.mozilla.com/D71086
Add a --gpu option to 'mach android-emulator' as a convenient way to over-ride the -gpu argument
passed to the emulator.
Also check the environment for MOZ_EMULATOR_COMMAND_ARGS to allow for additional over-rides
of the emulator command line.
Differential Revision: https://phabricator.services.mozilla.com/D70914
--HG--
extra : moz-landing-system : lando
Update code in a few places to work with Python 3, especially with regard to how we invoke subprocesses with text output. Note that the Marionette test harness code needs to be updated so that text is written out in the correct encoding (see bug 1615748).
Differential Revision: https://phabricator.services.mozilla.com/D69012
--HG--
extra : moz-landing-system : lando
Currently AWSY-with-DMD doesn't work on Windows. This is because `fix-stacks`
is initialized lazily, and by the time the initialization happens some file
descriptors for files are open, and that leads to some major Python2-on-Windows
sadness as described in the big comment in the commit.
To fix the problem, this commit adds an `init` function to `fix_stacks.py` so
that `fix-stacks` can be initialized eagerly, hopefully before any file
descriptors for files are open.
For `dmd.py`, other than fixing the AWSY problems, this has little effect,
because `fix-stacks` is always initialized.
For `utils.py`, which is used to process the output of most tests, this has a
more noticeable effect: the `fix-stacks` process is always spawned, rather than
being spawned only when needed. If no stack traces appear in the test output,
this means that `fix-stacks` is spawned unnecessarily. But it's cheap to spawn;
the expensive part only happens when stack traces start getting fixed. So I
think this change in behaviour is acceptable.
The commit also renames some things to more standard Python style, e.g.
`json_mode` instead of `jsonMode`.
Differential Revision: https://phabricator.services.mozilla.com/D69478
--HG--
extra : moz-landing-system : lando
In some cases, a browser crash may subsequently cause an exception in the harness before
check_for_crashes is called, effectively bypassing crash reporting. This patch catches
the exception to ensure that check_for_crashes is called regardless of such exceptions.
It also fixes the check for non-unicode file names and adds more diagnostic logging.
Differential Revision: https://phabricator.services.mozilla.com/D68901
--HG--
extra : moz-landing-system : lando
The definition for reftest/crashtest variants of web-platform-tests in web-platform.yml has a trailing `s` which is technically incorrect.
This causes problems when querying ActiveData for the runtimes for these subsuites since the suite name recorded in ActiveData has the trailing s.
Changes:
- remove the trailing `s` from the definitions
Differential Revision: https://phabricator.services.mozilla.com/D68069
--HG--
extra : moz-landing-system : lando
Add a line of output whenever check_for_crashes is called (unless suppressed with
quiet parameter). The dump directory seems like the most important thing to report.
Differential Revision: https://phabricator.services.mozilla.com/D68897
--HG--
extra : moz-landing-system : lando
This patch adds the capability to run Google Chrome for Android tests through Raptor-Browsertime.
Chrome must be available on the device being tested, and there are no installation steps being added in this patch since CI already has the latest Chrome version available to test with. That said, this patch adds the ability to find the version of Chrome that is being tested and stores this in the Perfherder artifact. Getting this version is also necessary to be able to run Chrome with the correct chromedriver.
Two tests are initially be enabled for Chrome in this patch: Amazon, and YouTube. They will only run through a cron task three days a week. The other changes done in this patch are required for Chrome to work with Raptor-Browsertime.
Differential Revision: https://phabricator.services.mozilla.com/D65610
--HG--
extra : moz-landing-system : lando
Changes:
Remove references to `mochitest-browser-chrome-gpu` as this suite does not exist.
In `test-sets.yml`, split existing `mochitest-gpu` task into `plain` and `chrome` variants.
In `mochitest.yml` split the existing `mochitest-gpu` task into `plain` and `chrome` variants with separate symbols on treeherder.
Differential Revision: https://phabricator.services.mozilla.com/D66670
--HG--
extra : moz-landing-system : lando
Now that `fix_stacks.py` is being used instead of `fix_macosx_stack.py`,
stack-fixing time has dropped from about 14 minutes to about 30 seconds on my
new MacBook Pro.
Also, print a warning about stacks not being fixed if `MOZ_DISABLE_STACK_FIX`
is set. This warning shows up at the start of the test run.
Also, print a warning about stack fixing slowness, because 30 seconds is long
enough to possibly be surprising. This warning shows up just before the first
stack frame is fixed, like this:
```
Assertion failure: false (BEEP BOOP), at /home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342
Initializing stack-fixing for the first stack frame, this may take a while...
#01: nsGlobalWindowOuter::nsGlobalWindowOuter(unsigned long) (/home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342)
#02: ...
```
Differential Revision: https://phabricator.services.mozilla.com/D65676
--HG--
extra : moz-landing-system : lando
Add additional function signature for mozalloc_abort, as observed in Windows crash reports.
I am a little concerned that there is a more generic issue, but since I cannot find
any other examples, adding this signature seems like the most expedient and least risky
way forward.
Differential Revision: https://phabricator.services.mozilla.com/D66418
--HG--
extra : moz-landing-system : lando
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
Stop using mozcrash.check_for_java_exception(), which scans logcat for uncaught
exceptions. Instead, check for java_stack in the extra dump information during
normal crash reporting; if java_stack is present, display the java exception and
stack instead of dumping a full native crash report.
Differential Revision: https://phabricator.services.mozilla.com/D61836
--HG--
extra : moz-landing-system : lando
Added more stats and dumping them in JSON format.
Also, fixed the windows shutdown process for mitmproxy.
Differential Revision: https://phabricator.services.mozilla.com/D61796
--HG--
extra : moz-landing-system : lando
This patch allows us to dump per-domain hit counts to add more insights in the
proxy usage.
Differential Revision: https://phabricator.services.mozilla.com/D61432
--HG--
extra : moz-landing-system : lando
As an `INFO` line under the top crash message, output MozCrashReason in the format `Mozilla crash reason: SOME_CRASH_REASON()`. This doesn't affect the top line (for bug filing) but issues some extra info from the .extra file, which may be useful to report assertion failures on Android. The format used looks something like this:
```
20:43:14 WARNING - PROCESS-CRASH | remoteautomation.py | application crashed [@ BackgroundEventTarget::Dispatch(already_AddRefed<nsIRunnable>, unsigned int)]
20:43:14 INFO - Mozilla crash reason: MOZ_CRASH()
```
Differential Revision: https://phabricator.services.mozilla.com/D59751
--HG--
extra : moz-landing-system : lando
The list of crash dumps in the dump directory appears as something like `['uuid.dmp, uuid-browser.dmp']`. When iterating over the list of files, the files are always sorted alphabetically, meaning any `uuid-<something>.dmp` goes before `uuid.dmp`. We only really care that `uuid.dmp` comes first, as the rest are just additional data not necessarily related to the crashing process, so iterating the list in reverse should put the right .dmp file first.
Differential Revision: https://phabricator.services.mozilla.com/D61166
--HG--
extra : moz-landing-system : lando
Adds `parse_extra_file(path)` to simply read some json .extra file and return a json dict, or an empty dict if it raises a `ValueError`. In patches for Bug 1572244 this function is used.
Differential Revision: https://phabricator.services.mozilla.com/D59749
--HG--
extra : moz-landing-system : lando
Changes:
`distro` and `platform` have differing behavior when presented with edgier cases such as Arch Linux.
In some cases, the output of `mozinfo.info` when run on Arch Linux comes out to:
```
(u'Arch Linux', '', '')
```
This causes problems for things that rely on mozinfo downstream because the `os_version` value is not set, and during the comparison stage of manifests, manifestparser attempts to run `somevalue > unset value` that then causes mach to error.
Differential Revision: https://phabricator.services.mozilla.com/D60462
--HG--
extra : moz-landing-system : lando
This patch will check the exit code of the ProcessHandler() that
calls the tooltool script, and will also retry when it fails.
Differential Revision: https://phabricator.services.mozilla.com/D60397
--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
To work around the lack of Exception.message in Python 3, I've switched adb.py to using str(e) instead of e.message where we either output or check for a substring in the exception message. This doesn't not work for cases where we want to do an equality comparison but fortunately adb.py does not use exact comparisons.
Differential Revision: https://phabricator.services.mozilla.com/D59130
--HG--
extra : moz-landing-system : lando
AVD names were updated in bug 1599534, but this case - auto-selecting an avd for an arm
build - was missed.
Differential Revision: https://phabricator.services.mozilla.com/D58694
--HG--
extra : moz-landing-system : lando
When we run a suite more than once we can get more than one result for
a test. Iterate over all results when writing the summary rather than
erroring out in this case.
Probably a better solution would be to only write the result from the
current run, but we don't necessarily know what that is, since it's
not tracked by the SummaryHandler.
Differential Revision: https://phabricator.services.mozilla.com/D58133
--HG--
extra : moz-landing-system : lando
Join <topsrcdir> with MANIFEST_PATH in android_device.py. I was concerned about TOOLTOOL_PATH
also, but that is already consistently joined with <topsrcdir> before use. I think these
are the only cases that needed attention.
Differential Revision: https://phabricator.services.mozilla.com/D58548
--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
There was only a single use of 'install-to-subdir' in all our manifests (which
was removed in the previous commit). All the comments around it suggest that it
was a giant hack. Removing it cleans up a lot of complexity and saves me the
trouble of needing to support it in the new sourcedir based TestResolver.
Differential Revision: https://phabricator.services.mozilla.com/D57170
--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
Perusing the changelog, the differences since last version bump are mostly
centered around ironing Python 3 issues. Nothing that should be backwards
incompatible, but larger changes than a dot release might warrant. So bumping
the minor version.
Differential Revision: https://phabricator.services.mozilla.com/D57854
--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
Otherwise, Valgrind is liable to see false positives from mismatched
`new` where the `delete` has been inlined to `free` or vice versa.
Differential Revision: https://phabricator.services.mozilla.com/D55553
--HG--
extra : moz-landing-system : lando
Simple addition of one item to list of granted permissions, for Android P+; see bug 1553515.
Differential Revision: https://phabricator.services.mozilla.com/D55561
--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
Changes:
Replace `<list>.items()` calls with `six.iteritems()`.
Remove `try/except` handling of `unittest` import as we have standardized on python2.7 in CI.
Use `six` to handle metaclass changes while python2/3 intercompatibility is required.
Differential Revision: https://phabricator.services.mozilla.com/D54376
--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
Build flavors are defined in 'python/mozbuild/mozbuild/testing.py'.
This change is needed by D52729 but it's also a good way to tell which suites
are integrated into the TestManifestBackend in the build system. So I'm landing
it here instead.
Depends on D53030
Differential Revision: https://phabricator.services.mozilla.com/D53698
--HG--
extra : moz-landing-system : lando
Whereas:
- desktop tests don't make this check;
- the check for directory existence has been troublesome and almost never useful;
- bug classification of this condition has been troublesome;
- if a startup crash actually did occur before crashreporter init, there would still be an indication in logcat and possibly a tombstone, and the "No test summary found" check would definitely be triggered;
Let's stop checking for minidumps directory creation.
Differential Revision: https://phabricator.services.mozilla.com/D54755
--HG--
extra : moz-landing-system : lando
This function works on all GeckoProcessTypes, not just those for child
processes.
Differential Revision: https://phabricator.services.mozilla.com/D54375
--HG--
extra : moz-landing-system : lando
Changes:
These files do not appear to be referred to by anything as searched on searchfox.
I believe we are safe to remove them.
Differential Revision: https://phabricator.services.mozilla.com/D54201
--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
Build flavors are defined in 'python/mozbuild/mozbuild/testing.py'.
This change is needed by D52729 but it's also a good way to tell which suites
are integrated into the TestManifestBackend in the build system. So I'm landing
it here instead.
Depends on D53030
Differential Revision: https://phabricator.services.mozilla.com/D53698
--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
Changes:
- rename `test.py` to a more descriptive `test_moznetwork.py` and change associated names in the manifest
- added `r` specifier to strings as per PEP warning
- bump version to 1.0.0 pending release to pypi
Differential Revision: https://phabricator.services.mozilla.com/D52107
--HG--
extra : moz-landing-system : lando
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".
The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.
Differential Revision: https://phabricator.services.mozilla.com/D52793
--HG--
extra : moz-landing-system : lando
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".
The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.
Differential Revision: https://phabricator.services.mozilla.com/D52793
--HG--
extra : moz-landing-system : lando
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".
The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.
Differential Revision: https://phabricator.services.mozilla.com/D52793
--HG--
extra : moz-landing-system : lando
Simplified and streamlined the logic in the Linux side of things, to address 1595147.
Only attempt to import and use either `platform` or `distro`, not both.
Perform sanitization of the output string since `distro.linux_distribution()` has a slightly different output than the `platform` equivalent.
Minor version bump to 1.2.1 denoting a bugfix for release to pypi.
Differential Revision: https://phabricator.services.mozilla.com/D52440
--HG--
extra : moz-landing-system : lando
While not strictly necessary for this series, this patch allows:
./mach test path/to/manifest.ini
Which will be especially useful to have now that we are switching to running
tasks by manifest.
Depends on D52241
Differential Revision: https://phabricator.services.mozilla.com/D52242
--HG--
rename : testing/mozbase/moztest/tests/data/srcdir/apple/mochitest.ini => testing/mozbase/moztest/tests/data/srcdir/apple/a11y.ini
extra : moz-landing-system : lando
This gives us the ability to retrieve all browser-chrome tests (no flavor) but
not devtools-chrome (have a flavor).
Differential Revision: https://phabricator.services.mozilla.com/D52241
--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
This loader uses 'reader.find_variables_from_ast' to parse all *_MANIFESTS variables from
moz.build files using the abstract syntax tree. This means it will find all such variables
regardless of the current buildconfig.
Differential Revision: https://phabricator.services.mozilla.com/D51834
--HG--
extra : moz-landing-system : lando
Test test data looks like it was pulled from a live all_tests.pkl file. There
are way more path components than necessary.
This simplifies the test paths so they are easy to manipulate/add/inspect. It
will also make it easier to craft a fake "sourcedir" to test the
TestManifestLoader in the next commit such that the data from both matches.
I decided to use a fruit theme for directories because:
1. Using real directories will pollute grep/searchfox/etc queries with junk.
2. Using a 'dirA', 'dirB', 'dirC' scheme is hard to read.
3. Why not?
This change does not functionally modify what is being tested.
Depends on D51832
Differential Revision: https://phabricator.services.mozilla.com/D51833
--HG--
extra : moz-landing-system : lando
When I updated the dependencies and the `mozinfo.py` code I forgot to bump up the version denoting some changes. This will bump up the version from 1.1.0 to 1.2.0 and permit me to upload a new version to pypi.
Differential Revision: https://phabricator.services.mozilla.com/D51898
--HG--
extra : moz-landing-system : lando
I'm making this refactor now because a future commit is going to completely re-write the
test data (so that it matches the data that a future TestManifestLoader is going to use).
With this method, updating the data will be a lot less tedious.
Differential Revision: https://phabricator.services.mozilla.com/D51278
--HG--
extra : moz-landing-system : lando
This patch adds GPU and CPU clock frequencies as well as Watts used to the metrics that are gathered into perfherder from mozpower.
Differential Revision: https://phabricator.services.mozilla.com/D50522
--HG--
extra : moz-landing-system : lando
Other places take care to handle this case, but not running the tooltool
script. Let's fix that.
Differential Revision: https://phabricator.services.mozilla.com/D51266
--HG--
extra : moz-landing-system : lando
This is needed to release a new mozlog with the PRECONDITION_FAILED
test and subtest status for use in web-platform-tests.
Update all in-tree dependencies on mozlog to >=5.0. These were found
with `hg grep 'mozlog.*[0-9]'`.
Only testing/web-platform/tests/tools/wptrunner/requirements.txt
remains on 4.2.0, and it will be updated in upstream wpt after mozlog
5.0 has been released.
Differential Revision: https://phabricator.services.mozilla.com/D50456
--HG--
extra : moz-landing-system : lando
Previously there was a somewhat strange setup where we had both TestResolver
and TestMetadata classes. Both had 'resolve_tests' function and the separation
of concerns between the two were not clear.
With this change, all of the logic that is related to manipulating and
resolving the loaded tests has been moved to the TestResolver class. Also, the
TestMetadata class has been renamed to TestLoader, and it is solely responsible
for loading the metadata (from the build backend).
Future commits will add other types of TestLoaders.
Differential Revision: https://phabricator.services.mozilla.com/D49768
--HG--
extra : moz-landing-system : lando
A minor cleanup. Re-write paths will now automatically be joined to
self.topobjdir.
Depends on D49766
Differential Revision: https://phabricator.services.mozilla.com/D49767
--HG--
extra : moz-landing-system : lando
Similar to the vcs change, the MozbuildObject already has a reader attribute
available. So we can re-use that instead of creating our own.
Depends on D49765
Differential Revision: https://phabricator.services.mozilla.com/D49766
--HG--
extra : moz-landing-system : lando
Encapsulates all the logic around generating and loading the build backend
metadata on the TestMetadata class. Previously the TestResolver would trigger
the generation if necessary, and TestMetadata would load it. Now both
generation and loading happens in TestMetadata.load_tests.
This change also adds some convenience properties to make it easier to query
the loaded data.
Differential Revision: https://phabricator.services.mozilla.com/D49765
--HG--
extra : moz-landing-system : lando
This prevents us from adding the puppeteer tests over and over again. It
follows the wpt example.
Differential Revision: https://phabricator.services.mozilla.com/D49790
--HG--
extra : moz-landing-system : lando
Since TestResolver is a subclass of MozbuildObject, there's no need to create
separate repository object. It already has one.
Depends on D49761
Differential Revision: https://phabricator.services.mozilla.com/D49764
--HG--
extra : moz-landing-system : lando
This works around a bug in Python:
https://bugs.python.org/issue32745
Null characters aren't allowed in 'c_wchar_p' types anymore, but we can get around
the issue by allocating a buffer in memory and casting it after the fact. This was
discovered via trial and error and I'm not really sure why it works.. But it does.
This also enables the tests under Python 3 on Windows (which thankfully all
seem to pass).
Differential Revision: https://phabricator.services.mozilla.com/D48113
--HG--
extra : moz-landing-system : lando
This patch adds fullscreen and windowed youtube tests for the V9 and H264 encoding at 1080p30 and 1080p60. Each subtest runs for 20 page cycles which amounts to about 5 minutes each. It also begins adding these to power test tasks running on the macosx-1014 reference hardware.
Differential Revision: https://phabricator.services.mozilla.com/D45067
--HG--
extra : moz-landing-system : lando
This implementation speaks the ADB wire protocol over TCP/IP. This is
in constrast to the Python implementation, which generally invokes adb
on the command line. In thousands of runs across multiple devices,
this implementation has proved surprisingly robust.
Differential Revision: https://phabricator.services.mozilla.com/D44895
--HG--
extra : moz-landing-system : lando