зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1221187: testing/marionette/client: Add -v flag for trace logging output; r=automatedtester
Adds -v and --verbose flags to the `./mach marionette-test` command to increase the verbosity of the Marionette logging output. A single -v corresponds to Log.Level.Debug and above. A double -vv or more corresponds to Log.Level.Trace and above. --HG-- extra : rebase_source : 68fd4ff830447247a2d89fc7b2c398248cbfa186
This commit is contained in:
Родитель
54dd561ad2
Коммит
3f1a51fad7
|
@ -262,6 +262,10 @@ class BaseMarionetteArguments(ArgumentParser):
|
|||
nargs='*',
|
||||
default=[],
|
||||
help='Tests to run.')
|
||||
self.add_argument('-v', '--verbose',
|
||||
action='count',
|
||||
help='Increase verbosity to include debug messages with -v, '
|
||||
'and trace messages with -vv.')
|
||||
self.add_argument('--emulator',
|
||||
choices=['x86', 'arm'],
|
||||
help='if no --address is given, then the harness will launch a B2G emulator on which to run '
|
||||
|
@ -521,7 +525,8 @@ class BaseMarionetteTestRunner(object):
|
|||
server_root=None, gecko_log=None, result_callbacks=None,
|
||||
adb_host=None, adb_port=None, prefs=None, test_tags=None,
|
||||
socket_timeout=BaseMarionetteArguments.socket_timeout_default,
|
||||
startup_timeout=None, addons=None, workspace=None, **kwargs):
|
||||
startup_timeout=None, addons=None, workspace=None,
|
||||
verbose=0, **kwargs):
|
||||
self.address = address
|
||||
self.emulator = emulator
|
||||
self.emulator_binary = emulator_binary
|
||||
|
@ -571,6 +576,7 @@ class BaseMarionetteTestRunner(object):
|
|||
# If no workspace is set, default location for logcat and gecko.log is .
|
||||
# and default location for profile is TMP
|
||||
self.workspace_path = workspace or os.getcwd()
|
||||
self.verbose = verbose
|
||||
|
||||
def gather_debug(test, status):
|
||||
rv = {}
|
||||
|
@ -701,6 +707,7 @@ class BaseMarionetteTestRunner(object):
|
|||
'adb_port': self._adb_port,
|
||||
'prefs': self.prefs,
|
||||
'startup_timeout': self.startup_timeout,
|
||||
'verbose': self.verbose,
|
||||
}
|
||||
if self.bin:
|
||||
kwargs.update({
|
||||
|
|
|
@ -2,46 +2,48 @@
|
|||
# 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 copy import deepcopy
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
|
||||
from copy import deepcopy
|
||||
|
||||
from mozprofile import Profile
|
||||
from mozrunner import Runner
|
||||
|
||||
|
||||
class GeckoInstance(object):
|
||||
|
||||
required_prefs = {
|
||||
"marionette.defaultPrefs.enabled": True,
|
||||
"marionette.logging": True,
|
||||
"browser.displayedE10SPrompt": 5,
|
||||
"browser.displayedE10SPrompt.1": 5,
|
||||
"browser.displayedE10SPrompt.2": 5,
|
||||
"browser.displayedE10SPrompt.3": 5,
|
||||
"browser.displayedE10SPrompt.4": 5,
|
||||
"browser.displayedE10SPrompt": 5,
|
||||
"browser.sessionstore.resume_from_crash": False,
|
||||
"browser.shell.checkDefaultBrowser": False,
|
||||
"browser.startup.page": 0,
|
||||
"browser.tabs.remote.autostart": False,
|
||||
"browser.tabs.remote.autostart.1": False,
|
||||
"browser.tabs.remote.autostart.2": False,
|
||||
"browser.tabs.remote.autostart": False,
|
||||
"browser.urlbar.userMadeSearchSuggestionsChoice": True,
|
||||
"browser.warnOnQuit": False,
|
||||
"dom.ipc.reportProcessHangs": False,
|
||||
"datareporting.healthreport.logging.consoleEnabled": False,
|
||||
"datareporting.healthreport.service.enabled": False,
|
||||
"datareporting.healthreport.service.firstRun": False,
|
||||
"datareporting.healthreport.uploadEnabled": False,
|
||||
"datareporting.policy.dataSubmissionEnabled": False,
|
||||
"datareporting.policy.dataSubmissionPolicyAccepted": False,
|
||||
"dom.ipc.reportProcessHangs": False,
|
||||
"focusmanager.testmode": True,
|
||||
"marionette.defaultPrefs.enabled": True,
|
||||
"startup.homepage_welcome_url": "about:blank",
|
||||
"toolkit.telemetry.enabled": False,
|
||||
}
|
||||
|
||||
def __init__(self, host, port, bin, profile=None, addons=None,
|
||||
app_args=None, symbols_path=None, gecko_log=None, prefs=None,
|
||||
workspace=None):
|
||||
workspace=None, verbose=0):
|
||||
self.marionette_host = host
|
||||
self.marionette_port = port
|
||||
self.bin = bin
|
||||
|
@ -74,12 +76,16 @@ class GeckoInstance(object):
|
|||
os.remove(gecko_log)
|
||||
|
||||
self.gecko_log = gecko_log
|
||||
self.verbose = verbose
|
||||
|
||||
def start(self):
|
||||
profile_args = {"preferences": deepcopy(self.required_prefs)}
|
||||
profile_args["preferences"]["marionette.defaultPrefs.port"] = self.marionette_port
|
||||
if self.prefs:
|
||||
profile_args["preferences"].update(self.prefs)
|
||||
if self.verbose:
|
||||
level = "TRACE" if self.verbose >= 2 else "DEBUG"
|
||||
profile_args["preferences"]["marionette.logging"] = level
|
||||
if '-jsdebugger' in self.app_args:
|
||||
profile_args["preferences"].update({
|
||||
"devtools.browsertoolbox.panel": "jsdebugger",
|
||||
|
@ -205,9 +211,6 @@ class DesktopInstance(GeckoInstance):
|
|||
'extensions.update.notifyUser': False,
|
||||
'geo.provider.testing': True,
|
||||
'javascript.options.showInConsole': True,
|
||||
# See Bug 1221187 - marionette logging is too verbose, especially for
|
||||
# long-running tests.
|
||||
'marionette.logging': False,
|
||||
'security.notification_enable_delay': 0,
|
||||
'signon.rememberSignons': False,
|
||||
'toolkit.startup.max_resumed_crashes': -1,
|
||||
|
@ -217,6 +220,7 @@ class DesktopInstance(GeckoInstance):
|
|||
super(DesktopInstance, self).__init__(*args, **kwargs)
|
||||
self.required_prefs.update(DesktopInstance.desktop_prefs)
|
||||
|
||||
|
||||
class NullOutput(object):
|
||||
def __call__(self, line):
|
||||
pass
|
||||
|
|
|
@ -542,7 +542,7 @@ class Marionette(object):
|
|||
busybox=None, symbols_path=None, timeout=None, socket_timeout=360,
|
||||
device_serial=None, adb_path=None, process_args=None,
|
||||
adb_host=None, adb_port=None, prefs=None, startup_timeout=None,
|
||||
workspace=None):
|
||||
workspace=None, verbose=0):
|
||||
self.host = host
|
||||
self.port = self.local_port = port
|
||||
self.bin = bin
|
||||
|
@ -596,7 +596,8 @@ class Marionette(object):
|
|||
symbols_path=symbols_path,
|
||||
gecko_log=gecko_log, prefs=prefs,
|
||||
addons=self.addons,
|
||||
workspace=workspace)
|
||||
workspace=workspace,
|
||||
verbose=verbose)
|
||||
self.instance.start()
|
||||
self.raise_for_port(self.wait_for_port(timeout=startup_timeout))
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче