test_try_again_many_times(): use three times `None`'s ref count
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Sun, 4 Aug 2019 14:07:18 +0000 (10:07 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Mon, 5 Aug 2019 19:10:13 +0000 (15:10 -0400)
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>
tests/bindings/python/bt2/test_message_iterator.py

index 3cd27e5b77325536a7c8735756edd539bf76ec01..31f4192126d33940bc28bd7eefb665d50c68351f 100644 (file)
@@ -21,6 +21,7 @@ import collections
 import unittest
 import copy
 import bt2
+import sys
 from utils import TestOutputPortMessageIterator
 
 
@@ -405,10 +406,12 @@ class UserMessageIteratorTestCase(unittest.TestCase):
         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.
-        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)
 
This page took 0.026733 seconds and 4 git commands to generate.