Suite name mismatch with mozharness breaks MOZHARNESS_TEST_PATHS in some cases
Categories
(Developer Infrastructure :: Try, defect, P2)
Tracking
(firefox-esr60 unaffected, firefox-esr68 fixed, firefox68 fixed)
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox-esr68 | --- | fixed |
firefox68 | --- | fixed |
People
(Reporter: ahal, Assigned: ahal)
References
(Regression)
Details
(Keywords: regression)
Attachments
(11 files, 1 obsolete file)
4.75 MB,
text/x-log
|
Details | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Bianca found a bug over in bug 1517083. Here is her push:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=31c8e51e58a655d06884b2ad9e5542e3c5b66c48&selectedJob=224097353
If you look at the top commit you'll see MOZHARNESS_TEST_PATHS in her try_task_config.json:
{
"tasks": [
"test-linux64/opt-mochitest-browser-chrome-e10s-1"
],
"templates": {
"artifact": {
"enabled": "1"
},
"env": {
"MOZHARNESS_TEST_PATHS": "{\"browser-chrome\": \"testing/extensions/browser_chrome/browser_experiment_installed_check.js\"]}",
"TRY_SELECTOR": "fuzzy"
}
},
"version": 1
}
However, in the log we see the entire suite running:
https://taskcluster-artifacts.net/CWHidhXUSmuWcbMcfAVtKA/0/public/logs/live_backing.log
I believe the reason is a suite mismatch here:
https://searchfox.org/mozilla-central/source/testing/mozharness/scripts/desktop_unittest.py#365
In the try_task_config.json, we call the suite "browser-chrome", but in the mozharness commandline we pass in --mochitest-suite=browser-chrome-chunked. I think the latter is not an actual suite name, but an invention of mozharness. Stripping the "-chunked" if it exists should fix this.
Comment 1•6 years ago
|
||
I believe I may have encountered the same thing.
With the following try_task_config.json
{
"tasks": [
"test-linux32/debug-mochitest-browser-chrome-e10s-1",
"test-linux32/opt-mochitest-browser-chrome-e10s-1",
"test-linux64-asan/opt-mochitest-browser-chrome-e10s-1",
"test-linux64-pgo/opt-mochitest-browser-chrome-e10s-1",
"test-linux64/debug-mochitest-browser-chrome-e10s-1",
"test-macosx64/debug-mochitest-browser-chrome-e10s-1",
"test-macosx64/opt-mochitest-browser-chrome-e10s-1",
"test-windows10-64-asan/opt-mochitest-browser-chrome-e10s-1",
"test-windows10-64-pgo/opt-mochitest-browser-chrome-e10s-1",
"test-windows10-64/debug-mochitest-browser-chrome-e10s-1",
"test-windows7-32-pgo/opt-mochitest-browser-chrome-e10s-1",
"test-windows7-32/debug-mochitest-browser-chrome-e10s-1",
"test-windows7-32/opt-mochitest-browser-chrome-e10s-1"
],
"templates": {
"artifact": {
"enabled": "1"
},
"env": {
"MOZHARNESS_TEST_PATHS": "{\"browser-chrome\": [\"browser/components/shell/test/browser_setDesktopBackgroundPreview.js\"]}",
"TRY_SELECTOR": "fuzzy"
},
"rebuild": 2
},
"version": 1
}
Some jobs run the requested browser_setDesktopBackgroundPreview.js, others run other tests entirely.
try push
One of the few jobs it appears to have actually run the right test is the 2nd run on Windows 7 debug (log, backup attached) but even then it included other tests.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
I think this was a regression from bug 1489100, and there's a lot more than browser-chrome affected. I wrote up a test that shows which suites are currently failing. I'll mark the failures expected then fix them up one by one.
Assignee | ||
Comment 4•6 years ago
|
||
It turns out bug 1489100 regressed the ability to specify test paths for most
suites by naively assuming that mozharness uses suite names that look like:
<flavor>-<subsuite>
In reality, there is no consistency to how suite names are generated. This test
does a few things:
-
Patches the moztest.TestResolver to return a list of all possible
suites/subsuites (assuming the lists in moztest.resolve are up to date). -
Finds all the suites defined in the mozharness configs (e.g
linux_unittest.py), and uses these are parametrized inputs. -
Checks that for each test suite,
DesktopUnittest._get_mozharness_test_paths() returns something.
I've marked all of the test suites that currently fail as expected. This way I
have a good sense of what needs to be fixed, and can validate my changes as I
move through the list.
Assignee | ||
Comment 5•6 years ago
|
||
Mozharness appends -chunked/-coverage to some suites, but the build system/test
resolver don't have any concept of these things. We need to normalize these out
for the purposes of MOZHARNESS_TEST_PATHS.
Depends on D25014
Assignee | ||
Comment 6•6 years ago
|
||
Depends on D25015
Assignee | ||
Comment 7•6 years ago
|
||
We should use filter functions instead of regexes here. Would be a lot more robust.
Depends on D25076
Assignee | ||
Comment 8•6 years ago
|
||
Some of these were working with the '<flavor>-<subsuite>' mechanism that was
previously being used, but better to be explicit wherever possible.
Depends on D25077
Assignee | ||
Updated•6 years ago
|
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
bugherder |
Assignee | ||
Comment 12•6 years ago
|
||
There are a few windows/mac-only suites that were missed since we were only
reading the linux variant.
Depends on D25401
Assignee | ||
Comment 13•6 years ago
|
||
Depends on D25432
Comment 14•6 years ago
|
||
Comment 15•6 years ago
|
||
bugherder |
Assignee | ||
Comment 16•6 years ago
|
||
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.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 17•6 years ago
|
||
Comment 18•6 years ago
|
||
![]() |
||
Comment 19•6 years ago
|
||
bugherder |
Assignee | ||
Comment 21•6 years ago
|
||
Yes, have a few patches left to land to get Android working and need to test the marionette/wpt scripts as well.
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 22•6 years ago
|
||
Currently we have the concept of a "suite" and a "flavour" in our task
configuration. Typically, the "suite" refers to the high-level test harness
like "mochitest" or "reftest", whereas the flavour is more specific, e.g
"browser-chrome-instrumentation" or "crashtest". However the line between suite
and flavour is not applied with any semblance of consistency which results in
inconsistent naming throughout the tree.
This patch gets rid of the concept of "flavours" entirely (at least when it
comes to task configuration). A suite is a type of test run, for example:
- mochitest-plain
- mochitest-devtools-chrome
- mochitest-browser-chrome-instrumentation
- jsreftest
- reftest
- firefox-ui-functional-remote
etc
There is no confusion here between suites and flavours because flavours don't
exist. However, there are a couple of places where we do need to know what
"test harness" is used to run a suite. These cases are:
1. For SCHEDULES moz.build rules
2. For the desktop_unittest.py mozharness script which takes arguments like
--mochitest-suite=browser (this is not a compelling use of this information
and should be refactored to work more like the android_emulator_unittest.py
script)
So to get this information, this patch introduces a new concept of a "category"
which is the overall "test harness" that runs the suite. For many suites, the
"category" is identical to the suite name. Unlike flavours, "categories" have
no bearing on how we call or refer to the suite.
Assignee | ||
Comment 23•6 years ago
|
||
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.
Depends on D27554
Comment 24•6 years ago
|
||
Comment 25•6 years ago
|
||
bugherder |
Comment 26•6 years ago
|
||
Assignee | ||
Comment 27•6 years ago
|
||
I believe this was left open to test some of the non desktop_unittest.py
mozharness scripts. But I haven't noticed any more complaints about test paths not working since this landed, so I'll resolve this for now and open a new bug if any further issues are discovered.
Updated•6 years ago
|
Updated•6 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Description
•