100,000 iterations was arbitrary anyway, so let's just depend on the
initial reference count of `None` and iterate three times that since
this is the object we want to avoid destroy.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I3d587c730b4587d5381d07541d0d86ccff344858
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1822
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
import unittest
import copy
import bt2
import unittest
import copy
import bt2
from utils import TestOutputPortMessageIterator
from utils import TestOutputPortMessageIterator
src = graph.add_component(MySource, 'src')
it = TestOutputPortMessageIterator(graph, src.output_ports['out'])
src = graph.add_component(MySource, 'src')
it = TestOutputPortMessageIterator(graph, src.output_ports['out'])
- # The initial refcount of Py_None was in the 7000, so 100000 iterations
- # should be enough to catch the bug even if there are small differences
+ # Three times the initial ref count of `None` iterations should
+ # be enough to catch the bug even if there are small differences
# between configurations.
# between configurations.
- for i in range(100000):
+ none_ref_count = sys.getrefcount(None) * 3
+
+ for i in range(none_ref_count):
with self.assertRaises(bt2.TryAgain):
next(it)
with self.assertRaises(bt2.TryAgain):
next(it)