Bug 1185453 - Generate error summary files for failures, r=chmanchester
☠☠ backed out by 5bb16e78324d ☠ ☠
authorJames Graham <james@hoppipolla.co.uk>
Mon, 20 Jul 2015 10:39:03 +0100
changeset 254137 df2c4d64382042e7a5f16c28835552239d29e65d
parent 254136 9b5d7e71135a54aca48c7dbce9fb5b893bdc6eb5
child 254138 624abe520677fa1200514c7dbf40afd141ed5b49
push id29090
push userryanvm@gmail.com
push dateWed, 22 Jul 2015 20:34:12 +0000
treeherdermozilla-central@8650fe82f1cd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerschmanchester
bugs1185453
milestone42.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 1185453 - Generate error summary files for failures, r=chmanchester
testing/config/mozharness/android_arm_4_3_config.py
testing/config/mozharness/android_arm_config.py
testing/config/mozharness/android_panda_config.py
testing/config/mozharness/android_x86_config.py
testing/config/mozharness/b2g_desktop_config.py
testing/config/mozharness/b2g_emulator_config.py
testing/config/mozharness/linux_config.py
testing/config/mozharness/mac_config.py
testing/config/mozharness/marionette.py
testing/config/mozharness/taskcluster_linux_config.py
testing/config/mozharness/windows_config.py
testing/mozharness/scripts/android_emulator_unittest.py
testing/mozharness/scripts/android_panda.py
testing/mozharness/scripts/androidx86_emulator_unittest.py
testing/mozharness/scripts/b2g_desktop_unittest.py
testing/mozharness/scripts/b2g_emulator_unittest.py
testing/mozharness/scripts/desktop_unittest.py
testing/mozharness/scripts/luciddream_unittest.py
testing/mozharness/scripts/marionette.py
--- a/testing/config/mozharness/android_arm_4_3_config.py
+++ b/testing/config/mozharness/android_arm_4_3_config.py
@@ -2,101 +2,143 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 config = {
     "suite_definitions": {
         "mochitest": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=adb", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
+            "options": [
+                "--dm_trans=adb",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
+                "--screenshot-on-fail",
             ],
         },
         "mochitest-gl": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=adb", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
+            "options": [
+                "--dm_trans=adb",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
+                "--screenshot-on-fail",
                 "--total-chunks=4",
                 "--subsuite=webgl",
             ],
         },
         "robocop": {
             "run_filename": "runrobocop.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=adb", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s",
+            "options": [
+                "--dm_trans=adb",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--total-chunks=4",
                 "--robocop-apk=../../robocop.apk",
                 "--robocop-ini=robocop.ini",
             ],
         },
         "reftest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--dm_trans=adb",
                 "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--httpd-path", "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "--total-chunks=16",
                 "tests/layout/reftests/reftest.list",
             ],
         },
         "crashtest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--dm_trans=adb",
                 "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--httpd-path",
