Bug 1749928 - [devtools] Split DevTools DAMP test suite in several chunks r=perftest-reviewers,sparky,nchevobbe,ochameau

Depends on D141966

Split DAMP in 3 explicit sub-suites: damp-inspector, damp-webconsole, damp-other

Locally you can still run any DAMP subtest with --suite=damp

Differential Revision: https://phabricator.services.mozilla.com/D137655
This commit is contained in:
Julian Descottes 2022-03-30 16:53:09 +00:00
Родитель 7c3bf8a3fa
Коммит b1d70ee7bd
9 изменённых файлов: 499 добавлений и 222 удалений

Просмотреть файл

@ -98,10 +98,10 @@ talos-chrome-profiling:
- --suite=chromez
- --gecko-profile
talos-damp:
description: Talos devtools (damp)
try-name: damp
treeherder-symbol: T(damp)
talos-damp-inspector:
description: Talos devtools inspector (damp-inspector)
try-name: damp-inspector
treeherder-symbol: T(damp-inspector)
max-run-time: 5400
variants:
- fission
@ -121,12 +121,62 @@ talos-damp:
default: [mozilla-beta, trunk]
mozharness:
extra-options:
- --suite=damp
- --suite=damp-inspector
talos-damp-profiling:
description: Talos devtools (damp) with gecko profiling
try-name: damp-prof
treeherder-symbol: T-Prof(damp)
talos-damp-webconsole:
description: Talos devtools webconsole (damp-webconsole)
try-name: damp-webconsole
treeherder-symbol: T(damp-webconsole)
max-run-time: 5400
variants:
- fission
- webrender-sw+fission
run-without-variant: false
run-on-projects:
by-variant:
webrender-sw+fission:
by-test-platform:
(linux1804|windows10|macosx1015)-64-shippable-qr.*: [mozilla-beta, trunk]
default: []
default:
by-test-platform:
windows.*-32-shippable.*/.*: []
(linux|windows|macos)(?!.*shippable).*: []
(linux|windows10-64|macos)(?!.*-qr).*: []
default: [mozilla-beta, trunk]
mozharness:
extra-options:
- --suite=damp-webconsole
talos-damp-other:
description: Talos devtools other (damp-other)
try-name: damp-other
treeherder-symbol: T(damp-other)
max-run-time: 5400
variants:
- fission
- webrender-sw+fission
run-without-variant: false
run-on-projects:
by-variant:
webrender-sw+fission:
by-test-platform:
(linux1804|windows10|macosx1015)-64-shippable-qr.*: [mozilla-beta, trunk]
default: []
default:
by-test-platform:
windows.*-32-shippable.*/.*: []
(linux|windows|macos)(?!.*shippable).*: []
(linux|windows10-64|macos)(?!.*-qr).*: []
default: [mozilla-beta, trunk]
mozharness:
extra-options:
- --suite=damp-other
talos-damp-inspector-profiling:
description: Talos devtools inspector (damp-inspector) with gecko profiling
try-name: damp-inspector-prof
treeherder-symbol: T-Prof(damp-inspector)
tier: 2
max-run-time: 5400
variants: [fission]
@ -134,7 +184,35 @@ talos-damp-profiling:
run-on-projects: []
mozharness:
extra-options:
- --suite=damp
- --suite=damp-inspector
- --gecko-profile
talos-damp-webconsole-profiling:
description: Talos devtools webconsole (damp-webconsole) with gecko profiling
try-name: damp-webconsole-prof
treeherder-symbol: T-Prof(damp-webconsole)
tier: 2
max-run-time: 5400
variants: [fission]
run-without-variant: false
run-on-projects: []
mozharness:
extra-options:
- --suite=damp-webconsole
- --gecko-profile
talos-damp-other-profiling:
description: Talos devtools other (damp-other) with gecko profiling
try-name: damp-other-prof
treeherder-symbol: T-Prof(damp-other)
tier: 2
max-run-time: 5400
variants: [fission]
run-without-variant: false
run-on-projects: []
mozharness:
extra-options:
- --suite=damp-other
- --gecko-profile
talos-dromaeojs:

Просмотреть файл

