Bug 1425311 - Add new talos test measurements settings, to define what the test is measuring. Use this setting instead of individual keys. This will allow us to specifiy multiple measurement keys in a single test, in the future. draft
authorRob Wood <rwood@mozilla.com>
Fri, 15 Dec 2017 13:56:38 -0600
changeset 712283 455be04d90562762224d870505bd31ec7b7cc53a
parent 712050 4b8c60ce984e2ad0b69ac72fc969f1de32c389df
child 744014 d35fc2ed976c72b605c2724b39880ca4c900d1f6
push id93293
push userrwood@mozilla.com
push dateFri, 15 Dec 2017 21:29:56 +0000
bugs1425311
milestone59.0a1
Bug 1425311 - Add new talos test measurements settings, to define what the test is measuring. Use this setting instead of individual keys. This will allow us to specifiy multiple measurement keys in a single test, in the future. MozReview-Commit-ID: C43rFg3wFyU
testing/talos/talos/config.py
testing/talos/talos/test.py
--- a/testing/talos/talos/config.py
+++ b/testing/talos/talos/config.py
@@ -35,17 +35,17 @@ DEFAULTS = dict(
         gecko_profile_entries=100000,
         resolution=1,
         mainthread=False,
         shutdown=False,
         timeout=3600,
         tpchrome=True,
         tpcycles=10,
         tpmozafterpaint=False,
-        fnbpaint=False,
+        measures=[],
         firstpaint=False,
         format_pagename=True,
         userready=False,
         testeventmap=[],
         base_vs_ref=False,
         tppagecycles=1,
         tploadnocache=False,
         tpscrolltest=False,
@@ -211,17 +211,17 @@ GLOBAL_OVERRIDES = (
     'gecko_profile',
     'gecko_profile_interval',
     'gecko_profile_entries',
     'tpcycles',
     'tppagecycles',
     'tpmanifest',
     'tptimeout',
     'tpmozafterpaint',
-    'fnbpaint',
+    'measures',
     'firstpaint',
     'userready',
 )
 
 
 CONF_VALIDATORS = []
 
 
@@ -343,33 +343,34 @@ def build_manifest(config, manifestName)
 
     newManifestName = manifestName + '.develop'
 
     # return new manifest
     return newManifestName
 
 
 def get_test(config, global_overrides, counters, test_instance):
-    mozAfterPaint = getattr(test_instance, 'tpmozafterpaint', None)
-    firstPaint = getattr(test_instance, 'firstpaint', None)
-    userReady = getattr(test_instance, 'userready', None)
-    firstNonBlankPaint = getattr(test_instance, 'fnbpaint', None)
+    #mozAfterPaint = getattr(test_instance, 'tpmozafterpaint', None)
+    #firstPaint = getattr(test_instance, 'firstpaint', None)
+    #userReady = getattr(test_instance, 'userready', None)
 
+    _measures = getattr(test_instance, 'measures', ['default'])
     test_instance.update(**global_overrides)
+    test_instance.measures = _measures
 
     # update original value of mozAfterPaint, this could be 'false',
     # so check for None
-    if mozAfterPaint is not None:
-        test_instance.tpmozafterpaint = mozAfterPaint
-    if firstNonBlankPaint is not None:
-        test_instance.fnbpaint = firstNonBlankPaint
-    if firstPaint is not None:
-        test_instance.firstpaint = firstPaint
-    if userReady is not None:
-        test_instance.userready = userReady
+    # if mozAfterPaint is not None:
+    #    test_instance.tpmozafterpaint = mozAfterPaint
+    # if firstNonBlankPaint is not None:
+    #    test_instance.fnbpaint = firstNonBlankPaint
+    # if firstPaint is not None:
+    #    test_instance.firstpaint = firstPaint
+    # if userReady is not None:
+    #    test_instance.userready = userReady
 
     # fix up url
     url = getattr(test_instance, 'url', None)
     if url:
         test_instance.url = utils.interpolate(convert_url(config, url))
 
     # fix up tpmanifest
     tpmanifest = getattr(test_instance, 'tpmanifest', None)
--- a/testing/talos/talos/test.py
+++ b/testing/talos/talos/test.py
@@ -135,17 +135,17 @@ class ts_paint(TsBase):
     cycles = 20
     timeout = 150
     gecko_profile_startup = True
     gecko_profile_entries = 10000000
     url = 'startup_test/tspaint_test.html'
     xperf_counters = []
     win7_counters = []
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     mainthread = False
     responsiveness = False
     unit = 'ms'
 
 
 @register_test()
 class ts_paint_webext(ts_paint):
     webextensions = '${talos}/webextensions/dummy/dummy-signed.xpi'
@@ -168,16 +168,17 @@ class sessionrestore(TsBase):
     1. Set up Firefox to restore from a given sessionstore.js file.
     2. Launch Firefox.
     3. Measure the delta between firstPaint and sessionRestored.
     """
     extensions = \
         '${talos}/startup_test/sessionrestore/addon'
     cycles = 10
     timeout = 900
+    measures = ['default']
     gecko_profile_startup = True
     gecko_profile_entries = 10000000
     profile_path = '${talos}/startup_test/sessionrestore/profile'
     reinstall = ['sessionstore.jsonlz4', 'sessionstore.js', 'sessionCheckpoints.json']
     # Restore the session. We have to provide a URL, otherwise Talos
     # asks for a manifest URL.
     url = 'about:home'
     preferences = {'browser.startup.page': 3}
@@ -214,17 +215,17 @@ class tresize(TsBase):
     This test does some resize thing.
     """
     extensions = '${talos}/startup_test/tresize/addon'
     cycles = 20
     url = 'startup_test/tresize/addon/content/tresize-test.html'
     timeout = 150
     gecko_profile_interval = 2
     gecko_profile_entries = 1000000
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
 
 
 # pageloader tests(tp5, etc)
 
 # The overall test number is determined by first calculating the median
 # page load time for each page in the set (excluding the max page load
@@ -256,49 +257,49 @@ class QuantumPageloadTest(PageloaderTest
     """
     tpcycles = 1
     tppagecycles = 25
     gecko_profile_interval = 1
     gecko_profile_entries = 2000000
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
     lower_is_better = True
-    fnbpaint = True
 
 
 @register_test()
 class tpaint(PageloaderTest):
     """
     Tests the amount of time it takes the open a new window. This test does
     not include startup time. Multiple test windows are opened in succession,
     results reported are the average amount of time required to create and
     display a window in the running instance of the browser.
     (Measures ctrl-n performance.)
     """
     tpmanifest = '${talos}/tests/tpaint/tpaint.manifest'
     tppagecycles = 20
     timeout = 300
     gecko_profile_interval = 1
     gecko_profile_entries = 2000000
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
     preferences = {'security.data_uri.block_toplevel_data_uri_navigations': False}
 
 
 @register_test()
 class cpstartup(PageloaderTest):
     """
     Tests the amount of time it takes to start up a new content process and
     initialize it to the point where it can start processing incoming URLs
     to load.
     """
     extensions = '${talos}/tests/cpstartup'
     tpmanifest = '${talos}/tests/cpstartup/cpstartup.manifest'
     tppagecycles = 20
+    measures = ['default']
     gecko_profile_entries = 1000000
     tploadnocache = True
     unit = 'ms'
     preferences = {
         # By default, Talos is configured to open links from
         # content in new windows. We're overriding them so that
         # they open in new tabs instead.
         # See http://kb.mozillazine.org/Browser.link.open_newwindow
@@ -312,16 +313,17 @@ class cpstartup(PageloaderTest):
 class tabpaint(PageloaderTest):
     """
     Tests the amount of time it takes to open new tabs, triggered from
     both the parent process and the content process.
     """
     extensions = '${talos}/tests/tabpaint'
     tpmanifest = '${talos}/tests/tabpaint/tabpaint.manifest'
     tppagecycles = 20
+    measures = ['default']
     gecko_profile_entries = 1000000
     tploadnocache = True
     unit = 'ms'
     preferences = {
         # By default, Talos is configured to open links from
         # content in new windows. We're overriding them so that
         # they open in new tabs instead.
         # See http://kb.mozillazine.org/Browser.link.open_newwindow
@@ -334,16 +336,17 @@ class tabpaint(PageloaderTest):
 @register_test()
 class tps(PageloaderTest):
     """
     Tests the amount of time it takes to switch between tabs
     """
     extensions = '${talos}/tests/tabswitch'
     tpmanifest = '${talos}/tests/tabswitch/tps.manifest'
     tppagecycles = 5
+    measures = ['default']
     gecko_profile_entries = 5000000
     tploadnocache = True
     preferences = {
         'addon.test.tabswitch.urlfile': os.path.join('${talos}',
                                                      'tests',
                                                      'tp5o.html'),
         'addon.test.tabswitch.webserver': '${webserver}',
         'addon.test.tabswitch.maxurls': -1,
@@ -374,17 +377,17 @@ class tart(PageloaderTest):
       - half: average interval over the 2nd half of the animation.
       - all: average interval over all recorded intervals.
     """
     tpmanifest = '${talos}/tests/tart/tart.manifest'
     extensions = '${talos}/tests/tart/addon'
     tpcycles = 1
     tppagecycles = 25
     tploadnocache = True
-    tpmozafterpaint = False
+    measures = ['default']
     gecko_profile_interval = 10
     gecko_profile_entries = 1000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     """
     ASAP mode
     The recording API is broken with OMTC before ~2013-11-27
     After ~2013-11-27, disabling OMTC will also implicitly disable
     OGL HW composition to disable OMTC with older firefox builds, also
@@ -411,17 +414,17 @@ class cart(PageloaderTest):
     2-customize-exit  - exiting customize
     3-customize-enter-css - only the CSS animation part of entering customize
     """
     tpmanifest = '${talos}/tests/tart/cart.manifest'
     extensions = '${talos}/tests/tart/addon'
     tpcycles = 1
     tppagecycles = 25
     tploadnocache = True
-    tpmozafterpaint = False
+    measures = ['default']
     gecko_profile_interval = 1
     gecko_profile_entries = 10000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     """
     ASAP mode
     """
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
@@ -437,18 +440,18 @@ class damp(PageloaderTest):
     Tests the speed of DevTools toolbox open, close, and page reload
     for each tool, across a very simple and very complicated page.
     """
     tpmanifest = '${talos}/tests/devtools/damp.manifest'
     extensions = '${talos}/tests/devtools/addon'
     cycles = 5
     tpcycles = 1
     tppagecycles = 5
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     gecko_profile_interval = 10
     gecko_profile_entries = 1000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     preferences = {'devtools.memory.enabled': True,
                    'addon.test.damp.webserver': '${webserver}'}
     unit = 'ms'
 
@@ -461,18 +464,18 @@ class glterrain(PageloaderTest):
     Measures average frame intervals.
     The same sequence is measured 4 times for combinations of alpha and
     antialias as canvas properties.
     Each of these 4 runs is reported as a different test name.
     """
     tpmanifest = '${talos}/tests/webgl/glterrain.manifest'
     tpcycles = 1
     tppagecycles = 25
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 10
     gecko_profile_entries = 2000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     """ ASAP mode """
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
                    'dom.send_after_paint_to_content': False}
@@ -485,18 +488,18 @@ class glvideo(PageloaderTest):
     """
     WebGL video texture update with 1080p video.
     Measures mean tick time across 100 ticks.
     (each tick is texImage2D(<video>)+setTimeout(0))
     """
     tpmanifest = '${talos}/tests/webgl/glvideo.manifest'
     tpcycles = 1
     tppagecycles = 5
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 2
     gecko_profile_entries = 2000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     unit = 'ms'
 
 
@@ -510,17 +513,17 @@ class tp5n(PageloaderTest):
     pages/home pages but to be pages that better reflect the actual content
     of the site in question.
     """
     resolution = 20
     tpmanifest = '${talos}/tests/tp5n/tp5n.manifest'
     tpcycles = 1
     tppagecycles = 1
     cycles = 1
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     tptimeout = 5000
     mainthread = True
     w7_counters = []
     win_counters = []
     linux_counters = []
     mac_counters = []
     xperf_counters = ['main_startup_fileio', 'main_startup_netio',
                       'main_normal_fileio', 'main_normal_netio',
@@ -546,17 +549,17 @@ class tp5n(PageloaderTest):
 @register_test()
 class tp5o(PageloaderTest):
     """
     Derived from the tp5n pageset, this is the 49 most reliable webpages.
     """
     tpcycles = 1
     tppagecycles = 25
     cycles = 1
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     tptimeout = 5000
     mainthread = False
     tpmanifest = '${talos}/tests/tp5n/tp5o.manifest'
     win_counters = ['% Processor Time']
     w7_counters = ['% Processor Time']
     linux_counters = ['XRes']
     mac_counters = []
     responsiveness = True
@@ -576,21 +579,21 @@ class tp5o_webext(tp5o):
 @register_test()
 class tp5o_scroll(PageloaderTest):
     """
     Tests scroll (like tscrollx does, including ASAP) but on the tp5o pageset.
     """
     tpmanifest = '${talos}/tests/tp5n/tp5o.manifest'
     tpcycles = 1
     tppagecycles = 12
+    measures = ['default']
     gecko_profile_interval = 2
     gecko_profile_entries = 2000000
     tpscrolltest = True
     """ASAP mode"""
-    tpmozafterpaint = False
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
                    'dom.send_after_paint_to_content': False,
                    'layout.css.scroll-behavior.spring-constant': "'10'",
                    'toolkit.framesRecording.bufferSize': 10000}
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     unit = '1/FPS'
 
@@ -601,51 +604,52 @@ class v8_7(PageloaderTest):
     This is the V8 (version 7) javascript benchmark taken verbatim and
     slightly modified to fit into our pageloader extension and talos harness.
 
     The previous version of this test is V8 version 5 which was run on
     selective branches and operating systems.
     """
     tpmanifest = '${talos}/tests/v8_7/v8.manifest'
     gecko_profile_interval = 1
+    measures = ['default']
     gecko_profile_entries = 1000000
     tpcycles = 1
     resolution = 20
-    tpmozafterpaint = False
     preferences = {'dom.send_after_paint_to_content': False}
     filters = filter.v8_subtest.prepare()
     unit = 'score'
     lower_is_better = False
 
 
 @register_test()
 class kraken(PageloaderTest):
     """
     This is the Kraken javascript benchmark taken verbatim and slightly
     modified to fit into our pageloader extension and talos harness.
     """
     tpmanifest = '${talos}/tests/kraken/kraken.manifest'
     tpcycles = 1
     tppagecycles = 1
+    measures = ['default']
     gecko_profile_interval = 1
     gecko_profile_entries = 5000000
-    tpmozafterpaint = False
     tpchrome = False
     preferences = {'dom.send_after_paint_to_content': False}
     filters = filter.mean.prepare()
     unit = 'score'
 
 
 @register_test()
 class basic_compositor_video(PageloaderTest):
     """
     Video test
     """
     tpmanifest = '${talos}/tests/video/video.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 12
     tpchrome = False
     timeout = 10000
     gecko_profile_interval = 1
     gecko_profile_entries = 2000000
     preferences = {'full-screen-api.allow-trusted-requests-only': False,
                    'layers.acceleration.force-enabled': False,
                    'layers.acceleration.disabled': True,
@@ -661,33 +665,34 @@ class basic_compositor_video(PageloaderT
 @register_test()
 class tcanvasmark(PageloaderTest):
     """
     CanvasMark benchmark v0.6
     """
     tpmanifest = '${talos}/tests/canvasmark/canvasmark.manifest'
     win_counters = w7_counters = linux_counters = mac_counters = None
     tpcycles = 5
+    measures = ['default']
     tppagecycles = 1
     timeout = 900
     gecko_profile_interval = 10
     gecko_profile_entries = 2500000
-    tpmozafterpaint = False
     preferences = {'dom.send_after_paint_to_content': False}
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     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
     tpchrome = False
+    measures = ['default']
 
 
 @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.
@@ -719,18 +724,18 @@ class dromaeo_dom(dromaeo):
 class tsvgm(PageloaderTest):
     """
     An svg-only number that measures SVG rendering performance
     for dynamic content only.
     """
     tpmanifest = '${talos}/tests/svgx/svgm.manifest'
     tpcycles = 1
     tppagecycles = 7
-    tpmozafterpaint = False
     tpchrome = False
+    measures = ['default']
     gecko_profile_interval = 10
     gecko_profile_entries = 1000000
     """ASAP mode"""
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
                    'dom.send_after_paint_to_content': False}
     filters = filter.ignore_first.prepare(2) + filter.median.prepare()
     unit = 'ms'
@@ -739,18 +744,18 @@ class tsvgm(PageloaderTest):
 @register_test()
 class tsvgx(PageloaderTest):
     """
     An svg-only number that measures SVG rendering performance
     for dynamic content only.
     """
     tpmanifest = '${talos}/tests/svgx/svgx.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 25
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 10
     gecko_profile_entries = 1000000
     """ASAP mode"""
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
                    'dom.send_after_paint_to_content': False}
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
@@ -761,49 +766,49 @@ class tsvgx(PageloaderTest):
 class tsvg_static(PageloaderTest):
     """
     An svg-only number that measures SVG rendering performance
     for static content only.
     """
     tpmanifest = '${talos}/tests/svg_static/svg_static.manifest'
     tpcycles = 1
     tppagecycles = 25
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     tpchrome = False
     gecko_profile_interval = 1
     gecko_profile_entries = 10000000
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
 
 
 @register_test()
 class tsvgr_opacity(PageloaderTest):
     """
     An svg-only number that measures SVG rendering performance.
     """
     tpmanifest = '${talos}/tests/svg_opacity/svg_opacity.manifest'
     tpcycles = 1
     tppagecycles = 25
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     tpchrome = False
     gecko_profile_interval = 1
     gecko_profile_entries = 10000000
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
 
 
 @register_test()
 class tscrollx(PageloaderTest):
     """
     This test does some scrolly thing.
     """
     tpmanifest = '${talos}/tests/scroll/scroll.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 25
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 1
     gecko_profile_entries = 1000000
     """ ASAP mode """
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
                    'dom.send_after_paint_to_content': False,
                    'layout.css.scroll-behavior.spring-constant': "'10'",
@@ -816,46 +821,47 @@ class tscrollx(PageloaderTest):
 class a11yr(PageloaderTest):
     """
     This test ensures basic a11y tables and permutations do not cause
     performance regressions.
     """
     tpmanifest = '${talos}/tests/a11y/a11y.manifest'
     tpcycles = 1
     tppagecycles = 25
-    tpmozafterpaint = True
+    measures = ['tpmozafterpaint']
     tpchrome = False
     preferences = {'dom.send_after_paint_to_content': False}
     unit = 'ms'
     alert_threshold = 5.0
 
 
 @register_test()
 class speedometer(PageloaderTest):
     """
     Speedometer benchmark used by many browser vendors (from webkit)
     """
     tpmanifest = '${talos}/tests/speedometer/speedometer.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 5
-    tpmozafterpaint = False
     tpchrome = False
     format_pagename = False
     lower_is_better = False
     unit = 'score'
 
 
 @register_test()
 class perf_reftest(PageloaderTest):
     """
     Style perf-reftest a set of tests where the result is the difference of base vs ref pages
     """
     base_vs_ref = True  # compare the two test pages with eachother and report comparison
     tpmanifest = '${talos}/tests/perf-reftest/perf_reftest.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 10
     tptimeout = 30000
     gecko_profile_interval = 1
     gecko_profile_entries = 2000000
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
     lower_is_better = True
     alert_threshold = 5.0
@@ -863,101 +869,110 @@ class perf_reftest(PageloaderTest):
 
 @register_test()
 class perf_reftest_singletons(PageloaderTest):
     """
     Style perf-reftests run as individual tests
     """
     tpmanifest = '${talos}/tests/perf-reftest-singletons/perf_reftest_singletons.manifest'
     tpcycles = 1
+    measures = ['default']
     tppagecycles = 15
     tptimeout = 30000
     gecko_profile_interval = 1
     gecko_profile_entries = 2000000
     filters = filter.ignore_first.prepare(5) + filter.median.prepare()
     unit = 'ms'
     lower_is_better = True
     alert_threshold = 5.0
 
 
 @register_test()
 class tp6_google(QuantumPageloadTest):
     """
     Quantum Pageload Test - Google
     """
     tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_google.manifest'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_google_heavy(tp6_google):
     """
     tp6_google test ran against a heavy-user profile
     """
     profile = 'simple'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_youtube(QuantumPageloadTest):
     """
     Quantum Pageload Test - YouTube
     """
     tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_youtube.manifest'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_youtube_heavy(tp6_youtube):
     """
     tp6_youtube test ran against a heavy-user profile
     """
     profile = 'simple'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_amazon(QuantumPageloadTest):
     """
     Quantum Pageload Test - Amazon
     """
     tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_amazon.manifest'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_amazon_heavy(tp6_amazon):
     """
     tp6_amazon test ran against a heavy-user profile
     """
     profile = 'simple'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_facebook(QuantumPageloadTest):
     """
     Quantum Pageload Test - Facebook
     """
     tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_facebook.manifest'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class tp6_facebook_heavy(tp6_facebook):
     """
     tp6_facebook test ran against a heavy-user profile
     """
     profile = 'simple'
+    measures = ['fnbpaint']
 
 
 @register_test()
 class displaylist_mutate(PageloaderTest):
     """
     Test modifying single items in a large display list. Measure transaction speed
     to the compositor.
     """
     tpmanifest = '${talos}/tests/layout/displaylist_mutate.manifest'
     tpcycles = 1
     tppagecycles = 5
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 2
     gecko_profile_entries = 2000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     """ASAP mode"""
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
@@ -969,18 +984,18 @@ class displaylist_mutate(PageloaderTest)
 class rasterflood_svg(PageloaderTest):
     """
     Test modifying single items in a large display list. Measure transaction speed
     to the compositor.
     """
     tpmanifest = '${talos}/tests/gfx/rasterflood_svg.manifest'
     tpcycles = 1
     tppagecycles = 10
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 2
     gecko_profile_entries = 2000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     """ASAP mode"""
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,
@@ -991,18 +1006,18 @@ class rasterflood_svg(PageloaderTest):
 @register_test()
 class rasterflood_gradient(PageloaderTest):
     """
     Test expensive rasterization while the main thread is busy.
     """
     tpmanifest = '${talos}/tests/gfx/rasterflood_gradient.manifest'
     tpcycles = 1
     tppagecycles = 10
+    measures = ['default']
     tploadnocache = True
-    tpmozafterpaint = False
     tpchrome = False
     gecko_profile_interval = 2
     gecko_profile_entries = 2000000
     win_counters = w7_counters = linux_counters = mac_counters = None
     filters = filter.ignore_first.prepare(1) + filter.median.prepare()
     """ASAP mode"""
     preferences = {'layout.frame_rate': 0,
                    'docshell.event_starvation_delay_hint': 1,