+                "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "--total-chunks=2",
                 "tests/testing/crashtest/crashtests.list",
             ],
         },
         "jsreftest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--dm_trans=adb",
                 "--bootstrap",
                 "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
                 "--utility-path=%(utility_path)s", "--http-port=%(http_port)s",
                 "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "../jsreftest/tests/jstests.list",
                 "--total-chunks=6",
                 "--extra-profile-file=jsreftest/tests/user.js",
             ],
         },
         "xpcshell": {
             "run_filename": "remotexpcshelltests.py",
             "testsdir": "xpcshell",
             "options": [
                 "--dm_trans=adb",
-                "--xre-path=%(xre_path)s", "--testing-modules-dir=%(modules_dir)s",
-                "--apk=%(installer_path)s", "--no-logfiles",
+                "--xre-path=%(xre_path)s",
+                "--testing-modules-dir=%(modules_dir)s",
+                "--apk=%(installer_path)s",
+                "--no-logfiles",
                 "--symbols-path=%(symbols_path)s",
                 "--manifest=tests/xpcshell.ini",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--total-chunks=3",
             ],
         },
         "cppunittest": {
             "run_filename": "remotecppunittests.py",
             "testsdir": "cppunittest",
             "options": [
                 "--symbols-path=%(symbols_path)s",
--- a/testing/config/mozharness/android_arm_config.py
+++ b/testing/config/mozharness/android_arm_config.py
@@ -2,100 +2,155 @@
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 config = {
     "suite_definitions": {
         "mochitest": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=sut", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
+            "options": [
+                "--dm_trans=sut",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
+                "--screenshot-on-fail",
             ],
         },
         "mochitest-gl": {
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=sut", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
+            "options": [
+                "--dm_trans=sut",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
+                "--screenshot-on-fail",
                 "--total-chunks=4",
                 "--subsuite=webgl",
             ],
         },
         "robocop": {
             "run_filename": "runrobocop.py",
             "testsdir": "mochitest",
-            "options": ["--dm_trans=sut", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s",
+            "options": [
+                "--dm_trans=sut",
+                "--app=%(app)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--certificate-path=%(certs_path)s",
+                "--symbols-path=%(symbols_path)s",
+                "--quiet",
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--total-chunks=4",
                 "--robocop-apk=../../robocop.apk",
                 "--robocop-ini=robocop.ini",
             ],
         },
         "reftest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--deviceIP=%(device_ip)s",
-                "--devicePort=%(device_port)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--httpd-path",
+                "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "--total-chunks=16",
                 "tests/layout/reftests/reftest.list",
             ],
         },
         "crashtest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--deviceIP=%(device_ip)s",
-                "--devicePort=%(device_port)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--httpd-path",
+                "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "--total-chunks=2",
                 "tests/testing/crashtest/crashtests.list",
             ],
         },
         "jsreftest": {
             "run_filename": "remotereftest.py",
             "testsdir": "reftest",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
+            "options": [
+                "--app=%(app)s",
+                "--ignore-window-size",
                 "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--deviceIP=%(device_ip)s",
-                "--devicePort=%(device_port)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+                "--remote-webserver=%(remote_webserver)s",
+                "--xre-path=%(xre_path)s",
+                "--utility-path=%(utility_path)s",
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--http-port=%(http_port)s",
+                "--ssl-port=%(ssl_port)s",
+                "--httpd-path",
+                "%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "../jsreftest/tests/jstests.list",
                 "--total-chunks=6",
                 "--extra-profile-file=jsreftest/tests/user.js",
             ],
         },
         "xpcshell": {
             "run_filename": "remotexpcshelltests.py",
             "testsdir": "xpcshell",
-            "options": ["--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--xre-path=%(xre_path)s", "--testing-modules-dir=%(modules_dir)s",
-                "--apk=%(installer_path)s", "--no-logfiles",
+            "options": [
+                "--deviceIP=%(device_ip)s",
+                "--devicePort=%(device_port)s",
+                "--xre-path=%(xre_path)s",
+                "--testing-modules-dir=%(modules_dir)s",
+                "--apk=%(installer_path)s",
+                "--no-logfiles",
                 "--symbols-path=%(symbols_path)s",
                 "--manifest=tests/xpcshell.ini",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--total-chunks=3",
             ],
         },
     }, # end suite_definitions
 }
--- a/testing/config/mozharness/android_panda_config.py
+++ b/testing/config/mozharness/android_panda_config.py
@@ -75,16 +75,17 @@ config = {
                 "--utility-path=../hostutils/bin",
                 "--certificate-path=certs",
                 "--app=%(app_name)s",
                 "--http-port=%(http_port)s",
                 "--ssl-port=%(ssl_port)s",
                 "--symbols-path=%(symbols_path)s",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--screenshot-on-fail",
             ],
             "run_filename": "runtestsremote.py",
             "testsdir": "mochitest"
         },
         "reftest": {
             "options": [
                 "--deviceIP=%(device_ip)s",
@@ -124,15 +125,16 @@ config = {
                 "--xre-path=../hostutils/xre",
                 "--manifest=xpcshell/tests/xpcshell.ini",
                 "--build-info-json=xpcshell/mozinfo.json",
                 "--testing-modules-dir=modules",
                 "--local-lib-dir=../fennec",
                 "--apk=../%(apk_name)s",
                 "--no-logfiles",
                 "--symbols-path=%(symbols_path)s",
-                "--log-raw=%(raw_log_file)s"
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
             ],
             "run_filename": "remotexpcshelltests.py",
             "testsdir": "xpcshell"
         }
     }
 }
