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

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: