diff options
| author | Lieuwe <lieuwemo@gmail.com> | 2011-03-18 16:04:51 (GMT) |
|---|---|---|
| committer | Lieuwe <lieuwemo@gmail.com> | 2011-03-18 16:04:51 (GMT) |
| commit | 9c39875ef09d439ef51716dba091188f72977f5e (patch) | |
| tree | fb0fd27a1bcd3e54a1913852c23aa137ee5eb30b /src/python/stdlib/test/leakers/README.txt | |
| parent | bc8af4e2101ac93bdc51b59ee64fa43ecb2442f3 (diff) | |
| download | powder-9c39875ef09d439ef51716dba091188f72977f5e.zip powder-9c39875ef09d439ef51716dba091188f72977f5e.tar.gz | |
...
Diffstat (limited to 'src/python/stdlib/test/leakers/README.txt')
| -rw-r--r-- | src/python/stdlib/test/leakers/README.txt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/python/stdlib/test/leakers/README.txt b/src/python/stdlib/test/leakers/README.txt new file mode 100644 index 0000000..beeee0e --- /dev/null +++ b/src/python/stdlib/test/leakers/README.txt @@ -0,0 +1,32 @@ +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. |
