Bug 1232270 - set alert_threshold definitions for talos. r?wlach draft
authorJoel Maher <jmaher@mozilla.com>
Wed, 06 Apr 2016 16:30:37 -0400
changeset 348199 4e99a1545033565aae86e4959542215f740f5714
parent 348198 1bc6fd8ffd85f9472cfc0632a0869017fdf31816
child 517806 44940e7cd15595d5a982c0db0dc6ccace1b6db03
push id14777
push userjmaher@mozilla.com
push dateWed, 06 Apr 2016 23:07:12 +0000
reviewerswlach
bugs1232270
milestone48.0a1
Bug 1232270 - set alert_threshold definitions for talos. r?wlach MozReview-Commit-ID: 4xKQ9JXpjp6
testing/talos/talos/output.py
testing/talos/talos/test.py
--- a/testing/talos/talos/output.py
+++ b/testing/talos/talos/output.py
@@ -212,26 +212,32 @@ class PerfherderOutput(Output):
                             'name': page,
                             'value': val['filtered'],
                             'replicates': replicates[page],
                         }
                         subtests.append(subtest)
                         if test.test_config.get('lower_is_better') is not None:
                             subtest['lowerIsBetter'] = \
                                 test.test_config['lower_is_better']
+                        if test.test_config.get('alert_threshold') is not None:
+                            subtest['alertThreshold'] = \
+                                test.test_config['alert_threshold']
                         if test.test_config.get('unit'):
                             subtest['unit'] = test.test_config['unit']
 
                 # if there is more than one subtest, calculate a summary result
                 if len(subtests) > 1:
                     suite['value'] = self.construct_results(
                         vals, testname=test.name())
                 if test.test_config.get('lower_is_better') is not None:
                     suite['lowerIsBetter'] = \
                         test.test_config['lower_is_better']
+                if test.test_config.get('alert_threshold') is not None:
+                    suite['alertThreshold'] = \
+                        test.test_config['alert_threshold']
 
             # counters results_aux data
             counter_subtests = []
             for cd in test.all_counter_results:
                 for name, vals in cd.items():
                     # We want to add the xperf data as talos_counters
                     # exclude counters whose values are tuples (bad for
                     # graphserver)
--- a/testing/talos/talos/test.py
+++ b/testing/talos/talos/test.py
@@ -26,16 +26,17 @@ def test_dict():
 
 class Test(object):
     """abstract base class for a Talos test case"""
     cycles = None  # number of cycles
     keys = []
     desktop = True
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     lower_is_better = True
+    alert_threshold = 2.0
 
     @classmethod
     def name(cls):
         return cls.__name__
 
     @classmethod
     def description(cls):
         if cls.__doc__ is None:
@@ -230,17 +231,18 @@ class PageloaderTest(Test):
     keys = ['tpmanifest', 'tpcycles', 'tppagecycles', 'tprender', 'tpchrome',
             'tpmozafterpaint', 'tploadnocache', 'rss', 'mainthread',
             'resolution', 'cycles', 'sps_profile', 'sps_profile_interval',
             'sps_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',
             'filters', 'preferences', 'extensions', 'setup', 'cleanup',
-            'test_name_extension', 'lower_is_better', 'unit']
+            'test_name_extension', 'lower_is_better', 'alert_threshold',
+            'unit']
 
 
 @register_test()
 class tabpaint(PageloaderTest):
     """
     Tests the amount of time it takes to open new tabs, triggered from
     both the parent process and the content process.
     """
@@ -559,16 +561,17 @@ class tcanvasmark(PageloaderTest):
     unit = 'score'
     lower_is_better = False
 
 
 class dromaeo(PageloaderTest):
     """abstract base class for dramaeo tests"""
     filters = filter.dromaeo.prepare()
     lower_is_better = False
+    alert_threshold = 5.0
 
 
 @register_test()
 class dromaeo_css(dromaeo):
     """
     Dromaeo suite of tests for JavaScript performance testing.
     See the Dromaeo wiki (https://wiki.mozilla.org/Dromaeo)
     for more information.
@@ -676,8 +679,9 @@ class a11yr(PageloaderTest):
     performance regressions.
     """
     tpmanifest = '${talos}/tests/a11y/a11y.manifest'
     tpcycles = 1
     tppagecycles = 25
     tpmozafterpaint = True
     preferences = {'dom.send_after_paint_to_content': False}
     unit = 'ms'
+    alert_threshold = 5.0