summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/process.py4
-rw-r--r--framework/test.py5
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)}