mirror of
https://github.com/python/cpython
synced 2024-09-20 17:41:39 +00:00
49fd7fa443
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
This directory contains test cases that are known to leak references.
|
|
The idea is that you can import these modules while in the interpreter
|
|
and call the leak function repeatedly. This will only be helpful if
|
|
the interpreter was built in debug mode. If the total ref count
|
|
doesn't increase, the bug has been fixed and the file should be removed
|
|
from the repository.
|
|
|
|
Note: be careful to check for cyclic garbage. Sometimes it may be helpful
|
|
to define the leak function like:
|
|
|
|
def leak():
|
|
def inner_leak():
|
|
# this is the function that leaks, but also creates cycles
|
|
inner_leak()
|
|
gc.collect() ; gc.collect() ; gc.collect()
|
|
|
|
Here's an example interpreter session for test_gestalt which still leaks:
|
|
|
|
>>> from test.leakers.test_gestalt import leak
|
|
[24275 refs]
|
|
>>> leak()
|
|
[28936 refs]
|
|
>>> leak()
|
|
[28938 refs]
|
|
>>> leak()
|
|
[28940 refs]
|
|
>>>
|
|
|
|
Once the leak is fixed, the test case should be moved into an appropriate
|
|
test (even if it was originally from the test suite). This ensures the
|
|
regression doesn't happen again. And if it does, it should be easier
|
|
to track down.
|