@@ -1715,31 +1715,15 @@ def inner():
17151715 self .assertEqual (wr (), None )
17161716
17171717 def test_oserror_reinit_leak (self ):
1718- msg = "some error message"
1719- filename = "some filename"
1720- filename2 = "some filename 2"
1721-
1718+ # gh-150988: Check for memory leak when re-initializing OSError
17221719 class LeakingOSError (OSError ):
17231720 def __init__ (self , code , message , filename , filename2 ):
17241721 self .strerror = message
17251722 self .filename = filename
17261723 self .filename2 = filename2
17271724 super ().__init__ (code , message , filename , None , filename2 )
17281725
1729- refcount_msg = sys .getrefcount (msg )
1730- refcount_filename = sys .getrefcount (filename )
1731- refcount_filename2 = sys .getrefcount (filename2 )
1732-
1733- for _ in range (5 ):
1734- try :
1735- raise LeakingOSError (1 , msg , filename , filename2 )
1736- except OSError :
1737- pass
1738-
1739- gc_collect ()
1740- self .assertEqual (sys .getrefcount (msg ), refcount_msg )
1741- self .assertEqual (sys .getrefcount (filename ), refcount_filename )
1742- self .assertEqual (sys .getrefcount (filename2 ), refcount_filename2 )
1726+ LeakingOSError (1 , "some message" , "filename.py" , "filename2.py" )
17431727
17441728 def test_errno_ENOTDIR (self ):
17451729 # Issue #12802: "not a directory" errors are ENOTDIR even on Windows
0 commit comments