@ -35,7 +35,9 @@ mochitest-webgpu:
talos:
- talos-bcv
- talos-chrome
- talos-damp
- talos-damp-inspector
- talos-damp-webconsole
- talos-damp-other
- talos-dromaeojs
- talos-g1
- talos-g3
@ -276,7 +278,9 @@ windows-aarch64-tests:
windows-talos:
- talos-bcv
- talos-chrome
- talos-damp
- talos-damp-inspector
- talos-damp-webconsole
- talos-damp-other
- talos-dromaeojs
- talos-g1
- talos-g4
@ -347,7 +351,9 @@ macosx1015-64-qr-tests:
macosx64-talos:
- talos-bcv
- talos-chrome
- talos-damp
- talos-damp-inspector
- talos-damp-webconsole
- talos-damp-other
- talos-dromaeojs
- talos-g1
- talos-g4

Просмотреть файл

@ -1450,13 +1450,13 @@ Talos test lists
* contact: :ochameau and devtools team
* source: `damp <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/devtools>`__
* type: `Page load`_
* measuring: Developer Tools toolbox startup, shutdown, and reload performance
* measuring: Developer Tools toolbox performance. Split in test suites covering different DevTools areas (inspector, webconsole, other).
* reporting: intervals in ms (lower is better)
* see below for details
* data: there are 36 reported subtests from DAMP which we load 25 times, resulting in 36 sets of 25 data points.
* summarization:
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24 data points; `source: test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l356>`__
* suite: `geometric mean`_ of the 36 subtest results.
* suite: No value for the suite, only individual subtests are relevant.
* description:
To run this locally, you'll need to pull down the `tp5 page
set <#page-sets>`__ and run it in a local web server. See the `tp5
@ -1528,12 +1528,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-swr-fis-e10s**
- ❌
- ❌
- ❌
@ -1549,12 +1569,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-swr-fis-e10s**
- ✅
- ✅
- ❌
@ -1570,12 +1610,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-swr-fis-e10s**
- ✅
- ✅
- ❌
@ -1591,12 +1651,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-swr-fis-e10s**
- ❌
- ❌
- ❌
@ -1612,12 +1692,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-swr-fis-e10s**
- ❌
- ❌
- ❌
@ -1633,12 +1733,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-other-swr-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-fis-e10s**
- ❌
- ❌
- ❌
- ❌
* - **talos-damp-webconsole-swr-fis-e10s**
- ❌
- ❌
- ❌
@ -1654,12 +1774,32 @@ Talos test lists
- autoland
- mozilla-release
- mozilla-beta
* - **talos-damp-fis-e10s**
* - **talos-damp-inspector-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-swr-fis-e10s**
* - **talos-damp-inspector-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-other-swr-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-fis-e10s**
- ✅
- ✅
- ❌
- ✅
* - **talos-damp-webconsole-swr-fis-e10s**
- ✅
- ✅
- ❌

Просмотреть файл

@ -142,12 +142,12 @@ suites:
- contact: :ochameau and devtools team
- source: `damp <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/devtools>`__
- type: `Page load`_
- measuring: Developer Tools toolbox startup, shutdown, and reload performance
- measuring: Developer Tools toolbox performance. Split in test suites covering different DevTools areas (inspector, webconsole, other).
- reporting: intervals in ms (lower is better) - see below for details
- data: there are 36 reported subtests from DAMP which we load 25 times, resulting in 36 sets of 25 data points.
- summarization:
* subtest: `ignore first`_ data point, then take the `median`_ of the remaining 24 data points; `source: test.py <https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l356>`__
* suite: `geometric mean`_ of the 36 subtest results.
* suite: No value for the suite, only individual subtests are relevant.
- description:
To run this locally, you'll need to pull down the `tp5 page
set <#page-sets>`__ and run it in a local web server. See the `tp5

Просмотреть файл

