[Python-modules-team] Bug#864337: python-blessed: Non-determistically FTBFS due to unreliable timing in tests

Chris Lamb lamby at debian.org
Wed Jun 7 07:31:06 UTC 2017


Source: python-blessed
Version: 1.14.1-1
Severity: serious
Justification: fails to build from source
User: reproducible-builds at lists.alioth.debian.org
Usertags: ftbfs
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

Dear Maintainer,

python-blessed's testsuite appears to use method timing/benchmarking in such 
a way that it will non-deterministically FTBFS:

  […]
  ________________________ test_esc_delay_cbreak_timout_0 ________________________
  
      def test_esc_delay_cbreak_timout_0():
          """esc_delay still in effect with timeout of 0 ("nonblocking")."""
          pid, master_fd = pty.fork()
          if pid == 0:  # child
              cov = init_subproc_coverage('test_esc_delay_cbreak_timout_0')
              term = TestTerminal()
              os.write(sys.__stdout__.fileno(), SEMAPHORE)
              with term.cbreak():
                  stime = time.time()
                  inp = term.inkey(timeout=0)
                  measured_time = (time.time() - stime) * 100
                  os.write(sys.__stdout__.fileno(), (
                      '%s %i' % (inp.name, measured_time,)).encode('ascii'))
                  sys.stdout.flush()
              if cov is not None:
                  cov.stop()
                  cov.save()
              os._exit(0)
      
          with echo_off(master_fd):
              os.write(master_fd, u'\x1b'.encode('ascii'))
              read_until_semaphore(master_fd)
              stime = time.time()
              key_name, duration_ms = read_until_eof(master_fd).split()
      
          pid, status = os.waitpid(pid, 0)
          assert key_name == u'KEY_ESCAPE'
          assert os.WEXITSTATUS(status) == 0
          assert math.floor(time.time() - stime) == 0.0
  >       assert 34 <= int(duration_ms) <= 45, int(duration_ms)
  E       AssertionError: 71
  E       assert 71 <= 45
  E        +  where 71 = int('71')
  
  blessed/tests/test_keyboard.py:528: AssertionError
  ==================== 1 failed, 305 passed in 75.27 seconds =====================
  E: pybuild pybuild:283: test: plugin distutils failed with: exit code=1: cd /build/1st/python-blessed-1.14.1/.pybuild/pythonX.Y_3.5/build; python3.5 -m pytest 
  dh_auto_test: pybuild --test --test-pytest -i python{version} -p 3.5 returned exit code 13
  debian/rules:7: recipe for target 'build' failed
  make: *** [build] Error 25
  dpkg-buildpackage: error: debian/rules build gave error exit status 2
  I: copying local configuration
  E: Failed autobuilding of package

  […]

The full build log is attached or can be viewed here:

    https://tests.reproducible-builds.org/debian/logs/unstable/amd64/python-blessed_1.14.1-1.build1.log.gz


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: python-blessed.1.14.1-1.logs.unstable.log.txt.gz
Type: application/octet-stream
Size: 6954 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/python-modules-team/attachments/20170607/4b023d22/attachment.obj>


More information about the Python-modules-team mailing list