--- a/testing/config/mozharness/android_x86_config.py
+++ b/testing/config/mozharness/android_x86_config.py
@@ -1,39 +1,57 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 config = {
     "suite_definitions": {
         "mochitest": {
             "run_filename": "runtestsremote.py",
-            "options": ["--dm_trans=sut", "--app=%(app)s", "--remote-webserver=%(remote_webserver)s",
-                "--xre-path=%(xre_path)s", "--utility-path=%(utility_path)s",
-                "--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--http-port=%(http_port)s", "--ssl-port=%(ssl_port)s",
-                "--certificate-path=%(certs_path)s", "--symbols-path=%(symbols_path)s",
-                "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
-            ],
+            "options": ["--dm_trans=sut",
+                        "--app=%(app)s",
+                        "--remote-webserver=%(remote_webserver)s",
+                        "--xre-path=%(xre_path)s",
+                        "--utility-path=%(utility_path)s",
+                        "--deviceIP=%(device_ip)s",
+                        "--devicePort=%(device_port)s",
+                        "--http-port=%(http_port)s",
+                        "--ssl-port=%(ssl_port)s",
+                        "--certificate-path=%(certs_path)s",
+                        "--symbols-path=%(symbols_path)s",
+                        "--quiet",
+                        "--log-raw=%(raw_log_file)s",
+                        "--log-errorsummary=%(error_summary_file)s",
+                        "--screenshot-on-fail",
+                    ],
         },
         "reftest": {
             "run_filename": "remotereftest.py",
-            "options": [ "--app=%(app)s", "--ignore-window-size",
-                "--bootstrap",
-                "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
-                "--utility-path=%(utility_path)s", "--deviceIP=%(device_ip)s",
-                "--devicePort=%(device_port)s", "--http-port=%(http_port)s",
-                "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
-                "--symbols-path=%(symbols_path)s",
-            ],
+            "options": ["--app=%(app)s",
+                        "--ignore-window-size",
+                        "--bootstrap",
+                        "--remote-webserver=%(remote_webserver)s",
+                        "--xre-path=%(xre_path)s",
+                        "--utility-path=%(utility_path)s",
+                        "--deviceIP=%(device_ip)s",
+                        "--devicePort=%(device_port)s",
+                        "--http-port=%(http_port)s",
+                        "--ssl-port=%(ssl_port)s",
+                        "--httpd-path", "%(modules_dir)s",
+                        "--symbols-path=%(symbols_path)s",
+                    ],
         },
         "xpcshell": {
             "run_filename": "remotexpcshelltests.py",
-            "options": ["--deviceIP=%(device_ip)s", "--devicePort=%(device_port)s",
-                "--xre-path=%(xre_path)s", "--testing-modules-dir=%(modules_dir)s",
-                "--apk=%(installer_path)s", "--no-logfiles",
-                "--symbols-path=%(symbols_path)s",
-                "--manifest=tests/xpcshell.ini",
-                "--log-raw=%(raw_log_file)s",
-            ],
+            "options": ["--deviceIP=%(device_ip)s",
+                        "--devicePort=%(device_port)s",
+                        "--xre-path=%(xre_path)s",
+                        "--testing-modules-dir=%(modules_dir)s",
+                        "--apk=%(installer_path)s",
+                        "--no-logfiles",
+                        "--symbols-path=%(symbols_path)s",
+                        "--manifest=tests/xpcshell.ini",
+                        "--log-raw=%(raw_log_file)s",
+                        "--log-errorsummary=%(error_summary_file)s",
+                    ],
         },
     }, # end suite_definitions
 }
