Bug 1407398 - Run talos tp6 and ts_paint in duplication but with a heavy user-profile; r=jmaher
MozReview-Commit-ID: 5AL1DIz6Raq
--- a/taskcluster/ci/test/test-sets.yml
+++ b/taskcluster/ci/test/test-sets.yml
@@ -64,16 +64,18 @@ talos:
- talos-other
- talos-svgr
- talos-tp5o
- talos-perf-reftest
- talos-perf-reftest-singletons
- talos-tp6
- talos-tp6-stylo-threads
- talos-speedometer
+ - talos-h1
+ - talos-h2
awsy:
- awsy
awsy-stylo-disabled:
- awsy-stylo-disabled
awsy-stylo-sequential:
@@ -191,16 +193,18 @@ windows-talos:
- talos-perf-reftest
- talos-perf-reftest-singletons
- talos-svgr
- talos-tp5o
- talos-xperf
- talos-tp6
- talos-tp6-stylo-threads
- talos-speedometer
+ - talos-h1
+ - talos-h2
windows-talos-stylo-disabled:
- talos-chrome-stylo-disabled
- talos-dromaeojs-stylo-disabled
- talos-g1-stylo-disabled
- talos-g2-stylo-disabled
- talos-g4-stylo-disabled
- talos-g5-stylo-disabled
@@ -248,16 +252,18 @@ macosx64-talos:
- talos-other
- talos-svgr
- talos-tp5o
- talos-perf-reftest
- talos-perf-reftest-singletons
- talos-tp6
- talos-tp6-stylo-threads
- talos-speedometer
+ - talos-h1
+ - talos-h2
macosx64-talos-stylo-disabled:
- talos-chrome-stylo-disabled
- talos-dromaeojs-stylo-disabled
- talos-g1-stylo-disabled
- talos-g2-stylo-disabled
- talos-g4-stylo-disabled
- talos-g5-stylo-disabled
--- a/taskcluster/ci/test/tests.yml
+++ b/taskcluster/ci/test/tests.yml
@@ -1514,16 +1514,70 @@ talos-g5-stylo-disabled:
default:
- talos/linux_config.py
- remove_executables.py
extra-options:
- --suite=g5-stylo-disabled
- --add-option
- --webServer,localhost
+talos-h1:
+ description: "Talos h1"
+ suite: talos
+ try-name: h1
+ treeherder-symbol: tc-T(h1)
+ virtualization: hardware
+ run-on-projects:
+ by-test-platform:
+ linux64-qr/.*: ['mozilla-central', 'try']
+ default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
+ max-run-time: 3600
+ mozharness:
+ script: talos_script.py
+ no-read-buildbot-config: true
+ config:
+ by-test-platform:
+ macosx.*:
+ - talos/mac_config.py
+ windows.*:
+ - talos/windows_config.py
+ default:
+ - talos/linux_config.py
+ extra-options:
+ - --suite=h1
+ - --add-option
+ - --webServer,localhost
+
+talos-h2:
+ description: "Talos h2"
+ suite: talos
+ try-name: h2
+ treeherder-symbol: tc-T(h2)
+ virtualization: hardware
+ run-on-projects:
+ by-test-platform:
+ linux64-qr/.*: ['mozilla-central', 'try']
+ default: ['mozilla-beta', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
+ max-run-time: 3600
+ mozharness:
+ script: talos_script.py
+ no-read-buildbot-config: true
+ config:
+ by-test-platform:
+ macosx.*:
+ - talos/mac_config.py
+ windows.*:
+ - talos/windows_config.py
+ default:
+ - talos/linux_config.py
+ extra-options:
+ - --suite=h2
+ - --add-option
+ - --webServer,localhost
+
talos-other:
description: "Talos other"
suite: talos
try-name: other
treeherder-symbol: tc-T(o)
virtualization: hardware
run-on-projects:
by-test-platform:
--- a/testing/talos/talos.json
+++ b/testing/talos/talos.json
@@ -145,11 +145,25 @@
"mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
"mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
"talos_options": [
"--stylo-threads=1",
"--mitmproxy",
"mitmproxy-recording-google.mp mitmproxy-recording-youtube.mp mitmproxy-recording-amazon.mp mitmproxy-recording-facebook.mp",
"--firstNonBlankPaint"
]
+ },
+ "h1-e10s": {
+ "tests": ["ts_paint_heavy"]
+ },
+ "h2-e10s": {
+ "tests": ["tp6_google_heavy", "tp6_youtube_heavy", "tp6_amazon_heavy", "tp6_facebook_heavy"],
+ "mitmproxy_release_bin_osx": "mitmproxy-2.0.2-osx.tar.gz",
+ "mitmproxy_release_bin_linux64": "mitmproxy-2.0.2-linux.tar.gz",
+ "mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
+ "talos_options": [
+ "--mitmproxy",
+ "mitmproxy-recording-google.mp mitmproxy-recording-youtube.mp mitmproxy-recording-amazon.mp mitmproxy-recording-facebook.mp",
+ "--firstNonBlankPaint"
+ ]
}
}
}
--- a/testing/talos/talos/run_tests.py
+++ b/testing/talos/talos/run_tests.py
@@ -105,17 +105,19 @@ def run_tests(config, browser_config):
os.path.normpath('file:/%s' % (urllib.quote(test['tpmanifest'],
'/\\t:\\')))
if not test.get('url'):
# build 'url' for tptest
test['url'] = buildCommandLine(test)
test['url'] = utils.interpolate(test['url'])
test['setup'] = utils.interpolate(test['setup'])
test['cleanup'] = utils.interpolate(test['cleanup'])
- test['profile'] = config.get('profile')
+
+ if not test.get('profile', False):
+ test['profile'] = config.get('profile')
# pass --no-remote to firefox launch, if --develop is specified
# we do that to allow locally the user to have another running firefox
# instance
if browser_config['develop']:
browser_config['extra_args'] = '--no-remote'
# if using firstNonBlankPaint, must turn on pref for it
--- a/testing/talos/talos/test.py
+++ b/testing/talos/talos/test.py
@@ -103,16 +103,17 @@ class TsBase(Test):
'gecko_profile_startup',
'preferences',
'xperf_counters',
'xperf_providers',
'xperf_user_providers',
'xperf_stackwalk',
'tpmozafterpaint',
'fnbpaint',
+ 'profile',
'firstpaint',
'userready',
'testeventmap',
'base_vs_ref',
'extensions',
'filters',
'setup',
'cleanup',
@@ -151,16 +152,24 @@ class ts_paint(TsBase):
@register_test()
class ts_paint_webext(ts_paint):
webextensions = '${talos}/webextensions/dummy/dummy-signed.xpi'
preferences = {'xpinstall.signatures.required': False}
@register_test()
+class ts_paint_heavy(ts_paint):
+ """
+ ts_paint test ran against a heavy-user profile
+ """
+ profile = 'simple'
+
+
+@register_test()
class sessionrestore(TsBase):
"""
A start up test measuring the time it takes to load a sessionstore.js file.
1. Set up Firefox to restore from a given sessionstore.js file.
2. Launch Firefox.
3. Measure the delta between firstPaint and sessionRestored.
"""
@@ -238,17 +247,17 @@ class PageloaderTest(Test):
keys = ['tpmanifest', 'tpcycles', 'tppagecycles', 'tprender', 'tpchrome',
'tpmozafterpaint', 'fnbpaint', 'tploadnocache', 'firstpaint', 'userready',
'testeventmap', 'base_vs_ref', 'mainthread', 'resolution', 'cycles',
'gecko_profile', 'gecko_profile_interval', 'gecko_profile_entries',
'tptimeout', 'win_counters', 'w7_counters', 'linux_counters', 'mac_counters',
'tpscrolltest', 'xperf_counters', 'timeout', 'shutdown', 'responsiveness',
'profile_path', 'xperf_providers', 'xperf_user_providers', 'xperf_stackwalk',
'format_pagename', 'filters', 'preferences', 'extensions', 'setup', 'cleanup',
- 'lower_is_better', 'alert_threshold', 'unit', 'webextensions']
+ 'lower_is_better', 'alert_threshold', 'unit', 'webextensions', 'profile']
class QuantumPageloadTest(PageloaderTest):
"""
Base class for a Quantum Pageload test
"""
tpcycles = 1
tppagecycles = 25
@@ -912,29 +921,61 @@ class quantum_pageload_facebook(QuantumP
class tp6_google(QuantumPageloadTest):
"""
Quantum Pageload Test - Google
"""
tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_google.manifest'
@register_test()
+class tp6_google_heavy(tp6_google):
+ """
+ tp6_google test ran against a heavy-user profile
+ """
+ profile = 'simple'
+
+
+@register_test()
class tp6_youtube(QuantumPageloadTest):
"""
Quantum Pageload Test - YouTube
"""
tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_youtube.manifest'
@register_test()
+class tp6_youtube_heavy(tp6_youtube):
+ """
+ tp6_youtube test ran against a heavy-user profile
+ """
+ profile = 'simple'
+
+
+@register_test()
class tp6_amazon(QuantumPageloadTest):
"""
Quantum Pageload Test - Amazon
"""
tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_amazon.manifest'
@register_test()
+class tp6_amazon_heavy(tp6_amazon):
+ """
+ tp6_amazon test ran against a heavy-user profile
+ """
+ profile = 'simple'
+
+
+@register_test()
class tp6_facebook(QuantumPageloadTest):
"""
Quantum Pageload Test - Facebook
"""
tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_facebook.manifest'
+
+
+@register_test()
+class tp6_facebook_heavy(tp6_facebook):
+ """
+ tp6_facebook test ran against a heavy-user profile
+ """
+ profile = 'simple'