diff options
author | Armin Rigo <arigo@tunes.org> | 2016-01-16 11:37:57 +0100 |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2016-01-16 11:37:57 +0100 |
commit | 86f06aba8488a5b2e7a0786aae603c1c5dfe4f9b (patch) | |
tree | f6bcaae153326591dcb2dc23c7c2df6075369bc1 /testing/embedding | |
parent | c35890040f238dc00c0bf0a47f7aef9005367c05 (diff) | |
download | cffi-86f06aba8488a5b2e7a0786aae603c1c5dfe4f9b.tar.gz |
Print all commands executed with all details
Diffstat (limited to 'testing/embedding')
-rw-r--r-- | testing/embedding/test_basic.py | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py index 09fce52..ada62f8 100644 --- a/testing/embedding/test_basic.py +++ b/testing/embedding/test_basic.py @@ -41,9 +41,14 @@ class EmbeddingTests: def get_path(self): return str(self._path.ensure(dir=1)) - def _run(self, args, env=None): - print(args) - popen = subprocess.Popen(args, env=env, cwd=self.get_path(), + def _run_base(self, args, env_extra={}, **kwds): + print('RUNNING:', args, env_extra, kwds) + env = os.environ.copy() + env.update(env_extra) + return subprocess.Popen(args, env=env, **kwds) + + def _run(self, args, env_extra={}): + popen = self._run_base(args, env_extra, cwd=self.get_path(), stdout=subprocess.PIPE, universal_newlines=True) output = popen.stdout.read() @@ -64,10 +69,10 @@ class EmbeddingTests: # find a solution to that: we could hack sys.path inside the # script run here, but we can't hack it in the same way in # execute(). - env = os.environ.copy() - env['PYTHONPATH'] = os.path.dirname(os.path.dirname(local_dir)) + env_extra = {'PYTHONPATH': + os.path.dirname(os.path.dirname(local_dir))} output = self._run([sys.executable, os.path.join(local_dir, filename)], - env=env) + env_extra=env_extra) match = re.compile(r"\bFILENAME: (.+)").search(output) assert match dynamic_lib_name = match.group(1) @@ -106,21 +111,21 @@ class EmbeddingTests: def execute(self, name): path = self.get_path() - env = os.environ.copy() - env['PYTHONPATH'] = os.path.dirname(os.path.dirname(local_dir)) - libpath = env.get('LD_LIBRARY_PATH') + env_extra = {} + env_extra['PYTHONPATH'] = os.path.dirname(os.path.dirname(local_dir)) + libpath = os.environ.get('LD_LIBRARY_PATH') if libpath: libpath = path + ':' + libpath else: libpath = path - env['LD_LIBRARY_PATH'] = libpath + env_extra['LD_LIBRARY_PATH'] = libpath print('running %r in %r' % (name, path)) executable_name = name if sys.platform == 'win32': executable_name = os.path.join(path, executable_name + '.exe') - popen = subprocess.Popen([executable_name], cwd=path, env=env, - stdout=subprocess.PIPE, - universal_newlines=True) + popen = self._run_base([executable_name], env_extra, cwd=path, + stdout=subprocess.PIPE, + universal_newlines=True) result = popen.stdout.read() err = popen.wait() if err: |