--- a/testing/config/mozharness/b2g_desktop_config.py
+++ b/testing/config/mozharness/b2g_desktop_config.py
@@ -12,16 +12,17 @@ config = {
                 "--app=%(application)s",
                 "--desktop",
                 "--utility-path=%(utility_path)s",
                 "--certificate-path=%(cert_path)s",
                 "--symbols-path=%(symbols_path)s",
                 "--browser-arg=%(browser_arg)s",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--screenshot-on-fail",
             ],
             "run_filename": "runtestsb2g.py",
             "testsdir": "mochitest"
         },
         "reftest": {
             "options": [
                 "--desktop",
--- a/testing/config/mozharness/b2g_emulator_config.py
+++ b/testing/config/mozharness/b2g_emulator_config.py
@@ -66,16 +66,17 @@ config = {
                 "--remote-webserver=%(remote_webserver)s",
                 "--xre-path=%(xre_path)s",
                 "--symbols-path=%(symbols_path)s",
                 "--busybox=%(busybox)s",
                 "--total-chunks=%(total_chunks)s",
                 "--this-chunk=%(this_chunk)s",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--certificate-path=%(certificate_path)s",
                 "--screenshot-on-fail",
                 "%(test_path)s"
             ],
             "run_filename": "runtestsb2g.py",
             "testsdir": "mochitest"
         },
         "mochitest-chrome": {
@@ -88,16 +89,17 @@ config = {
                 "--xre-path=%(xre_path)s",
                 "--symbols-path=%(symbols_path)s",
                 "--busybox=%(busybox)s",
                 "--total-chunks=%(total_chunks)s",
                 "--this-chunk=%(this_chunk)s",
                 "--quiet",
                 "--chrome",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--certificate-path=%(certificate_path)s",
                 "--screenshot-on-fail",
                 "%(test_path)s"
             ],
             "run_filename": "runtestsb2g.py",
             "testsdir": "mochitest"
         },
         "reftest": {
@@ -128,15 +130,16 @@ config = {
                 "--logdir=%(logcat_dir)s",
                 "--manifest=tests/xpcshell.ini",
                 "--use-device-libs",
                 "--testing-modules-dir=%(modules_dir)s",
                 "--symbols-path=%(symbols_path)s",
                 "--busybox=%(busybox)s",
                 "--total-chunks=%(total_chunks)s",
                 "--this-chunk=%(this_chunk)s",
-                "--log-raw=%(raw_log_file)s"
+                "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
             ],
             "run_filename": "runtestsb2g.py",
             "testsdir": "xpcshell"
         }
     }
 }
