Bug#985639: python-fakeredis: autopkgtest fails on 32-bit architectures
Source: python-fakeredis
Version: 1.4.1-1
Severity: important
Forwarded: https://github.com/jamesls/fakeredis/issues/295
X-Debbugs-CC: debian-ci@lists.debian.org
User: debian-ci@lists.debian.org
Usertags: fails-always
Hi Maintainer
Since the upload of python-fakeredis/1.4.1-1, its autopkgtests fail on
32-bit architectures[1][2]. I've copied what I hope is the relevant
part of the log below.
The autopkgtests did pass previously in version 1.2.1-1, but only
because this test was skipped.
test_fakeredis_hypothesis.py::TestList::test SKIPPED [ 99%]
So I've usertagged this bug 'fails-always' instead of 'regression'.
As per upstream's comments in the forwarded bug, perhaps we should not
be running the hypothesis tests on any architecture.
> The hypothesis tests have always been somewhat brittle because
> they probe undocumented corner-case behaviour that varies even
> between patch releases of redis, and they're only really expected to
> pass on whatever Redis server is deployed on Travis.
Regards
Graham
[1] https://ci.debian.net/packages/p/python-fakeredis/testing/armhf/
[2] https://ci.debian.net/packages/p/python-fakeredis/testing/i386/
=================================== FAILURES ===================================
________________________________ TestList.test _________________________________
self = <test_hypothesis.TestList object at 0xf5fb19b8>
@pytest.mark.slow
def test(self):
class Machine(CommonMachine):
create_command_strategy = self.create_command_strategy
command_strategy = self.command_strategy
> hypothesis.stateful.run_state_machine_as_test(Machine)
test/test_hypothesis.py:468:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/hypothesis/stateful.py:75: in
run_state_machine_as_test
def run_state_machine_as_test(state_machine_factory, *, settings=None):
/usr/lib/python3/dist-packages/hypothesis/internal/reflection.py:654: in accept
return func(*bound.args, **bound.kwargs)
/usr/lib/python3/dist-packages/hypothesis/stateful.py:200: in
run_state_machine_as_test
run_state_machine(state_machine_factory)
/usr/lib/python3/dist-packages/hypothesis/stateful.py:92: in run_state_machine
@given(st.data())
test/test_hypothesis.py:454: in one_command
self._compare(command)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Machine({}), command = Command('lindex', b'', 2147483648)
def _compare(self, command):
fake_result, fake_exc = self._evaluate(self.fake, command)
real_result, real_exc = self._evaluate(self.real, command)
if fake_exc is not None and real_exc is None:
raise fake_exc
elif real_exc is not None and fake_exc is None:
> assert real_exc == fake_exc, "Expected exception {} not raised".format(real_exc)
E AssertionError: Expected exception value is out of range not raised
E assert ResponseError...out of range') == None
E +ResponseError('value is out of range')
E -None
test/test_hypothesis.py:412: AssertionError
----------------------------- Captured stdout call -----------------------------
Falsifying example:
state = Machine()
state.init_attrs(attrs={'fields': [b'', b'\x00'],
'keys': [b'', b'\x00'],
'scores': [0.0, 1.0],
'values': [b'', b'\x00']})
state.init_data(commands=[Command('rpush', b'', b'')])
state.one_command(command=Command('lindex', b'', 2147483648))
state.teardown()
Reply to: