]> granicus.if.org Git - python/commitdiff
Update notes to address cyclic garbage and what should happen when a test is fixed.
authorNeal Norwitz <nnorwitz@gmail.com>
Fri, 14 Apr 2006 05:35:39 +0000 (05:35 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Fri, 14 Apr 2006 05:35:39 +0000 (05:35 +0000)
Lib/test/leakers/README.txt

index 69ee35a8845a0d99045a3df053867fed0e0415e7..beeee0e7fa660850de5360a947c6c4aeaf8d1c1e 100644 (file)
@@ -5,6 +5,15 @@ 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
@@ -17,3 +26,7 @@ Here's an example interpreter session for test_gestalt which still leaks:
 [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.