--- a/testing/config/mozharness/linux_config.py
+++ b/testing/config/mozharness/linux_config.py
@@ -22,41 +22,44 @@ config = {
             ],
             "run_filename": "jit_test.py",
             "testsdir": "jit-test/jit-test"
         },
         "luciddream-emulator": {
             "options": [
                 "--startup-timeout=300",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--browser-path=%(browser_path)s",
                 "--b2gpath=%(emulator_path)s",
                 "%(test_manifest)s"
             ],
         },
         "luciddream-b2gdt": {
             "options": [
                 "--startup-timeout=300",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--browser-path=%(browser_path)s",
                 "--b2g-desktop-path=%(fxos_desktop_path)s",
                 "--gaia-profile=%(gaia_profile)s",
                 "%(test_manifest)s"
             ],
         },
         "mochitest": {
             "options": [
                 "--appname=%(binary_path)s",
                 "--utility-path=tests/bin",
                 "--extra-profile-file=tests/bin/plugins",
                 "--symbols-path=%(symbols_path)s",
                 "--certificate-path=tests/certs",
                 "--setpref=webgl.force-enabled=true",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--use-test-media-devices",
                 "--screenshot-on-fail",
             ],
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "mozbase": {
             "options": [
@@ -98,15 +101,16 @@ config = {
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "xpcshell": {
             "options": [
                 "--symbols-path=%(symbols_path)s",
                 "--test-plugin-path=%(test_plugin_path)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--utility-path=tests/bin",
             ],
             "run_filename": "runxpcshelltests.py",
             "testsdir": "xpcshell"
         }
     }
 }
--- a/testing/config/mozharness/mac_config.py
+++ b/testing/config/mozharness/mac_config.py
@@ -27,16 +27,17 @@ config = {
             "options": [
                 "--appname=%(binary_path)s",
                 "--utility-path=tests/bin",
                 "--extra-profile-file=tests/bin/plugins",
                 "--symbols-path=%(symbols_path)s",
                 "--certificate-path=tests/certs",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--screenshot-on-fail",
             ],
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "mozbase": {
             "options": [
                 "-b",
@@ -78,15 +79,16 @@ config = {
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "xpcshell": {
             "options": [
                 "--symbols-path=%(symbols_path)s",
                 "--test-plugin-path=%(test_plugin_path)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--utility-path=tests/bin",
             ],
             "run_filename": "runxpcshelltests.py",
             "testsdir": "xpcshell"
         }
     }
 }
--- a/testing/config/mozharness/marionette.py
+++ b/testing/config/mozharness/marionette.py
@@ -11,16 +11,17 @@ config = {
                 "--type=%(type)s",
                 "--testvars=%(testvars)s",
                 "--profile=%(profile)s",
                 "--symbols-path=%(symbols_path)s",
                 "--gecko-log=%(gecko_log)s",
                 "--xml-output=%(xml_output)s",
                 "--html-output=%(html_output)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--binary=%(binary)s",
                 "--address=%(address)s",
                 "--total-chunks=%(total_chunks)s",
                 "--this-chunk=%(this_chunk)s"
             ],
             "run_filename": "",
             "testsdir": ""
         },
@@ -30,38 +31,41 @@ config = {
                 "--timeout=%(timeout)s",
                 "--type=%(type)s",
                 "--testvars=%(testvars)s",
                 "--profile=%(profile)s",
                 "--symbols-path=%(symbols_path)s",
                 "--xml-output=%(xml_output)s",
                 "--html-output=%(html_output)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--logcat-dir=%(logcat_dir)s",
                 "--emulator=%(emulator)s",
                 "--homedir=%(homedir)s"
             ],
             "run_filename": "",
             "testsdir": ""
         },
         "marionette_desktop": {
             "options": [
                 "--type=%(type)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--binary=%(binary)s",
                 "--address=%(address)s",
                 "--symbols-path=%(symbols_path)s"
             ],
             "run_filename": "",
             "testsdir": ""
         },
         "marionette_emulator": {
             "options": [
                 "--type=%(type)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--logcat-dir=%(logcat_dir)s",
                 "--emulator=%(emulator)s",
                 "--homedir=%(homedir)s",
                 "--symbols-path=%(symbols_path)s"
             ],
             "run_filename": "",
             "testsdir": ""
         },
@@ -69,18 +73,19 @@ config = {
             "options": [],
             "run_filename": "",
             "testsdir": ""
         },
         "webapi_emulator": {
             "options": [
                 "--type=%(type)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--symbols-path=%(symbols_path)s",
                 "--logcat-dir=%(logcat_dir)s",
                 "--emulator=%(emulator)s",
                 "--homedir=%(homedir)s"
             ],
             "run_filename": "",
             "testsdir": ""
         }
     }
-}
\ No newline at end of file
+}
--- a/testing/config/mozharness/taskcluster_linux_config.py
+++ b/testing/config/mozharness/taskcluster_linux_config.py
@@ -1,28 +1,39 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 config = {
     "reftest_options": [
-        "--appname=%(binary_path)s", "--utility-path=tests/bin",
-        "--extra-profile-file=tests/bin/plugins", "--symbols-path=%(symbols_path)s"
+        "--appname=%(binary_path)s",
+        "--utility-path=tests/bin",
+        "--extra-profile-file=tests/bin/plugins",
+        "--symbols-path=%(symbols_path)s"
     ],
     "mochitest_options": [
-        "--appname=%(binary_path)s", "--utility-path=tests/bin",
-        "--extra-profile-file=tests/bin/plugins", "--symbols-path=%(symbols_path)s",
-        "--certificate-path=tests/certs", "--setpref=webgl.force-enabled=true",
-        "--quiet", "--log-raw=%(raw_log_file)s", "--screenshot-on-fail",
+        "--appname=%(binary_path)s",
+        "--utility-path=tests/bin",
+        "--extra-profile-file=tests/bin/plugins",
+        "--symbols-path=%(symbols_path)s",
+        "--certificate-path=tests/certs",
+        "--setpref=webgl.force-enabled=true",
+        "--quiet",
+        "--log-raw=%(raw_log_file)s",
+        "--log-errorsummary=%(error_summary_file)s",
+        "--screenshot-on-fail",
     ],
     "webapprt_options": [
-        "--app=%(app_path)s", "--utility-path=tests/bin",
-        "--extra-profile-file=tests/bin/plugins", "--symbols-path=%(symbols_path)s",
+        "--app=%(app_path)s",
+        "--utility-path=tests/bin",
+        "--extra-profile-file=tests/bin/plugins",
+        "--symbols-path=%(symbols_path)s",
         "--certificate-path=tests/certs",
-        "--console-level=INFO", "--testing-modules-dir=tests/modules",
+        "--console-level=INFO",
+        "--testing-modules-dir=tests/modules",
         "--quiet"
     ],
     "xpcshell_options": [
         "--symbols-path=%(symbols_path)s",
         "--test-plugin-path=%(test_plugin_path)s"
     ],
     "cppunittest_options": [
         "--symbols-path=%(symbols_path)s",
--- a/testing/config/mozharness/windows_config.py
+++ b/testing/config/mozharness/windows_config.py
@@ -27,16 +27,17 @@ config = {
             "options": [
                 "--appname=%(binary_path)s",
                 "--utility-path=tests/bin",
                 "--extra-profile-file=tests/bin/plugins",
                 "--symbols-path=%(symbols_path)s",
                 "--certificate-path=tests/certs",
                 "--quiet",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--screenshot-on-fail",
             ],
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "mozbase": {
             "options": [
                 "-b",
@@ -77,15 +78,16 @@ config = {
             "run_filename": "runtests.py",
             "testsdir": "mochitest"
         },
         "xpcshell": {
             "options": [
                 "--symbols-path=%(symbols_path)s",
                 "--test-plugin-path=%(test_plugin_path)s",
                 "--log-raw=%(raw_log_file)s",
+                "--log-errorsummary=%(error_summary_file)s",
                 "--utility-path=tests/bin",
             ],
             "run_filename": "runxpcshelltests.py",
             "testsdir": "xpcshell"
         }
     }
 }
--- a/testing/mozharness/scripts/android_emulator_unittest.py
+++ b/testing/mozharness/scripts/android_emulator_unittest.py
@@ -448,30 +448,34 @@ class AndroidEmulatorTest(BlobUploadMixi
             os.path.join(
                 self._query_tests_dir(),
                 self.tree_config["suite_definitions"][suite_category]["run_filename"]
             ),
         ]
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % self.test_suite)
+
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          '%s_errorsummary.log' % self.test_suite)
         str_format_values = {
             'app': self._query_package_name(),
             'remote_webserver': c['remote_webserver'],
             'xre_path': os.path.join(dirs['abs_xre_dir'], 'xre'),
             'utility_path':  os.path.join(dirs['abs_xre_dir'], 'bin'),
             'http_port': self.emulator['http_port'],
             'ssl_port': self.emulator['ssl_port'],
             'certs_path': os.path.join(dirs['abs_work_dir'], 'tests/certs'),
             # TestingMixin._download_and_extract_symbols() will set
             # self.symbols_path when downloading/extracting.
             'symbols_path': self.symbols_path,
             'modules_dir': dirs['abs_modules_dir'],
             'installer_path': self.installer_path,
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
             'dm_trans': c['device_manager'],
         }
         if self.config["device_manager"] == "sut":
             str_format_values.update({
                 'device_ip': c['device_ip'],
                 'device_port': str(self.emulator['sut_port1']),
             })
         for option in self.tree_config["suite_definitions"][suite_category]["options"]:
--- a/testing/mozharness/scripts/android_panda.py
+++ b/testing/mozharness/scripts/android_panda.py
@@ -453,26 +453,29 @@ class PandaTest(TestingMixin, MercurialS
         unzip = self.query_exe("unzip")
         package_path = os.path.join(apk_dir, 'package-name.txt')
         unzip_cmd = [unzip, '-q', '-o',  self.apk_path]
         self.run_command(unzip_cmd, cwd=apk_dir, halt_on_failure=True, fatal_exit_code=3)
         self.app_name = str(self.read_from_file(package_path, verbose=True)).rstrip()
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % suite)
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          '%s_errorsummary.log' % suite)
         str_format_values = {
             'device_ip': self.device_ip,
             'hostname': self.mozpool_device,
             'symbols_path': self._query_symbols_url(),
             'http_port': http_port,
             'ssl_port':  ssl_port,
             'app_name':  self.app_name,
             'apk_name':  self.filename_apk,
             'apk_path':  self.apk_path,
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
         }
         if '%s_options' % suite_category in self.tree_config:
             for option in self.tree_config['%s_options' % suite_category]:
                 options.append(option % str_format_values)
             abs_base_cmd = base_cmd + options
             return abs_base_cmd
         elif "suite_definitions" in self.tree_config and \
                 suite_category in self.tree_config["suite_definitions"]: # new in-tree format
