diff options
Diffstat (limited to 'testing/talos/talos/tests/devtools/addon/content/damp-tests.js')
-rw-r--r-- | testing/talos/talos/tests/devtools/addon/content/damp-tests.js | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/testing/talos/talos/tests/devtools/addon/content/damp-tests.js b/testing/talos/talos/tests/devtools/addon/content/damp-tests.js new file mode 100644 index 0000000000..4a7a6fe78d --- /dev/null +++ b/testing/talos/talos/tests/devtools/addon/content/damp-tests.js @@ -0,0 +1,255 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const isWindows = Services.appinfo.OS === "WINNT"; + +// DAMP is split in sub-suites to run the tests faster on continuous integration. +// See the initial patches in Bug 1749928 if we need to add more suites. +const TEST_SUITES = { + INSPECTOR: "inspector", + WEBCONSOLE: "webconsole", + OTHER: "other", +}; + +/** + * This is the registry for all DAMP tests. The registry is an object containing + * one property for each DAMP sub-suite used in continuous integration. And each + * property contains the array of tests which correspond to this suite. + * Tests will be run in the order specified by the array. + * + * A test is defined with the following properties: + * - {String} name: the name of the test (should match the path when possible) + * - {String} path: the path to the test file under + * testing/talos/talos/tests/devtools/addon/content/tests/ + * - {String} description: Test description + * - {Boolean} disabled: set to true to skip the test + * - {Boolean} cold: set to true to run the test only during the first run of the browser + */ + +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.sys.mjs 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", + }, + { + name: "custom.styleeditor", + path: "styleeditor/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.log-in-loop-content-process", + path: "webconsole/log-in-loop-content-process.js", + description: + "Measure time for a bunch of sync console.log statements to be handled on the content process", + }, + { + 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: "custom.netmonitor", + path: "netmonitor/custom.js", + description: + "Measure open/reload/close toolbox on network monitor panel against a custom test document", + }, + { + 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: "browser-toolbox", + path: "toolbox/browser-toolbox.js", + }, + { + name: "server.protocoljs", + path: "server/protocol.js", + description: "Measure RDP/protocol.js performance", + }, + { + name: "source-map-loader", + path: "source-map/source-map-loader.js", + description: "Measure source map loader performance", + }, + { + name: "source-map-library", + path: "source-map/source-map-library.js", + description: "Measure source map library 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 ⚠ + ], +}; |