Bug 1370607 - Add additional talos tests to the quantum-pageload-e10s suite; r=jmaher draft
authorRob Wood <rwood@mozilla.com>
Wed, 07 Jun 2017 15:49:48 -0400
changeset 591010 56bd1bd220ccf6c3a351761624a93956e7dc9903
parent 590317 a49112c7a5765802096b3fc298069b9495436107
child 632388 e2ceaacf82023b56e9c8b3774e7a06e01ebe326a
push id62917
push userrwood@mozilla.com
push dateThu, 08 Jun 2017 13:39:01 +0000
reviewersjmaher
bugs1370607
milestone55.0a1
Bug 1370607 - Add additional talos tests to the quantum-pageload-e10s suite; r=jmaher MozReview-Commit-ID: 5K3vm2vBvMz
testing/talos/talos.json
testing/talos/talos/mitmproxy/mitmproxy-playback-set.manifest
testing/talos/talos/mitmproxy/mitmproxy.py
testing/talos/talos/test.py
testing/talos/talos/tests/quantum_pageload/quantum_1.manifest
testing/talos/talos/tests/quantum_pageload/quantum_pageload_amazon.manifest
testing/talos/talos/tests/quantum_pageload/quantum_pageload_facebook.manifest
testing/talos/talos/tests/quantum_pageload/quantum_pageload_google.manifest
testing/talos/talos/tests/quantum_pageload/quantum_pageload_youtube.manifest
--- a/testing/talos/talos.json
+++ b/testing/talos/talos.json
@@ -109,21 +109,21 @@
             "tests": ["tp5n"],
             "pagesets_name": "tp5n.zip",
             "talos_options": [
                 "--xperf_path",
                 "\"c:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe\""
             ]
         },
         "quantum-pageload-e10s": {
-            "tests": ["Quantum_1"],
-            "mitmproxy_recording_set": "mitmproxy-recording-set.zip",
+            "tests": ["quantum_pageload_google", "quantum_pageload_youtube", "quantum_pageload_amazon", "quantum_pageload_facebook"],
+            "mitmproxy_recording_set": "mitmproxy-recording-set-win10.zip",
             "talos_options": [
                 "--mitmproxy",
-                "mitmproxy-recording-1.mp",
+                "mitmproxy-recording-google.mp mitmproxy-recording-youtube.mp mitmproxy-recording-amazon.mp mitmproxy-recording-facebook.mp",
                 "--firstNonBlankPaint"
             ]
         }
     },
     "mobile-suites": {
         "remote-tsvgx": {
             "tests": ["tsvgm"],
             "talos_options": [
--- a/testing/talos/talos/mitmproxy/mitmproxy-playback-set.manifest
+++ b/testing/talos/talos/mitmproxy/mitmproxy-playback-set.manifest
@@ -1,9 +1,9 @@
 [
     {
-        "filename": "mitmproxy-recording-set.zip",
-        "size": 679582,
-        "digest": "035e0729905ea1bb61efa4e720cdbc2a436dfebf364eb0d71a7a9ad04658635ede69aa5ef068e99bd515b0b68e2217a2ffe5961b3e8c7f8ead2c49ddcb9fe879",
+        "filename": "mitmproxy-recording-set-win10.zip",
+        "size": 9181715,
+        "digest": "61a4b32fc0a6b8408dce38872d8ac1a6a0e46622ef571c20d3e15b5f91709765268885b6a21126e79e75289c862312e22a91d8000ef6c7ada594bf677229574d",
         "algorithm": "sha512",
         "unpack": false
     }
 ]
\ No newline at end of file
--- a/testing/talos/talos/mitmproxy/mitmproxy.py
+++ b/testing/talos/talos/mitmproxy/mitmproxy.py
@@ -113,17 +113,17 @@ def start_mitmproxy_playback(mitmdump_pa
         sys.path.insert(1, mitmdump_path)
         # mitmproxy needs some DLL's that are a part of Firefox itself, so add to path
         env["PATH"] = os.path.dirname(browser_path) + ";" + env["PATH"]
     else:
         # TODO: support other platforms, Bug 1366355
         LOG.error('Aborting: talos mitmproxy is currently only supported on Windows')
         sys.exit()
 
-    command = [mitmdump_path, '-s', param2]
+    command = [mitmdump_path, '-k', '-s', param2]
 
     LOG.info("Starting mitmproxy playback using env path: %s" % env["PATH"])
     LOG.info("Starting mitmproxy playback using command: %s" % ' '.join(command))
     # to turn off mitmproxy log output, use these params for Popen:
     # Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env)
     mitmproxy_proc = subprocess.Popen(command, env=env)
     time.sleep(5)
     data = mitmproxy_proc.poll()
--- a/testing/talos/talos/test.py
+++ b/testing/talos/talos/test.py
@@ -240,16 +240,29 @@ class PageloaderTest(Test):
             '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',
             'filters', 'preferences', 'extensions', 'setup', 'cleanup',
             'lower_is_better', 'alert_threshold', 'unit', 'webextensions']
 
 
+class QuantumPageloadTest(PageloaderTest):
+    """
+    Base class for a Quantum Pageload test
+    """
+    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
+
+
 @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.
     """
     extensions = '${talos}/tests/tabpaint/tabpaint-signed.xpi'
     tpmanifest = '${talos}/tests/tabpaint/tabpaint.manifest'
@@ -790,20 +803,37 @@ class bloom_basic_ref(PageloaderTest):
     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 Quantum_1(PageloaderTest):
+class quantum_pageload_google(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Google
     """
-    Quantum Pageload Test 1
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_google.manifest'
+
+
+@register_test()
+class quantum_pageload_youtube(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - YouTube
     """
-    tpmanifest = '${talos}/tests/quantum_pageload/quantum_1.manifest'
-    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
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_youtube.manifest'
+
+
+@register_test()
+class quantum_pageload_amazon(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Amazon
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_amazon.manifest'
+
+
+@register_test()
+class quantum_pageload_facebook(QuantumPageloadTest):
+    """
+    Quantum Pageload Test - Facebook
+    """
+    tpmanifest = '${talos}/tests/quantum_pageload/quantum_pageload_facebook.manifest'
deleted file mode 100644
--- a/testing/talos/talos/tests/quantum_pageload/quantum_1.manifest
+++ /dev/null
@@ -1,1 +0,0 @@
-https://www.google.com
new file mode 100644
--- /dev/null
+++ b/testing/talos/talos/tests/quantum_pageload/quantum_pageload_amazon.manifest
@@ -0,0 +1,1 @@
+https://www.amazon.com/s/url=search-alias%3Daps&field-keywords=laptop
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/talos/talos/tests/quantum_pageload/quantum_pageload_facebook.manifest
@@ -0,0 +1,1 @@
+https://www.facebook.com
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/talos/talos/tests/quantum_pageload/quantum_pageload_google.manifest
@@ -0,0 +1,1 @@
+https://www.google.com/#hl=en&q=barack+obama
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/talos/talos/tests/quantum_pageload/quantum_pageload_youtube.manifest
@@ -0,0 +1,1 @@
+https://www.youtube.com
\ No newline at end of file