--- a/testing/mozharness/scripts/androidx86_emulator_unittest.py
+++ b/testing/mozharness/scripts/androidx86_emulator_unittest.py
@@ -414,30 +414,33 @@ class AndroidEmulatorTest(BlobUploadMixi
             os.path.join(
                 self._query_tests_dir(suite_name),
                 self.tree_config["suite_definitions"][suite_category]["run_filename"]
             ),
         ]
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % suite_name)
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          '%s_errorsummary.log' % suite_name)
         str_format_values = {
             'app': self._query_package_name(),
             'remote_webserver': c['remote_webserver'],
             'xre_path': os.path.join(dirs['abs_xre_dir'], 'xre'),
             'utility_path':  os.path.join(dirs['abs_xre_dir'], 'bin'),
             'http_port': emulator['http_port'],
             'ssl_port': emulator['ssl_port'],
             'certs_path': os.path.join(dirs['abs_work_dir'], 'tests/certs'),
             # TestingMixin._download_and_extract_symbols() will set
             # self.symbols_path when downloading/extracting.
             'symbols_path': self.symbols_path,
             'modules_dir': dirs['abs_modules_dir'],
             'installer_path': self.installer_path,
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
             'dm_trans': c['device_manager'],
         }
         if self.config["device_manager"] == "sut":
             str_format_values.update({
                 'device_ip': c['device_ip'],
                 'device_port': str(emulator['sut_port1']),
             })
         for option in self.tree_config["suite_definitions"][suite_category]["options"]:
