Commit 4157983d authored by Andrew Halberstadt's avatar Andrew Halberstadt
Browse files

Bug 1460914 - [xpcshell] Add --setpref to the command line, r=ted

Depends on D9796

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

--HG--
extra : moz-landing-system : lando
parent ecadfa3e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ from mochitest_options import MochitestArgumentParser
from manifestparser import TestManifest
from manifestparser.filters import chunk_by_slice
from mozdevice import ADBAndroid, ADBTimeoutError
from mozprofile.cli import parse_key_value
from mozprofile.cli import parse_key_value, parse_preferences
import mozfile
import mozinfo

@@ -243,7 +243,7 @@ class RobocopTestRunner(MochitestDesktop):
            'mochikit@mozilla.org',
        ])

        self.extraPrefs = self.parseExtraPrefs(self.options.extraPrefs)
        self.extraPrefs = parse_preferences(self.options.extraPrefs)
        if self.options.testingModulesDir:
            try:
                self.device.push(self.options.testingModulesDir, self.remoteModulesDir)
+2 −2
Original line number Diff line number Diff line
@@ -348,8 +348,8 @@ class XPCShellRemote(xpcshell.XPCShellTests, object):
        self.device.chmod(remoteWrapper, root=True)
        os.remove(localWrapper)

    def buildPrefsFile(self):
        super(XPCShellRemote, self).buildPrefsFile()
    def buildPrefsFile(self, extraPrefs):
        super(XPCShellRemote, self).buildPrefsFile(extraPrefs)

        remotePrefsFile = posixpath.join(self.remoteTestRoot, 'user.js')
        self.device.push(self.prefsFile, remotePrefsFile)
+7 −2
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import mozcrash
import mozfile
import mozinfo
from mozprofile import Profile
from mozprofile.cli import parse_preferences
from mozrunner.utils import get_stack_fixer_function

# --------------------------------------------------------------
@@ -951,7 +952,7 @@ class XPCShellTests(object):
        if self.mozInfo is None:
            self.mozInfo = os.path.join(self.testharnessdir, "mozinfo.json")

    def buildPrefsFile(self):
    def buildPrefsFile(self, extraPrefs):
        # Create the prefs.js file
        profile_data_dir = os.path.join(SCRIPT_DIR, 'profile_data')

@@ -976,6 +977,10 @@ class XPCShellTests(object):
            path = os.path.join(profile_data_dir, name)
            profile.merge(path, interpolation=interpolation)

        # add command line prefs
        prefs = parse_preferences(extraPrefs)
        profile.set_preferences(prefs)

        self.prefsFile = os.path.join(profile.profile, 'user.js')

    def buildCoreEnvironment(self):
@@ -1280,7 +1285,7 @@ class XPCShellTests(object):
        self.todoCount = 0

        self.setAbsPath()
        self.buildPrefsFile()
        self.buildPrefsFile(options.get('extraPrefs') or [])
        self.buildXpcsRunArgs()

        self.event = Event()
+3 −0
Original line number Diff line number Diff line
@@ -124,6 +124,9 @@ def add_common_arguments(parser):
                        help="override the number of jobs (threads) when running tests "
                             "in parallel, the default is CPU x 1.5 when running via mach "
                             "and CPU x 4 when running in automation")
    parser.add_argument("--setpref",
                        action="append", dest="extraPrefs", metavar="PREF=VALUE",
                        help="Defines an extra user preference (can be passed multiple times.")
    parser.add_argument("testPaths", nargs="*", default=None,
                        help="Paths of tests to run.")
    parser.add_argument("--verify",