[lit] Fail testing if a googletest executable crashes during test discovery

googletest formatted tests are discovered by running the test executable. 
Previously testing would silently succeed if the test executable crashed 
during the discovery process. Now testing fails with "error: unable to 
discover google-tests ..." if the test executable exits with a non-zero status.

llvm-svn: 280455
This commit is contained in:
Greg Parker 2016-09-02 02:44:07 +00:00
parent 7d3268d25e
commit 21ef229d64
2 changed files with 6 additions and 2 deletions

View File

@ -35,7 +35,8 @@ class GoogleTest(TestFormat):
lines = lines.replace('\r', '')
lines = lines.split('\n')
except:
litConfig.error("unable to discover google-tests in %r" % path)
litConfig.error("unable to discover google-tests in %r: %s"
% (path, sys.exc_info()[1]))
raise StopIteration
nested_tests = []

View File

@ -65,10 +65,13 @@ def mkdir_p(path):
def capture(args, env=None):
"""capture(command) - Run the given command (or argv list) in a shell and
return the standard output."""
return the standard output. Raises a CalledProcessError if the command
exits with a non-zero status."""
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
env=env)
out,_ = p.communicate()
if p.returncode != 0:
raise subprocess.CalledProcessError(cmd=args, returncode=p.returncode)
return convert_string(out)
def which(command, paths = None):