Make lit's gtest support honor config.environment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95398 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jeffrey Yasskin 2010-02-05 18:09:19 +00:00
parent 7acca6707b
commit 8d280fb50a
2 changed files with 17 additions and 8 deletions

View File

@ -9,13 +9,19 @@ class GoogleTest(object):
self.test_sub_dir = str(test_sub_dir)
self.test_suffix = str(test_suffix)
def getGTestTests(self, path, litConfig):
def getGTestTests(self, path, litConfig, localConfig):
"""getGTestTests(path) - [name]
Return the tests available in gtest executable."""
Return the tests available in gtest executable.
Args:
path: String path to a gtest executable
litConfig: LitConfig instance
localConfig: TestingConfig instance"""
try:
lines = Util.capture([path, '--gtest_list_tests']).split('\n')
lines = Util.capture([path, '--gtest_list_tests'],
env=localConfig.environment).split('\n')
except:
litConfig.error("unable to discover google-tests in %r" % path)
raise StopIteration
@ -52,7 +58,8 @@ class GoogleTest(object):
execpath = os.path.join(filepath, subfilename)
# Discover the tests in this executable.
for name in self.getGTestTests(execpath, litConfig):
for name in self.getGTestTests(execpath, litConfig,
localConfig):
testPath = path_in_suite + (filename, subfilename, name)
yield Test.Test(testSuite, testPath, localConfig)
@ -65,7 +72,8 @@ class GoogleTest(object):
testName = os.path.join(namePrefix, testName)
cmd = [testPath, '--gtest_filter=' + testName]
out, err, exitCode = TestRunner.executeCommand(cmd)
out, err, exitCode = TestRunner.executeCommand(
cmd, env=test.config.environment)
if not exitCode:
return Test.PASS,''

View File

@ -39,11 +39,12 @@ def mkdir_p(path):
if e.errno != errno.EEXIST:
raise
def capture(args):
def capture(args, env=None):
import subprocess
"""capture(command) - Run the given command (or argv list) in a shell and
return the standard output."""
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
env=env)
out,_ = p.communicate()
return out