@ -24,7 +24,23 @@
},
"damp": {
"tests": ["damp"],
"pagesets_name": "tp5n.zip"
"pagesets_name": "tp5n.zip",
"extra_prefs": ["talos.damp.suite=all"]
},
"damp-inspector": {
"tests": ["damp"],
"pagesets_name": "tp5n.zip",
"extra_prefs": ["talos.damp.suite=inspector"]
},
"damp-webconsole": {
"tests": ["damp"],
"pagesets_name": "tp5n.zip",
"extra_prefs": ["talos.damp.suite=webconsole"]
},
"damp-other": {
"tests": ["damp"],
"pagesets_name": "tp5n.zip",
"extra_prefs": ["talos.damp.suite=other"]
},
"tabswitch": {
"tests": ["tabswitch"],

Просмотреть файл

@ -333,7 +333,7 @@ class FFSetup(object):
self._init_env()
self._init_profile()
try:
if not self.debug_mode and self.test_config["name"] != "damp":
if not self.debug_mode and not self.test_config["name"].startswith("damp"):
self._run_profile()
except BaseException:
self.clean()

Просмотреть файл

@ -322,6 +322,15 @@ class Output(object):
score = 60 * 1000 / filter.geometric_mean(results) / correctionFactor
return score
@classmethod
def damp_score(cls, val_list):
"""
damp_score: damp is only interested in the value of subtests and will
aggregate data from several suites.
Use a hardcoded value for the suite to avoid inconsistencies.
"""
return 100
def construct_results(self, vals, testname):
if "responsiveness" in testname:
return filter.responsiveness_Metric([val for (val, page) in vals])
@ -337,6 +346,8 @@ class Output(object):
return self.speedometer_score(vals)
elif testname.startswith("stylebench"):
return self.stylebench_score(vals)
elif testname.startswith("damp"):
return self.damp_score(vals)
elif len(vals) > 1:
return filter.geometric_mean([i for i, j in vals])
else:

Просмотреть файл

@ -6,6 +6,13 @@
const Services = require("Services");
const isWindows = Services.appinfo.OS === "WINNT";
const TEST_SUITES = {
INSPECTOR: "inspector",
WEBCONSOLE: "webconsole",
OTHER: "other",
};
/**
* This is the registry for all DAMP tests. Tests will be run in the order specified by
* the DAMP_TESTS array.
@ -19,189 +26,197 @@ const isWindows = Services.appinfo.OS === "WINNT";
* - {Boolean} cold: set to true to run the test only during the first run of the browser
*/
module.exports = [
// The first cold-open test is *colder* than the other cold-open tests, it will also
// assess the impact of loading shared DevTools modules for the first time.
// This test will assert the impact of base loader/Loader.jsm modules loading,
// typically gDevtools/gDevToolsBrowser/Framework modules, while the others will mostly
// track panel-specific modules (Browser loader, but not only).
{
name: "inspector.cold-open",
path: "inspector/cold-open.js",
description:
"Measure first open toolbox on inspector panel (incl. shared modules)",
cold: true,
},
{
name: "debugger.cold-open",
path: "debugger/cold-open.js",
description: "Measure first open toolbox on debugger panel",
cold: true,
},
{
name: "webconsole.cold-open",
path: "webconsole/cold-open.js",
description: "Measure first open toolbox on webconsole panel",
cold: true,
},
{
name: "netmonitor.cold-open",
path: "netmonitor/cold-open.js",
description: "Measure first open toolbox on netmonitor panel",
cold: true,
},
{
name: "accessibility.cold-open",
path: "accessibility/cold-open.js",
description: "Measure first open toolbox on accessibility panel",
cold: true,
},
// Run all tests against "simple" document
{
name: "simple.webconsole",
path: "webconsole/simple.js",
description:
"Measure open/close toolbox on webconsole panel against simple document",
},
{
name: "simple.inspector",
path: "inspector/simple.js",
description:
"Measure open/close toolbox on inspector panel against simple document",
},
{
name: "simple.debugger",
path: "debugger/simple.js",
description:
"Measure open/close toolbox on debugger panel against simple document",
},
{
name: "simple.styleeditor",
path: "styleeditor/simple.js",
description:
"Measure open/close toolbox on style editor panel against simple document",
},
{
name: "simple.netmonitor",
path: "netmonitor/simple.js",
description:
"Measure open/close toolbox on network monitor panel against simple document",
},
{
name: "simple.accessibility",
path: "accessibility/simple.js",
description:
"Measure open/close toolbox on accessibility panel against simple document",
// Bug 1660854 - disable on Windows due to frequent failures
disabled: isWindows,
},
// Run all tests against "complicated" document
{
name: "complicated.webconsole",
path: "webconsole/complicated.js",
description:
"Measure open/close toolbox on webconsole panel against complicated document",
},
{
name: "complicated.inspector",
path: "inspector/complicated.js",
description:
"Measure open/close toolbox on inspector panel against complicated document",
},
{
name: "complicated.debugger",
path: "debugger/complicated.js",
description:
"Measure open/close toolbox on debugger panel against complicated document",
},
{
name: "complicated.styleeditor",
path: "styleeditor/complicated.js",
description:
"Measure open/close toolbox on style editor panel against complicated document",
},
// Bug 1693975 - disable test due to frequent failures
// {
// name: "complicated.netmonitor",
// path: "netmonitor/complicated.js",
// description:
// "Measure open/close toolbox on network monitor panel against complicated document",
// },
// Run all tests against a document specific to each tool
{
name: "custom.webconsole",
path: "webconsole/custom.js",
},
{
name: "custom.inspector",
path: "inspector/custom.js",
},
{
name: "custom.debugger",
path: "debugger/custom.js",
},
// Run individual tests covering a very precise tool feature.
{
name: "console.bulklog",
path: "webconsole/bulklog.js",
description:
"Measure time for a bunch of sync console.log statements to appear",
},
{
name: "console.autocomplete",
path: "webconsole/autocomplete.js",
description: "Measure time for autocomplete popup to appear",
},
{
name: "console.streamlog",
path: "webconsole/streamlog.js",
description:
"Measure rAF on page during a stream of console.log statements",
},
{
name: "console.objectexpand",
path: "webconsole/objectexpand.js",
description: "Measure time to expand a large object and close the console",
},
{
name: "console.openwithcache",
path: "webconsole/openwithcache.js",
description:
"Measure time to render last logged messages in console for a page with 100 logged messages",
},
{
name: "console.typing",
path: "webconsole/typing.js",
description: "Measure time it takes to type something in the console input",
},
{
name: "inspector.mutations",
path: "inspector/mutations.js",
description:
"Measure the time to perform childList mutations when inspector is enabled",
},
{
name: "inspector.layout",
path: "inspector/layout.js",
description:
"Measure the time to open/close toolbox on inspector with layout tab against big document with grid containers",
},
{
name: "panelsInBackground.reload",
path: "toolbox/panels-in-background.js",
description: "Measure page reload time when all panels are in background",
},
{
name: "toolbox.screenshot",
path: "toolbox/screenshot.js",
description: "Measure the time to take a fullpage screenshot",
},
{
name: "server.protocoljs",
path: "server/protocol.js",
description: "Measure RDP/protocol.js performance",
},
// ⚠ Adding new individual tests slows down DAMP execution ⚠
// ⚠ Consider contributing to custom.${tool} rather than adding isolated tests ⚠
// ⚠ See https://firefox-source-docs.mozilla.org/devtools/tests/writing-perf-tests.html ⚠
];
module.exports = {
[TEST_SUITES.INSPECTOR]: [
// The first cold-open test is *colder* than the other cold-open tests, it will also
// assess the impact of loading shared DevTools modules for the first time.
// This test will assert the impact of base loader/Loader.jsm modules loading,
// typically gDevtools/gDevToolsBrowser/Framework modules, while the others will mostly
// track panel-specific modules (Browser loader, but not only).
{
name: "inspector.cold-open",
path: "inspector/cold-open.js",
description:
"Measure first open toolbox on inspector panel (incl. shared modules)",
cold: true,
},
{
name: "accessibility.cold-open",
path: "accessibility/cold-open.js",
description: "Measure first open toolbox on accessibility panel",
cold: true,
},
// Run all tests against "simple" document
{
name: "simple.inspector",
path: "inspector/simple.js",
description:
"Measure open/close toolbox on inspector panel against simple document",
},
{
name: "simple.styleeditor",
path: "styleeditor/simple.js",
description:
"Measure open/close toolbox on style editor panel against simple document",
},
{
name: "simple.accessibility",
path: "accessibility/simple.js",
description:
"Measure open/close toolbox on accessibility panel against simple document",
// Bug 1660854 - disable on Windows due to frequent failures
disabled: isWindows,
},
// Run all tests against "complicated" document
{
name: "complicated.inspector",
path: "inspector/complicated.js",
description:
"Measure open/close toolbox on inspector panel against complicated document",
},
{
name: "complicated.styleeditor",
path: "styleeditor/complicated.js",
description:
"Measure open/close toolbox on style editor panel against complicated document",
},
{
name: "custom.inspector",
path: "inspector/custom.js",
},
// Run individual tests covering a very precise tool feature.
{
name: "inspector.mutations",
path: "inspector/mutations.js",
description:
"Measure the time to perform childList mutations when inspector is enabled",
},
{
name: "inspector.layout",
path: "inspector/layout.js",
description:
"Measure the time to open/close toolbox on inspector with layout tab against big document with grid containers",
},
],
[TEST_SUITES.WEBCONSOLE]: [
{
name: "webconsole.cold-open",
path: "webconsole/cold-open.js",
description: "Measure first open toolbox on webconsole panel",
cold: true,
},
{
name: "simple.webconsole",
path: "webconsole/simple.js",
description:
"Measure open/close toolbox on webconsole panel against simple document",
},
{
name: "complicated.webconsole",
path: "webconsole/complicated.js",
description:
"Measure open/close toolbox on webconsole panel against complicated document",
},
{
name: "custom.webconsole",
path: "webconsole/custom.js",
},
{
name: "console.bulklog",
path: "webconsole/bulklog.js",
description:
"Measure time for a bunch of sync console.log statements to appear",
},
{
name: "console.autocomplete",
path: "webconsole/autocomplete.js",
description: "Measure time for autocomplete popup to appear",
},
{
name: "console.streamlog",
path: "webconsole/streamlog.js",
description:
"Measure rAF on page during a stream of console.log statements",
},
{
name: "console.objectexpand",
path: "webconsole/objectexpand.js",
description:
"Measure time to expand a large object and close the console",
},
{
name: "console.openwithcache",
path: "webconsole/openwithcache.js",
description:
"Measure time to render last logged messages in console for a page with 100 logged messages",
},
{
name: "console.typing",
path: "webconsole/typing.js",
description:
"Measure time it takes to type something in the console input",
},
],
[TEST_SUITES.OTHER]: [
{
name: "debugger.cold-open",
path: "debugger/cold-open.js",
description: "Measure first open toolbox on debugger panel",
cold: true,
},
{
name: "netmonitor.cold-open",
path: "netmonitor/cold-open.js",
description: "Measure first open toolbox on netmonitor panel",
cold: true,
},
{
name: "simple.debugger",
path: "debugger/simple.js",
description:
"Measure open/close toolbox on debugger panel against simple document",
},
{
name: "simple.netmonitor",
path: "netmonitor/simple.js",
description:
"Measure open/close toolbox on network monitor panel against simple document",
},
{
name: "complicated.debugger",
path: "debugger/complicated.js",
description:
"Measure open/close toolbox on debugger panel against complicated document",
},
// Bug 1693975 - disable test due to frequent failures
// {
// name: "complicated.netmonitor",
// path: "netmonitor/complicated.js",
// description:
// "Measure open/close toolbox on network monitor panel against complicated document",
// },
// Run all tests against a document specific to each tool
{
name: "custom.debugger",
path: "debugger/custom.js",
},
{
name: "panelsInBackground.reload",
path: "toolbox/panels-in-background.js",
description: "Measure page reload time when all panels are in background",
},
{
name: "toolbox.screenshot",
path: "toolbox/screenshot.js",
description: "Measure the time to take a fullpage screenshot",
},
{
name: "server.protocoljs",
path: "server/protocol.js",
description: "Measure RDP/protocol.js performance",
},
// ⚠ Adding new individual tests slows down DAMP execution ⚠
// ⚠ Consider contributing to custom.${tool} rather than adding isolated tests ⚠
// ⚠ See https://firefox-source-docs.mozilla.org/devtools/tests/writing-perf-tests.html ⚠
],
};

Просмотреть файл

@ -442,9 +442,20 @@ Damp.prototype = {
// Filter tests via `./mach --subtests filter` command line argument
let filter = Services.prefs.getCharPref("talos.subtests", "");
let tests = DAMP_TESTS.filter(test => !test.disabled).filter(test =>
test.name.includes(filter)
);
const suite = Services.prefs.getCharPref("talos.damp.suite", "");
let testSuite;
if (suite === "all") {
testSuite = Object.values(DAMP_TESTS).flat();
} else {
testSuite = DAMP_TESTS[suite];
if (!testSuite) {
this.error(`Unable to find any test suite matching '${suite}'`);
}
}
let tests = testSuite
.filter(test => !test.disabled)
.filter(test => test.name.includes(filter));
if (tests.length === 0) {
this.error(`Unable to find any test matching '${filter}'`);