gecko-dev/testing/xpcshell/mach_test_package_commands.py
Andrew Halberstadt 4fecf32869 Bug 1300163 - Reuse the 'e10s' value from the mozharness config on interactive loaners, r=armenzg
I noticed that if you request a loaner for a non-e10s job then run mach, it will be run with e10s
enabled. The mach command should accurately reflect the type of job that got requested. This patch
grabs the 'e10s' argument from the mozharness localconfig.json and uses that.

MozReview-Commit-ID: 4lsKGpizfH7

--HG--
extra : rebase_source : 6f7b45146bb7f3431c242d92b4206d41f7217c03
2016-09-02 14:42:36 -04:00

65 lines
2.0 KiB
Python

# 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/.
from __future__ import unicode_literals
import os
import sys
from argparse import Namespace
from functools import partial
import mozlog
from xpcshellcommandline import parser_desktop
from mach.decorators import (
CommandProvider,
Command,
)
def run_xpcshell(context, **kwargs):
args = Namespace(**kwargs)
args.appPath = args.appPath or os.path.dirname(context.firefox_bin)
args.e10s = context.mozharness_config.get('e10s', args.e10s)
args.utility_path = context.bin_dir
args.testingModulesDir = context.modules_dir
if not args.xpcshell:
args.xpcshell = os.path.join(args.appPath, 'xpcshell')
if not args.pluginsPath:
for path in context.ancestors(args.appPath, depth=2):
test = os.path.join(path, 'plugins')
if os.path.isdir(test):
args.pluginsPath = test
break
log = mozlog.commandline.setup_logging("XPCShellTests",
args,
{"mach": sys.stdout},
{"verbose": True})
if args.testPaths:
test_root = os.path.join(context.package_root, 'xpcshell', 'tests')
normalize = partial(context.normalize_test_path, test_root)
args.testPaths = map(normalize, args.testPaths)
import runxpcshelltests
xpcshell = runxpcshelltests.XPCShellTests(log=log)
return xpcshell.runTests(**vars(args))
@CommandProvider
class MochitestCommands(object):
def __init__(self, context):
self.context = context
@Command('xpcshell-test', category='testing',
description='Run the xpcshell harness.',
parser=parser_desktop)
def xpcshell(self, **kwargs):
return run_xpcshell(self.context, **kwargs)