[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