diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2013-01-11 14:52:27 -0800 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2013-01-11 15:05:27 -0800 |
commit | 6e3b1330a975ae46d3e180ed4c444075371b9fa8 (patch) | |
tree | 16e2e160239199c05f025523adcfa67fe42ba6dd /framework | |
parent | 8e65e2c49c2f5a40b2fb99efaabb6ab853b14e3d (diff) |
Diffstat (limited to 'framework')
-rw-r--r-- | framework/process.py | 4 | ||||
-rw-r--r-- | framework/test.py | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/framework/process.py b/framework/process.py index efe2b26..7423769 100644 --- a/framework/process.py +++ b/framework/process.py @@ -28,7 +28,7 @@ from threading import Thread __all__ = ['runProgram'] -def runProgram(cmd, timeout, env = None): +def runProgram(cmd, timeout, workingDir = None, env = None): '''Run a program with a timeout in case it never terminates. cmd -- List of command and arguments. See subprocess.Popen. @@ -47,7 +47,7 @@ def runProgram(cmd, timeout, env = None): out = '' err = '' try: - proc = Popen(cmd, stdout=PIPE, stderr=PIPE, env=fullEnv, + proc = Popen(cmd, stdout=PIPE, stderr=PIPE, cwd=workingDir, env=fullEnv, start_new_session=True, universal_newlines=True) out, err = proc.communicate(timeout=timeout) return (out, err, proc.returncode, True) diff --git a/framework/test.py b/framework/test.py index 2f90c81..fa51172 100644 --- a/framework/test.py +++ b/framework/test.py @@ -31,11 +31,12 @@ __all__ = ['runProgram'] class Test: - def __init__(self, command): + def __init__(self, command, working_directory = None): self.command = command + self.working_directory = working_directory def run(self, timeout): - out, err, exitcode, finished = runProgram(self.command, timeout) + out, err, exitcode, finished = runProgram(self.command, timeout, self.working_directory) return {'out': out, 'err': err, 'exitcode': exitcode, 'status': self.resultStatus(out, err, exitcode, finished)} |