# Eli Bendersky (eliben@gmail.com)
# This code is in the public domain
#-------------------------------------------------------------------------------
+from __future__ import print_function
import os, sys, subprocess, tempfile
-# This module should not import elftools before setup_syspath() is called!
-# See the Hacking Guide in the documentation for more details.
-def setup_syspath():
- """ Setup sys.path so that tests pick up local pyelftools before the
- installed one when run from development directory.
- """
- if sys.path[0] != '.':
- sys.path.insert(0, '.')
-
-
-def run_exe(exe_path, args):
+def run_exe(exe_path, args=[], echo=False):
""" Runs the given executable as a subprocess, given the
list of arguments. Captures its return code (rc) and stdout and
returns a pair: rc, stdout_str
popen_cmd = [exe_path] + args
if os.path.splitext(exe_path)[1] == '.py':
popen_cmd.insert(0, sys.executable)
- proc = subprocess.Popen(popen_cmd, stdout=subprocess.PIPE)
+ if echo:
+ print('[cmd]', ' '.join(popen_cmd))
+ proc = subprocess.Popen(popen_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc_stdout = proc.communicate()[0]
from elftools.common.py3compat import bytes2str
return proc.returncode, bytes2str(proc_stdout)
file.write(s)
file.close()
testlog.info('@@ Output #%s dumped to file: %s' % (i + 1, path))
-