Bug 1407398 - Run talos tp6 and ts_paint in duplication but with a heavy user-profile; r=jmaher draft
authorRob Wood <rwood@mozilla.com>
Thu, 12 Oct 2017 11:29:07 -0400
changeset 681119 35fe3c57ab2ff5a727cb3599d3b56ad9ff8ec3e9
parent 681118 81d911b75946db383508b9df27a9c2f80bea3798
child 736094 889f86667810f10d9aa09494f94962a9089f26c7
push id84764
push userrwood@mozilla.com
push dateTue, 17 Oct 2017 00:21:26 +0000
reviewersjmaher
bugs1407398
milestone58.0a1
Bug 1407398 - Run talos tp6 and ts_paint in duplication but with a heavy user-profile; r=jmaher MozReview-Commit-ID: 5AL1DIz6Raq
taskcluster/ci/test/test-sets.yml
taskcluster/ci/test/tests.yml
testing/talos/talos.json
testing/talos/talos/run_tests.py
testing/talos/talos/test.py
--- 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'