mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
[lit] Move executeCommand() into lit.util.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188356 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f76c664f6b
commit
493e8d4bf5
@ -25,25 +25,6 @@ kUseCloseFDs = not kIsWindows
|
||||
# Use temporary files to replace /dev/null on Windows.
|
||||
kAvoidDevNull = kIsWindows
|
||||
|
||||
def executeCommand(command, cwd=None, env=None):
|
||||
# Close extra file handles on UNIX (on Windows this cannot be done while
|
||||
# also redirecting input).
|
||||
close_fds = not kIsWindows
|
||||
|
||||
p = subprocess.Popen(command, cwd=cwd,
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
env=env, close_fds=close_fds)
|
||||
out,err = p.communicate()
|
||||
exitCode = p.wait()
|
||||
|
||||
# Detect Ctrl-C in subprocess.
|
||||
if exitCode == -signal.SIGINT:
|
||||
raise KeyboardInterrupt
|
||||
|
||||
return out, err, exitCode
|
||||
|
||||
def executeShCmd(cmd, cfg, cwd, results):
|
||||
if isinstance(cmd, ShUtil.Seq):
|
||||
if cmd.op == ';':
|
||||
@ -308,7 +289,8 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
|
||||
# run on clang with no real loss.
|
||||
command = litConfig.valgrindArgs + command
|
||||
|
||||
return executeCommand(command, cwd=cwd, env=test.config.environment)
|
||||
return lit.util.executeCommand(command, cwd=cwd,
|
||||
env=test.config.environment)
|
||||
|
||||
def isExpectedFail(test, xfails):
|
||||
# Check if any of the xfails match an available feature or the target.
|
||||
|
@ -3,7 +3,6 @@ import os
|
||||
import sys
|
||||
|
||||
import lit.Test
|
||||
import lit.TestRunner
|
||||
import lit.util
|
||||
|
||||
class FileBasedTest(object):
|
||||
@ -97,7 +96,7 @@ class OneCommandPerFileTest:
|
||||
else:
|
||||
cmd.append(test.getSourcePath())
|
||||
|
||||
out, err, exitCode = lit.TestRunner.executeCommand(cmd)
|
||||
out, err, exitCode = lit.util.executeCommand(cmd)
|
||||
|
||||
diags = out + err
|
||||
if not exitCode and not diags.strip():
|
||||
|
@ -104,7 +104,7 @@ class GoogleTest(object):
|
||||
if litConfig.noExecute:
|
||||
return lit.Test.PASS, ''
|
||||
|
||||
out, err, exitCode = lit.TestRunner.executeCommand(
|
||||
out, err, exitCode = lit.util.executeCommand(
|
||||
cmd, env=test.config.environment)
|
||||
|
||||
if not exitCode:
|
||||
|
@ -2,6 +2,8 @@ import errno
|
||||
import itertools
|
||||
import math
|
||||
import os
|
||||
import platform
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
@ -138,3 +140,20 @@ def printHistogram(items, title = 'Items'):
|
||||
pDigits, pfDigits, i*barH, pDigits, pfDigits, (i+1)*barH,
|
||||
'*'*w, ' '*(barW-w), cDigits, len(row), cDigits, len(items)))
|
||||
|
||||
# Close extra file handles on UNIX (on Windows this cannot be done while
|
||||
# also redirecting input).
|
||||
kUseCloseFDs = not (platform.system() == 'Windows')
|
||||
def executeCommand(command, cwd=None, env=None):
|
||||
p = subprocess.Popen(command, cwd=cwd,
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
env=env, close_fds=kUseCloseFDs)
|
||||
out,err = p.communicate()
|
||||
exitCode = p.wait()
|
||||
|
||||
# Detect Ctrl-C in subprocess.
|
||||
if exitCode == -signal.SIGINT:
|
||||
raise KeyboardInterrupt
|
||||
|
||||
return out, err, exitCode
|
||||
|
Loading…
Reference in New Issue
Block a user