Skip to content

Commit beeca6e

Browse files
authored
bpo-30776: regrtest: reduce memleak false positive (#2484)
Only report a leak if each run leaks at least one memory block.
1 parent 6b42eb1 commit beeca6e

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

Lib/test/libregrtest/refleak.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ def dash_R(the_module, test, indirect_test, huntrleaks):
9696

9797
# These checkers return False on success, True on failure
9898
def check_rc_deltas(deltas):
99+
# Checker for reference counters and memomry blocks.
100+
#
99101
# bpo-30776: Try to ignore false positives:
100102
#
101103
# [3, 0, 0]
@@ -108,22 +110,13 @@ def check_rc_deltas(deltas):
108110
# [10, 1, 1]
109111
return all(delta >= 1 for delta in deltas)
110112

111-
def check_alloc_deltas(deltas):
112-
# At least 1/3rd of 0s
113-
if 3 * deltas.count(0) < len(deltas):
114-
return True
115-
# Nothing else than 1s, 0s and -1s
116-
if not set(deltas) <= {1,0,-1}:
117-
return True
118-
return False
119-
120113
def check_fd_deltas(deltas):
121114
return any(deltas)
122115

123116
failed = False
124117
for deltas, item_name, checker in [
125118
(rc_deltas, 'references', check_rc_deltas),
126-
(alloc_deltas, 'memory blocks', check_alloc_deltas),
119+
(alloc_deltas, 'memory blocks', check_rc_deltas),
127120
(fd_deltas, 'file descriptors', check_fd_deltas)
128121
]:
129122
# ignore warmup runs

0 commit comments

Comments
 (0)