Source: pexpect Version: 4.8.0-1 Severity: serious X-Debbugs-CC: debian...@lists.debian.org User: debian...@lists.debian.org Usertags: flaky
Hi Maintainer The autopkgtests of pexpect fail regularly and are therefore unsuitable for regression testing. I've copied below what I hope is the relevant part of the log. There's a comment from upstream regarding this particular failing test, and it is skipped when running on TRAVIS. Perhaps this test should be skipped unconditionally in Debian? Regards Graham [1] https://ci.debian.net/packages/p/pexpect/testing/amd64/ =================================== FAILURES =================================== _________________ InteractTestCase.test_interact_exit_unicode __________________ self = <tests.test_interact.InteractTestCase testMethod=test_interact_exit_unicode> def test_interact_exit_unicode(self): " Ensure subprocess receives utf8. " p = pexpect.spawnu('{self.interact_py} --utf8'.format(self=self), timeout=5, env=self.env) p.expect('READY') p.send('ɑ') # >>> map(ord, u'ɑ'.encode('utf8')) p.expect('201<STOP>') # [201, 145] p.expect('145<STOP>') p.send('Β') # >>> map(ord, u'Β'.encode('utf8')) p.expect('206<STOP>') # [206, 146] p.expect('146<STOP>') p.send('\x00') if not os.environ.get('TRAVIS', None): # on Travis-CI, we sometimes miss trailing stdout from the # chain of child processes, not entirely sure why. So this # is skipped on such systems. > p.expect('0<STOP>') tests/test_interact.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pexpect/spawnbase.py:343: in expect return self.expect_list(compiled_pattern_list, pexpect/spawnbase.py:372: in expect_list return exp.expect_loop(timeout) pexpect/expect.py:179: in expect_loop return self.eof(e) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pexpect.expect.Expecter object at 0x7f0b5cf03eb0> err = EOF('End Of File (EOF). Exception style platform.') def eof(self, err=None): spawn = self.spawn spawn.before = spawn._before.getvalue() spawn._buffer = spawn.buffer_type() spawn._before = spawn.buffer_type() spawn.after = EOF index = self.searcher.eof_index if index >= 0: spawn.match = EOF spawn.match_index = index return index else: spawn.match = None spawn.match_index = None msg = str(spawn) msg += '\nsearcher: %s' % self.searcher if err is not None: msg = str(err) + '\n' + msg exc = EOF(msg) exc.__cause__ = None # in Python 3.x we can use "raise exc from None" > raise exc E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform. E <pexpect.pty_spawn.spawn object at 0x7f0b5cf03820> E command: /usr/bin/python3 E args: [b'/usr/bin/python3', b'interact.py', b'--utf8'] E buffer (last 100 chars): '' E before (last 100 chars): '\r\nEscaped interact\r\n' E after: <class 'pexpect.exceptions.EOF'> E match: None E match_index: None E exitstatus: None E flag_eof: True E pid: 1345 E child_fd: 18 E closed: False E timeout: 5 E delimiter: <class 'pexpect.exceptions.EOF'> E logfile: None E logfile_read: None E logfile_send: None E maxread: 2000 E ignorecase: False E searchwindowsize: None E delaybeforesend: 0.05 E delayafterclose: 0.1 E delayafterterminate: 0.1 E searcher: searcher_re: E 0: re.compile('0<STOP>') pexpect/expect.py:122: EOF ----------------------------- Captured stdout call -----------------------------