subproc.io_loop.add_callback(
functools.partial(subproc._set_returncode, status))
- def _set_returncode(self, ret):
- self.returncode = ret
+ def _set_returncode(self, status):
+ if os.WIFSIGNALED(status):
+ self.returncode = -os.WTERMSIG(status)
+ else:
+ assert os.WIFEXITED(status)
+ self.returncode = os.WEXITSTATUS(status)
if self._exit_callback:
callback = self._exit_callback
self._exit_callback = None
- callback(ret)
+ callback(self.returncode)
os.kill(subproc.pid, signal.SIGTERM)
ret = self.wait()
self.assertEqual(subproc.returncode, ret)
- self.assertTrue(os.WIFSIGNALED(ret))
- self.assertEqual(os.WTERMSIG(ret), signal.SIGTERM)
+ self.assertEqual(ret, -signal.SIGTERM)
SubprocessTest = skipIfNonUnix(SubprocessTest)