зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1536640
- Improve MOZ_LOG support in Android mochitest harness; r=bc
Unifies the mochitest MOZ_LOG file naming and archiving across desktop/android. Notably the inclusion of pid and uuid for android log files helps generate appropriate files for e10s on geckoview. Differential Revision: https://phabricator.services.mozilla.com/D24262 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
e1cc009c49
Коммит
e8ee36fad6
|
@ -102,9 +102,8 @@ list of valid flavors.
|
|||
# Set the desired log modules you want a log be produced
|
||||
# by a try run for, or leave blank to disable the feature.
|
||||
# This will be passed to MOZ_LOG environment variable.
|
||||
# Try run will then put a download link for all log files
|
||||
# on tbpl.mozilla.org.
|
||||
|
||||
# Try run will then put a download link for a zip archive
|
||||
# of all the log files on treeherder.
|
||||
MOZ_LOG = ""
|
||||
|
||||
#####################
|
||||
|
@ -2929,6 +2928,15 @@ toolbar#nav-bar {
|
|||
self.killAndGetStack(browser_pid, utilityPath, debuggerInfo,
|
||||
dump_screen=not debuggerInfo)
|
||||
|
||||
def archiveMozLogs(self):
|
||||
if self.mozLogs:
|
||||
with zipfile.ZipFile("{}/mozLogs.zip".format(os.environ["MOZ_UPLOAD_DIR"]),
|
||||
"w", zipfile.ZIP_DEFLATED) as logzip:
|
||||
for logfile in glob.glob("{}/moz*.log*".format(os.environ["MOZ_UPLOAD_DIR"])):
|
||||
logzip.write(logfile, os.path.basename(logfile))
|
||||
os.remove(logfile)
|
||||
logzip.close()
|
||||
|
||||
class OutputHandler(object):
|
||||
|
||||
"""line output handler for mozrunner"""
|
||||
|
@ -3115,13 +3123,7 @@ def run_test_harness(parser, options):
|
|||
else:
|
||||
result = runner.runTests(options)
|
||||
|
||||
if runner.mozLogs:
|
||||
with zipfile.ZipFile("{}/mozLogs.zip".format(runner.browserEnv["MOZ_UPLOAD_DIR"]),
|
||||
"w", zipfile.ZIP_DEFLATED) as logzip:
|
||||
for logfile in glob.glob("{}/moz*.log*".format(runner.browserEnv["MOZ_UPLOAD_DIR"])):
|
||||
logzip.write(logfile)
|
||||
os.remove(logfile)
|
||||
logzip.close()
|
||||
runner.archiveMozLogs()
|
||||
runner.message_logger.finish()
|
||||
return result
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import os
|
|||
import posixpath
|
||||
import sys
|
||||
import traceback
|
||||
import uuid
|
||||
|
||||
sys.path.insert(
|
||||
0, os.path.abspath(
|
||||
|
@ -38,7 +39,6 @@ class MochiRemote(MochitestDesktop):
|
|||
|
||||
self.certdbNew = True
|
||||
self.chromePushed = False
|
||||
self.mozLogName = "moz.log"
|
||||
|
||||
self.device = ADBDevice(adb=options.adbPath or 'adb',
|
||||
device=options.deviceSerial,
|
||||
|
@ -311,11 +311,10 @@ class MochiRemote(MochitestDesktop):
|
|||
# remove desktop environment not used on device
|
||||
if "XPCOM_MEM_BLOAT_LOG" in browserEnv:
|
||||
del browserEnv["XPCOM_MEM_BLOAT_LOG"]
|
||||
# override mozLogs to avoid processing in MochitestDesktop base class
|
||||
self.mozLogs = None
|
||||
browserEnv["MOZ_LOG_FILE"] = os.path.join(
|
||||
self.remoteMozLog,
|
||||
self.mozLogName)
|
||||
if self.mozLogs:
|
||||
browserEnv["MOZ_LOG_FILE"] = os.path.join(
|
||||
self.remoteMozLog,
|
||||
"moz-pid=%PID-uid={}.log".format(str(uuid.uuid4())))
|
||||
if options.dmd:
|
||||
browserEnv['DMD'] = '1'
|
||||
# Contents of remoteMozLog will be pulled from device and copied to the
|
||||
|
@ -384,6 +383,7 @@ def run_test_harness(parser, options):
|
|||
if not device_exception and options.log_mach is None and not options.verify:
|
||||
mochitest.printDeviceInfo(printLogcat=True)
|
||||
|
||||
mochitest.archiveMozLogs()
|
||||
mochitest.message_logger.finish()
|
||||
|
||||
return retVal
|
||||
|
|
Загрузка…
Ссылка в новой задаче