--- a/testing/mozharness/scripts/b2g_desktop_unittest.py
+++ b/testing/mozharness/scripts/b2g_desktop_unittest.py
@@ -142,27 +142,30 @@ class B2GDesktopTest(BlobUploadMixin, Te
 
     def _query_abs_base_cmd(self, suite):
         dirs = self.query_abs_dirs()
         cmd = [self.query_python_path('python')]
         cmd.append(self.query_value("run_file_names")[suite])
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % suite)
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          '%s_errorsummary.log' % suite)
         str_format_values = {
             'application': self.binary_path,
             'test_manifest': self.test_manifest,
             'symbols_path': self.symbols_path,
             'gaia_profile': self.gaia_profile,
             'utility_path': os.path.join(dirs['abs_tests_dir'], 'bin'),
             'total_chunks': self.config.get('total_chunks'),
             'this_chunk': self.config.get('this_chunk'),
             'cert_path': dirs['abs_certs_dir'],
             'browser_arg': self.config.get('browser_arg'),
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
         }
 
         missing_key = True
         if "suite_definitions" in self.tree_config: # new structure
             if suite in self.tree_config["suite_definitions"]:
                 missing_key = False
             options = self.tree_config["suite_definitions"][suite]["options"]
         else:
--- a/testing/mozharness/scripts/b2g_emulator_unittest.py
+++ b/testing/mozharness/scripts/b2g_emulator_unittest.py
@@ -257,16 +257,18 @@ class B2GEmulatorTest(TestingMixin, VCSM
 
     def _query_abs_base_cmd(self, suite):
         dirs = self.query_abs_dirs()
         cmd = [self.query_python_path('python')]
         cmd.append(self.config['run_file_names'][suite])
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % suite)
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          '%s_errorsummary.log' % suite)
         emulator_type = 'x86' if os.path.isdir(os.path.join(dirs['abs_b2g-distro_dir'],
                         'out', 'target', 'product', 'generic_x86')) else 'arm'
         self.info("The emulator type: %s" % emulator_type)
 
         str_format_values = {
             'adbpath': self.adb_path,
             'b2gpath': dirs['abs_b2g-distro_dir'],
             'emulator': emulator_type,
@@ -276,16 +278,17 @@ class B2GEmulatorTest(TestingMixin, VCSM
             'xre_path': os.path.join(dirs['abs_xre_dir'], 'bin'),
             'symbols_path': self.symbols_path,
             'busybox': self.busybox_path,
             'total_chunks': self.config.get('total_chunks'),
             'this_chunk': self.config.get('this_chunk'),
             'test_path': self.config.get('test_path'),
             'certificate_path': dirs['abs_certs_dir'],
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
         }
 
         missing_key = True
         if "suite_definitions" in self.tree_config: # new structure
             if suite in self.tree_config["suite_definitions"]:
                 missing_key = False
             options = self.tree_config["suite_definitions"][suite]["options"]
         else:
--- a/testing/mozharness/scripts/desktop_unittest.py
+++ b/testing/mozharness/scripts/desktop_unittest.py
@@ -321,22 +321,26 @@ class DesktopUnittest(TestingMixin, Merc
             run_file = c['run_file_names'][suite_category]
             base_cmd = [self.query_python_path('python'), '-u']
             base_cmd.append(os.path.join(dirs["abs_%s_dir" % suite_category], run_file))
             abs_app_dir = self.query_abs_app_dir()
             abs_res_dir = self.query_abs_res_dir()
 
             raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                         '%s_raw.log' % suite)
+
+            error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                              '%s_errorsummary.log' % suite)
             str_format_values = {
                 'binary_path': self.binary_path,
                 'symbols_path': self._query_symbols_url(),
                 'abs_app_dir': abs_app_dir,
                 'abs_res_dir': abs_res_dir,
                 'raw_log_file': raw_log_file,
+                'error_summary_file': error_summary_file,
             }
             # TestingMixin._download_and_extract_symbols() will set
             # self.symbols_path when downloading/extracting.
             if self.symbols_path:
                 str_format_values['symbols_path'] = self.symbols_path
 
             if suite_category == 'webapprt':
                 str_format_values['app_path'] = self.get_webapprt_path(abs_res_dir, dirs['abs_mochitest_dir'])
