[llvm] r280550 - lit: print process output, if getting the list of google-tests failed.

Ivan Krasin via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 2 15:31:24 PDT 2016


Author: krasin
Date: Fri Sep  2 17:31:24 2016
New Revision: 280550

URL: http://llvm.org/viewvc/llvm-project?rev=280550&view=rev
Log:
lit: print process output, if getting the list of google-tests failed.

Summary:
This is a follow up to r280455, where a check for the process exit code
was introduced. Some ASAN bots throw this error now, but it's impossible
to understand what's wrong with them, and the issue is not reproducible.

Reviewers: vitalybuka

Differential Revision: https://reviews.llvm.org/D24210

Modified:
    llvm/trunk/utils/lit/lit/formats/googletest.py
    llvm/trunk/utils/lit/lit/util.py

Modified: llvm/trunk/utils/lit/lit/formats/googletest.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/formats/googletest.py?rev=280550&r1=280549&r2=280550&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/formats/googletest.py (original)
+++ llvm/trunk/utils/lit/lit/formats/googletest.py Fri Sep  2 17:31:24 2016
@@ -1,5 +1,6 @@
 from __future__ import absolute_import
 import os
+import subprocess
 import sys
 
 import lit.Test
@@ -34,9 +35,10 @@ class GoogleTest(TestFormat):
             if kIsWindows:
               lines = lines.replace('\r', '')
             lines = lines.split('\n')
-        except:
-            litConfig.error("unable to discover google-tests in %r: %s"
-                            % (path, sys.exc_info()[1]))
+        except Exception as exc:
+            out = exc.output if isinstance(exc, subprocess.CalledProcessError) else ''
+            litConfig.error("unable to discover google-tests in %r: %s. Process output: %s"
+                            % (path, sys.exc_info()[1], out))
             raise StopIteration
 
         nested_tests = []
@@ -136,4 +138,3 @@ class GoogleTest(TestFormat):
             return lit.Test.UNRESOLVED, msg
 
         return lit.Test.PASS,''
-

Modified: llvm/trunk/utils/lit/lit/util.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/util.py?rev=280550&r1=280549&r2=280550&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/util.py (original)
+++ llvm/trunk/utils/lit/lit/util.py Fri Sep  2 17:31:24 2016
@@ -69,9 +69,13 @@ def capture(args, env=None):
     exits with a non-zero status."""
     p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                          env=env)
-    out,_ = p.communicate()
+    out, err = p.communicate()
+    out = convert_string(out)
+    err = convert_string(err)
     if p.returncode != 0:
-        raise subprocess.CalledProcessError(cmd=args, returncode=p.returncode)
+        raise subprocess.CalledProcessError(cmd=args,
+                                            returncode=p.returncode,
+                                            output="{}\n{}".format(out, err))
     return convert_string(out)
 
 def which(command, paths = None):




More information about the llvm-commits mailing list