fix: test_message_iterator.py hangs on Python 3.12
authorMichael Jeanson <mjeanson@debian.org>
Fri, 16 Jun 2023 16:12:52 +0000 (12:12 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Tue, 24 Oct 2023 19:59:58 +0000 (15:59 -0400)
commitda110483eccb522d3db135a903bb1366cd039207
tree8d5271d80b63fb56eb030b240b07ce21d8cd1723
parentcd588ad8414db4a7d36e12625991bd862e5273d0
fix: test_message_iterator.py hangs on Python 3.12

Starting with Python 3.12 'None' is immortal, its refcount operations
are NO-OP and sys.getrefcount() will return a static value of UINT_MAX
on 64-bit and UINT_MAX >> 2 on 32-bit.

This basically transform 'test_try_again_many_times' in an almost
infinite loop and hangs the testsuite.

Detect this by checking if the refcount on 'None' is incremented after
assigning to a variable and skip the test if it's not the case.

See PEP-0683[1] for the gory details.

[1] https://peps.python.org/pep-0683/

Change-Id: Id07658245d524288ce7606cb0a011ad97068dad1
Signed-off-by: Michael Jeanson <mjeanson@debian.org>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/10381
Tested-by: jenkins <jenkins@lttng.org>
CI-Build: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
tests/bindings/python/bt2/test_message_iterator.py
This page took 0.025031 seconds and 4 git commands to generate.