--- a/testing/mozharness/scripts/luciddream_unittest.py
+++ b/testing/mozharness/scripts/luciddream_unittest.py
@@ -231,16 +231,17 @@ class LuciddreamTest(TestingMixin, Mercu
  
         cmd = [self.query_python_path('python'),
                os.path.join(ld_dir, 'luciddream', 'runluciddream.py')
                ]
 
         str_format_values = {
             'browser_path': self.binary_path,
             'raw_log_file': os.path.join(dirs['abs_work_dir'], 'luciddream_raw.log'),
+            'error_summary_file': os.path.join(dirs['abs_work_dir'], 'luciddream_errorsummary.log'),
             'test_manifest': os.path.join(ld_dir, 'example-tests', 'luciddream.ini')
         }
 
         if self.config.get('emulator_url'):
             str_format_values['emulator_path'] = dirs['abs_b2g-distro_dir']
         else:
             if self.config.get('b2gdesktop_url'):
                 str_format_values['fxos_desktop_path'] = os.path.join(dirs['abs_b2g_desktop'], 'b2g', 'b2g')
--- a/testing/mozharness/scripts/marionette.py
+++ b/testing/mozharness/scripts/marionette.py
@@ -337,31 +337,34 @@ class MarionetteTest(TestingMixin, Mercu
     def run_marionette(self):
         """
         Run the Marionette tests
         """
         dirs = self.query_abs_dirs()
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     'marionette_raw.log')
+        error_summary_file = os.path.join(dirs['abs_blob_upload_dir'],
+                                          'marionette_errorsummary.log')
         config_fmt_args = {
             'type': self.config.get('test_type'),
             # emulator builds require a longer timeout
             'timeout': 60000 if self.config.get('emulator') else 10000,
             'profile': os.path.join(dirs['abs_gaia_dir'], 'profile'),
             'xml_output': os.path.join(dirs['abs_work_dir'], 'output.xml'),
             'html_output': os.path.join(dirs['abs_blob_upload_dir'], 'output.html'),
             'logcat_dir': dirs['abs_work_dir'],
             'emulator': 'x86' if os.path.isdir(os.path.join(dirs['abs_b2g-distro_dir'], 'out',
                 'target', 'product', 'generic_x86')) else 'arm',
             'symbols_path': self.symbols_path,
             'homedir': os.path.join(dirs['abs_emulator_dir'], 'b2g-distro'),
             'binary': self.binary_path,
             'address': self.config.get('marionette_address'),
             'raw_log_file': raw_log_file,
+            'error_summary_file': error_summary_file,
             'gecko_log': dirs["abs_blob_upload_dir"],
             'this_chunk': self.config.get('this_chunk', 1),
             'total_chunks': self.config.get('total_chunks', 1)
         }
 
         self.info("The emulator type: %s" % config_fmt_args["emulator"])
         # build the marionette command arguments
         python = self.query_python_path('python')