Make lit's gtest support honor config.environment.
authorJeffrey Yasskin <jyasskin@google.com>
Fri, 5 Feb 2010 18:09:19 +0000 (18:09 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Fri, 5 Feb 2010 18:09:19 +0000 (18:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95398 91177308-0d34-0410-b5e6-96231b3b80d8

utils/lit/lit/TestFormats.py
utils/lit/lit/Util.py

index 5dfd54ac5ec06c06f2458624116cae05d5054cba..fba0ce2ce462c85ab1049d98b4df6e00578888c5 100644 (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,''
index 66c5e46f690a51bea04335254d0964a5e87ca281..414b714c82c336aa01de608d138eeab9c61d6fb0 100644 (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