These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			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.
 |