Bug 1383146 - add new talos test to q1s that measures STYLO_THREADS=1. r=rwood
authorJoel Maher <jmaher@mozilla.com>
Thu, 27 Jul 2017 13:54:20 -0400
changeset 422678 29efb0ac89cf07a6b332c30dd03f0e331237d451
parent 422677 c1aab6bb5ab484a909ada09840ffb7c8510623c9
child 422679 8f72d0cb7441ab21c73e9c8fb41162bac17715e0
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersrwood
bugs1383146
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1383146 - add new talos test to q1s that measures STYLO_THREADS=1. r=rwood MozReview-Commit-ID: GA9WO1bGDZz
testing/talos/talos.json
testing/talos/talos/cmdline.py
testing/talos/talos/config.py
testing/talos/talos/run_tests.py
testing/talos/talos/test.py
testing/talos/talos/ttest.py
--- a/testing/talos/talos.json
+++ b/testing/talos/talos.json
@@ -61,11 +61,22 @@
             "tests": ["quantum_pageload_google", "quantum_pageload_youtube", "quantum_pageload_amazon", "quantum_pageload_facebook"],
             "mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
             "talos_options": [
                 "--stylo",
                 "--mitmproxy",
                 "mitmproxy-recording-google.mp mitmproxy-recording-youtube.mp mitmproxy-recording-amazon.mp mitmproxy-recording-facebook.mp",
                 "--firstNonBlankPaint"
             ]
+        },
+        "tp6-stylo-threads-e10s": {
+            "tests": ["tp6_google", "tp6_youtube", "tp6_amazon", "tp6_facebook"],
+            "mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
+            "talos_options": [
+                "--stylo",
+                "--stylo-threads=1",
+                "--mitmproxy",
+                "mitmproxy-recording-google.mp mitmproxy-recording-youtube.mp mitmproxy-recording-amazon.mp mitmproxy-recording-facebook.mp",
+                "--firstNonBlankPaint"
+            ]
         }
     }
 }
--- a/testing/talos/talos/cmdline.py
+++ b/testing/talos/talos/cmdline.py
@@ -167,16 +167,19 @@ def create_parser(mach_interface=False):
             help="list available suites")
     add_arg('--no-upload-results', action="store_true",
             dest='no_upload_results',
             help="If given, it disables uploading of talos results.")
     add_arg('--stylo', action="store_true",
             dest='stylo',
             help='If given, enable Stylo via Environment variables and '
                  'upload results with Stylo options.')
+    add_arg('--stylo-threads', type=int,
+            dest='stylothreads',
+            help='If given, run stylo with a certain number of threads')
 
     add_logging_group(parser)
     return parser
 
 
 def parse_args(argv=None):
     parser = create_parser()
     return parser.parse_args(argv)
--- a/testing/talos/talos/config.py
+++ b/testing/talos/talos/config.py
@@ -434,16 +434,17 @@ def get_browser_config(config):
                 'repository': None,
                 'sourcestamp': None,
                 'symbols_path': None,
                 'test_timeout': 1200,
                 'xperf_path': None,
                 'error_filename': None,
                 'no_upload_results': False,
                 'stylo': False,
+                'stylothreads': 0,
                 }
     browser_config = dict(title=config['title'])
     browser_config.update(dict([(i, config[i]) for i in required]))
     browser_config.update(dict([(i, config.get(i, j))
                           for i, j in optional.items()]))
     return browser_config
 
 
--- a/testing/talos/talos/run_tests.py
+++ b/testing/talos/talos/run_tests.py
@@ -193,16 +193,20 @@ def run_tests(config, browser_config):
     # if e10s add as extra results option
     if config['e10s']:
         talos_results.add_extra_option('e10s')
 
     # stylo is another option for testing
     if config['stylo']:
         talos_results.add_extra_option('stylo')
 
+    # measuring the difference of a a certain thread level
+    if config.get('stylothreads', 0) > 0:
+        talos_results.add_extra_option('%s_thread' % config['stylothreads'])
+
     if config['gecko_profile']:
         talos_results.add_extra_option('geckoProfile')
 
     # some tests use mitmproxy to playback pages
     mitmproxy_recordings_list = config.get('mitmproxy', False)
     if mitmproxy_recordings_list is not False:
         # needed so can tell talos ttest to allow external connections
         browser_config['mitmproxy'] = True
--- a/testing/talos/talos/test.py
+++ b/testing/talos/talos/test.py
@@ -859,8 +859,40 @@ class quantum_pageload_amazon(QuantumPag
 
 
 @register_test()
 class quantum_pageload_facebook(QuantumPageloadTest):
     """
     Quantum Pageload Test - Facebook
     """
     tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_facebook.manifest'
+
+
+@register_test()
+class tp6_google(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Google
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_google.manifest'
+
+
+@register_test()
+class tp6_youtube(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - YouTube
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_youtube.manifest'
+
+
+@register_test()
+class tp6_amazon(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Amazon
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_amazon.manifest'
+
+
+@register_test()
+class tp6_facebook(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Facebook
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_facebook.manifest'
--- a/testing/talos/talos/ttest.py
+++ b/testing/talos/talos/ttest.py
@@ -91,16 +91,20 @@ class TTest(object):
         if test_config['mainthread']:
             mainthread_io = os.path.join(here, "mainthread_io.log")
             setup.env['MOZ_MAIN_THREAD_IO_LOG'] = mainthread_io
 
         # As we transition to Stylo, we need to set env vars and output data properly
         if browser_config['stylo']:
             setup.env['STYLO_FORCE_ENABLED'] = 1
 
+        # During the Stylo transition, measure different number of threads
+        if browser_config.get('stylothreads', 0) > 0:
+            setup.env['STYLO_THREADS'] = browser_config['stylothreads']
+
         test_config['url'] = utils.interpolate(
             test_config['url'],
             profile=setup.profile_dir,
             firefox=browser_config['browser_path']
         )
 
         # setup global (cross-cycle) counters:
         # shutdown, responsiveness