Bug 1549669 - [raptor] Handle "--disable-e10s" argument to avoid causing fennec tests to fail r=perftest-reviewers,whimboo,ahal,rwood
authoralexandru.ionescu <alexandru.ionescu@softvision.ro>
Tue, 14 May 2019 11:50:00 +0000
changeset 473762 7abc1485ca90e0283665aa49a73aff7578f20d6e
parent 473761 3d3527abff681615f5a3dde9bd844b60b80f292d
child 473763 23ab80e6ec5318991ef646bc74515bd4347d0da1
push id36013
push usercsabou@mozilla.com
push dateTue, 14 May 2019 16:01:08 +0000
treeherdermozilla-central@230016dbba05 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersperftest-reviewers, whimboo, ahal, rwood
bugs1549669
milestone68.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 1549669 - [raptor] Handle "--disable-e10s" argument to avoid causing fennec tests to fail r=perftest-reviewers,whimboo,ahal,rwood Differential Revision: https://phabricator.services.mozilla.com/D30171
testing/mozharness/mozharness/mozilla/testing/raptor.py
testing/raptor/raptor/cmdline.py
testing/raptor/raptor/raptor.py
--- a/testing/mozharness/mozharness/mozilla/testing/raptor.py
+++ b/testing/mozharness/mozharness/mozilla/testing/raptor.py
@@ -158,16 +158,22 @@ class Raptor(TestingMixin, MercurialScri
             "help": "Use Raptor to measure memory usage.",
         }],
         [["--debug-mode"], {
             "dest": "debug_mode",
             "action": "store_true",
             "default": False,
             "help": "Run Raptor in debug mode (open browser console, limited page-cycles, etc.)",
         }],
+        [["--disable-e10s"], {
+            "dest": "e10s",
+            "action": "store_false",
+            "default": True,
+            "help": "Run without multiple processes (e10s).",
+        }],
 
     ] + testing_config_options + copy.deepcopy(code_coverage_config_options)
 
     def __init__(self, **kwargs):
         kwargs.setdefault('config_options', self.config_options)
         kwargs.setdefault('all_actions', ['clobber',
                                           'download-and-extract',
                                           'populate-webroot',
--- a/testing/raptor/raptor/cmdline.py
+++ b/testing/raptor/raptor/cmdline.py
@@ -124,16 +124,18 @@ def create_parser(mach_interface=False):
             help='How long to wait (ms) after browser start-up before starting the tests')
     add_arg('--browser-cycles', dest="browser_cycles", type=int,
             help="The number of times a cold load test is repeated (for cold load tests only, "
             "where the browser is shutdown and restarted between test iterations)")
     add_arg('--print-tests', action=_PrintTests,
             help="Print all available Raptor tests")
     add_arg('--debug-mode', dest="debug_mode", action="store_true",
             help="Run Raptor in debug mode (open browser console, limited page-cycles, etc.)")
+    add_arg('--disable-e10s', dest="e10s", action="store_false", default=True,
+            help="Run without multiple processes (e10s).")
     if not mach_interface:
         add_arg('--run-local', dest="run_local", default=False, action="store_true",
                 help="Flag that indicates if raptor is running locally or in production")
         add_arg('--obj-path', dest="obj_path", default=None,
                 help="Browser build obj_path (received when running in production)")
 
     add_logging_group(parser)
     return parser
--- a/testing/raptor/raptor/raptor.py
+++ b/testing/raptor/raptor/raptor.py
@@ -82,17 +82,17 @@ class SignalHandlerException(Exception):
 
 class Raptor(object):
     """Container class for Raptor"""
 
     def __init__(self, app, binary, run_local=False, obj_path=None,
                  gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
                  symbols_path=None, host=None, power_test=False, memory_test=False,
                  is_release_build=False, debug_mode=False, post_startup_delay=None,
-                 interrupt_handler=None, **kwargs):
+                 interrupt_handler=None, e10s=True, **kwargs):
 
         # Override the magic --host HOST_IP with the value of the environment variable.
         if host == 'HOST_IP':
             host = os.environ['HOST_IP']
 
         self.config = {
             'app': app,
             'binary': binary,
@@ -104,16 +104,17 @@ class Raptor(object):
             'gecko_profile_interval': gecko_profile_interval,
             'gecko_profile_entries': gecko_profile_entries,
             'symbols_path': symbols_path,
             'host': host,
             'power_test': power_test,
             'memory_test': memory_test,
             'is_release_build': is_release_build,
             'enable_control_server_wait': memory_test,
+            'e10s': e10s,
         }
 
         self.raptor_venv = os.path.join(os.getcwd(), 'raptor-venv')
         self.log = get_default_logger(component='raptor-main')
         self.control_server = None
         self.playback = None
         self.benchmark = None
         self.benchmark_port = 0
@@ -901,17 +902,17 @@ class RaptorAndroid(Raptor):
 
                 # Additional command line arguments that the app will read and use (e.g.
                 # with a custom profile)
                 extras = {}
                 if extra_args:
                     extras['args'] = " ".join(extra_args)
 
                 # add e10s=True
-                extras['use_multiprocess'] = True
+                extras['use_multiprocess'] = self.config['e10s']
 
                 self.device.launch_application(self.config['binary'],
                                                self.config['activity'],
                                                self.config['intent'],
                                                extras=extras,
                                                url='about:blank',
                                                fail_if_running=False)