Commit 8bb0863e authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

bpo-30675: Fix refleak hunting in regrtest (#2227)

regrtest now warms up caches: create explicitly all internal
singletons which are created on demand to prevent false positives
when checking for reference leaks.
parent 0e4571a6
......@@ -438,6 +438,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
if slaveargs is not None:
args, kwargs = json.loads(slaveargs)
if kwargs['huntrleaks']:
warm_caches()
if testdir:
kwargs['testdir'] = testdir
try:
......@@ -448,6 +450,9 @@ def main(tests=None, testdir=None, verbose=0, quiet=False,
print json.dumps(result)
sys.exit(0)
if huntrleaks:
warm_caches()
good = []
bad = []
skipped = []
......@@ -1418,6 +1423,18 @@ def clear_caches():
# Collect cyclic trash.
gc.collect()
def warm_caches():
"""Create explicitly internal singletons which are created on demand
to prevent false positive when hunting reference leaks."""
# char cache
for i in range(256):
chr(i)
# unicode cache
for i in range(256):
unichr(i)
# int cache
list(range(-5, 257))
def findtestdir(path=None):
return path or os.path.dirname(__file__) or os.curdir
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment