diff options
| author | W. Trevor King <wking@tremily.us> | 2017-10-10 15:49:49 -0700 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-12-11 09:06:30 -0400 |
| commit | e263c5b1f9e21d049ab04be0bec3ec7dc5bbc30e (patch) | |
| tree | 57c43a5a4ef5a13a0126c8b5ba4b2ed4e24b8f9c /devel/nmbug | |
| parent | 040c3236afcf95bead0324a48c2e0b9cd7934993 (diff) | |
nmbug: Respect 'expect' in _spawn(..., wait=True)
Fixing a bug from 7f2cb3be (nmbug: Translate to Python, 2014-10-03).
The bug had no direct impact though, because none of the wait=True
callers were setting expect.
Also add expected codes to the debug messages, to help log readers
understand why nonzero exits are occasionally accepted.
Diffstat (limited to 'devel/nmbug')
| -rwxr-xr-x | devel/nmbug/nmbug | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/devel/nmbug/nmbug b/devel/nmbug/nmbug index 6febf16f..755bd7db 100755 --- a/devel/nmbug/nmbug +++ b/devel/nmbug/nmbug @@ -169,8 +169,9 @@ class _SubprocessContextManager(object): stream.close() setattr(self._process, name, None) status = self._process.wait() - _LOG.debug('collect {args} with status {status}'.format( - args=self._args, status=status)) + _LOG.debug( + 'collect {args} with status {status} (expected {expect})'.format( + args=self._args, status=status, expect=self._expect)) if status not in self._expect: raise SubprocessError(args=self._args, status=status) @@ -211,13 +212,14 @@ def _spawn(args, input=None, additional_env=None, wait=False, stdin=None, input = input.encode(encoding) (stdout, stderr) = p.communicate(input=input) status = p.wait() - _LOG.debug('collect {args} with status {status}'.format( - args=args, status=status)) + _LOG.debug( + 'collect {args} with status {status} (expected {expect})'.format( + args=args, status=status, expect=expect)) if stdout is not None: stdout = stdout.decode(encoding) if stderr is not None: stderr = stderr.decode(encoding) - if status: + if status not in expect: raise SubprocessError( args=args, status=status, stdout=stdout, stderr=stderr) return (status, stdout, stderr) |
