[llvm-commits] [PATCH] Make lit's gtest support honor config.environment (issue199071)
jyasskin at gmail.com
jyasskin at gmail.com
Tue Feb 2 18:43:47 PST 2010
Reviewers: daniel_zuster.org,
Message:
Please take a look. The current patch is at
http://codereview.appspot.com/download/issue199071_1003.diff
Description:
This will let me set LD_LIBRARY_PATH correctly when linking the
unittests against an LLVM shared library.
Please review this at http://codereview.appspot.com/199071/show
Affected files:
M utils/lit/lit/TestFormats.py
M utils/lit/lit/Util.py
Index: utils/lit/lit/TestFormats.py
===================================================================
--- utils/lit/lit/TestFormats.py (revision 95191)
+++ utils/lit/lit/TestFormats.py (working copy)
@@ -9,13 +9,19 @@
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 @@
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 @@
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,''
Index: utils/lit/lit/Util.py
===================================================================
--- utils/lit/lit/Util.py (revision 95191)
+++ utils/lit/lit/Util.py (working copy)
@@ -39,11 +39,12 @@
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
More information about the llvm-commits
mailing list