Bug 1558598 - Force WebRender on or off in the raptor harness. r=rwood

Differential Revision: https://phabricator.services.mozilla.com/D35857

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Kartikaya Gupta 2019-06-29 09:49:00 +00:00
Родитель 14cf3a5147
Коммит c3de0e7d73
4 изменённых файлов: 34 добавлений и 15 удалений

Просмотреть файл

@ -86,7 +86,7 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
"action": "store_true",
"dest": "enable_webrender",
"default": False,
"help": "Tries to enable the WebRender compositor.",
"help": "Enable the WebRender compositor in Gecko.",
}],
[["--geckoProfile"], {
"dest": "gecko_profile",
@ -398,6 +398,8 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
options.extend(['--memory-test'])
if self.config.get('cpu_test', False):
options.extend(['--cpu-test'])
if self.config.get('enable_webrender', False):
options.extend(['--enable-webrender'])
for key, value in kw_options.items():
options.extend(['--%s' % key, value])
@ -586,12 +588,6 @@ class Raptor(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidMixin):
else:
env['PYTHONPATH'] = self.raptor_path
# if running in production on a quantum_render build
if self.config['enable_webrender']:
self.info("webrender is enabled so setting MOZ_WEBRENDER=1 and MOZ_ACCELERATED=1")
env['MOZ_WEBRENDER'] = '1'
env['MOZ_ACCELERATED'] = '1'
# mitmproxy needs path to mozharness when installing the cert, and tooltool
env['SCRIPTSPATH'] = scripts_path
env['EXTERNALTOOLSPATH'] = external_tools_path

Просмотреть файл

@ -134,6 +134,8 @@ def create_parser(mach_interface=False):
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).")
add_arg('--enable-webrender', dest="enable_webrender", action="store_true", default=False,
help="Enable the WebRender compositor in Gecko.")
if not mach_interface:
add_arg('--run-local', dest="run_local", default=False, action="store_true",
help="Flag which indicates if Raptor is running locally or in production")
@ -165,6 +167,12 @@ def verify_options(parser, args):
parser.error("Power test is only supported when running Raptor on Firefox Android "
"browsers when host is specified!")
# if --enable-webrender specified, must be on desktop firefox or geckoview-based browser.
if args.enable_webrender:
if args.app not in ["firefox", "geckoview", "refbrow", "fenix"]:
parser.error("WebRender is only supported when running Raptor on Firefox Desktop "
"or GeckoView-based Android browsers!")
# if running on geckoview/refbrow/fenix, we need an activity and intent
if args.app in ["geckoview", "refbrow", "fenix"]:
if not args.activity:

Просмотреть файл

@ -84,7 +84,7 @@ class Raptor(object):
gecko_profile=False, gecko_profile_interval=None, gecko_profile_entries=None,
symbols_path=None, host=None, power_test=False, cpu_test=False, memory_test=False,
is_release_build=False, debug_mode=False, post_startup_delay=None,
interrupt_handler=None, e10s=True, **kwargs):
interrupt_handler=None, e10s=True, enable_webrender=False, **kwargs):
# Override the magic --host HOST_IP with the value of the environment variable.
if host == 'HOST_IP':
@ -108,6 +108,7 @@ class Raptor(object):
'is_release_build': is_release_build,
'enable_control_server_wait': memory_test,
'e10s': e10s,
'enable_webrender': enable_webrender,
}
self.raptor_venv = os.path.join(os.getcwd(), 'raptor-venv')
@ -501,6 +502,12 @@ class RaptorDesktop(Raptor):
self.config['binary'], profile=self.profile, process_args=process_args,
symbols_path=self.config['symbols_path'])
if self.config['enable_webrender']:
self.runner.env['MOZ_WEBRENDER'] = '1'
self.runner.env['MOZ_ACCELERATED'] = '1'
else:
self.runner.env['MOZ_WEBRENDER'] = '0'
def launch_desktop_browser(self, test):
raise NotImplementedError
@ -956,7 +963,8 @@ class RaptorAndroid(Raptor):
extra_args = ["-profile", self.remote_profile,
"--es", "env0", "LOG_VERBOSE=1",
"--es", "env1", "R_LOG_LEVEL=6"]
"--es", "env1", "R_LOG_LEVEL=6",
"--es", "env2", "MOZ_WEBRENDER=%d" % self.config['enable_webrender']]
try:
# make sure the android app is not already running
@ -1258,6 +1266,7 @@ def main(args=sys.argv[1:]):
activity=args.activity,
intent=args.intent,
interrupt_handler=SignalHandler(),
enable_webrender=args.enable_webrender,
)
success = raptor.run_tests(raptor_test_list, raptor_test_names)

Просмотреть файл

@ -18,7 +18,8 @@ def test_verify_options(filedir):
debug='True',
power_test=False,
cpu_test=False,
memory_test=False)
memory_test=False,
enable_webrender=False)
parser = ArgumentParser()
with pytest.raises(SystemExit):
@ -36,7 +37,8 @@ def test_verify_options(filedir):
host='sophie',
power_test=False,
cpu_test=False,
memory_test=False)
memory_test=False,
enable_webrender=False)
verify_options(parser, args) # assert no exception
args = Namespace(app='refbrow',
@ -48,7 +50,8 @@ def test_verify_options(filedir):
host='sophie',
power_test=False,
cpu_test=False,
memory_test=False)
memory_test=False,
enable_webrender=False)
verify_options(parser, args) # assert no exception
args = Namespace(app='fenix',
@ -60,7 +63,8 @@ def test_verify_options(filedir):
host='sophie',
power_test=False,
cpu_test=False,
memory_test=False)
memory_test=False,
enable_webrender=False)
verify_options(parser, args) # assert no exception
args = Namespace(app='geckoview',
@ -72,7 +76,8 @@ def test_verify_options(filedir):
host='sophie',
power_test=False,
cpu_test=True,
memory_test=False)
memory_test=False,
enable_webrender=False)
verify_options(parser, args) # assert no exception
args = Namespace(app='refbrow',
@ -84,7 +89,8 @@ def test_verify_options(filedir):
host='sophie',
power_test=False,
cpu_test=False,
memory_test=False)
memory_test=False,
enable_webrender=False)
parser = ArgumentParser()
verify_options(parser, args) # also will work as uses default activity