/Lib/test/leakers/README.txt
http://unladen-swallow.googlecode.com/ · Plain Text · 32 lines · 27 code · 5 blank · 0 comment · 0 complexity · 847f4596dca7e9fd210541294f8b4589 MD5 · raw file
- 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.