[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986727: pexpect: flaky autopkgtest



Source: pexpect
Version: 4.8.0-1
Severity: serious
X-Debbugs-CC: debian-ci@lists.debian.org
User: debian-ci@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 -----------------------------


Reply to: