Bug 808728 - Log remote environment vars correctly; r=jmaher

This commit is contained in:
Geoff Brown 2012-11-06 04:43:58 -07:00
parent 09c482c38b
commit 3988d0453c
2 changed files with 35 additions and 15 deletions

View File

@ -211,19 +211,36 @@ class XPCShellRemote(xpcshell.XPCShellTests, object):
self.log.info("TEST-INFO | profile dir is %s" % self.profileDir)
return self.profileDir
def logCommand(self, name, completeCmd, testdir):
self.log.info("TEST-INFO | %s | full command: %r" % (name, completeCmd))
self.log.info("TEST-INFO | %s | current directory: %r" % (name, self.remoteHere))
self.log.info("TEST-INFO | %s | environment: %s" % (name, self.env))
def setupLeakLogging(self):
# Leak logging disabled on Android because it makes the command
# line too long: bug 752126
# filename = "leaks"
# leakLogFile = self.remoteJoin(self.profileDir, filename)
# self.env["XPCOM_MEM_LEAK_LOG"] = leakLogFile
leakLogFile = ""
return leakLogFile
def setLD_LIBRARY_PATH(self, env):
env["LD_LIBRARY_PATH"]=self.remoteBinDir
def buildEnvironment(self):
self.env = {}
self.setLD_LIBRARY_PATH(self.env)
self.env["MOZ_LINKER_CACHE"]=self.remoteBinDir
if self.options.localAPK and self.appRoot:
self.env["GRE_HOME"]=self.appRoot
self.env["XPCSHELL_TEST_PROFILE_DIR"]=self.profileDir
self.env["TMPDIR"]=self.remoteTmpDir
self.env["HOME"]=self.profileDir
def launchProcess(self, cmd, stdout, stderr, env, cwd):
cmd[0] = self.remoteJoin(self.remoteBinDir, "xpcshell")
env = {}
self.setLD_LIBRARY_PATH(env)
env["MOZ_LINKER_CACHE"]=self.remoteBinDir
if self.options.localAPK and self.appRoot:
env["GRE_HOME"]=self.appRoot
env["XPCSHELL_TEST_PROFILE_DIR"]=self.profileDir
env["TMPDIR"]=self.remoteTmpDir
env["HOME"]=self.profileDir
outputFile = "xpcshelloutput"
f = open(outputFile, "w+")
self.shellReturnCode = self.device.shell(cmd, f, cwd=self.remoteHere, env=env)

View File

@ -588,6 +588,15 @@ class XPCShellTests(object):
out = AutologOutput()
out.post(out.make_testgroups(collection))
def logCommand(self, name, completeCmd, testdir):
self.log.info("TEST-INFO | %s | full command: %r" % (name, completeCmd))
self.log.info("TEST-INFO | %s | current directory: %r" % (name, testdir))
# Show only those environment variables that are changed from
# the ambient environment.
changedEnv = (set("%s=%s" % i for i in self.env.iteritems())
- set("%s=%s" % i for i in os.environ.iteritems()))
self.log.info("TEST-INFO | %s | environment: %s" % (name, list(changedEnv)))
def runTests(self, xpcshell, xrePath=None, appPath=None, symbolsPath=None,
manifest=None, testdirs=None, testPath=None,
interactive=False, verbose=False, keepGoing=False, logfiles=True,
@ -785,13 +794,7 @@ class XPCShellTests(object):
try:
self.log.info("TEST-INFO | %s | running test ..." % name)
if verbose:
self.log.info("TEST-INFO | %s | full command: %r" % (name, completeCmd))
self.log.info("TEST-INFO | %s | current directory: %r" % (name, testdir))
# Show only those environment variables that are changed from
# the ambient environment.
changedEnv = (set("%s=%s" % i for i in self.env.iteritems())
- set("%s=%s" % i for i in os.environ.iteritems()))
self.log.info("TEST-INFO | %s | environment: %s" % (name, list(changedEnv)))
self.logCommand(name, completeCmd, testdir)
startTime = time.time()
proc = self.launchProcess(completeCmd,