Author: futatuki
Date: Sun Sep 24 05:30:34 2023
New Revision: 1912501
URL: http://svn.apache.org/viewvc?rev=1912501&view=rev
Log:
swig-py: Add test case for SVN-4916 (svn.delta.make_editor)
* subversion/bindings/swig/python/tests/delta.py
DeltaTestCase.testMakeEditorLeak: New
Patch by: jun66j5
(Tweaked by me.)
Modified:
subversion/trunk/subversion/bindings/swig/python/tests/delta.py
Modified: subversion/trunk/subversion/bindings/swig/python/tests/delta.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/tests/delta.py?rev=1912501&r1=1912500&r2=1912501&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/python/tests/delta.py (original)
+++ subversion/trunk/subversion/bindings/swig/python/tests/delta.py Sun Sep 24
05:30:34 2023
@@ -21,6 +21,7 @@
import unittest, setup_path
import os
import tempfile
+import weakref
import svn.delta
import svn.core
from sys import version_info # For Python version check
@@ -117,6 +118,19 @@ class DeltaTestCase(unittest.TestCase):
# Check that the ops inherit the window's pool
self.assertEqual(window.ops[0]._parent_pool, window._parent_pool)
+ def testMakeEditorLeak(self):
+ """Issue 4916, check ref-count leak on svn.delta.make_editor()"""
+ pool = svn.core.Pool()
+ editor = svn.delta.Editor()
+ editor_ref = weakref.ref(editor)
+ e_ptr, e_baton = svn.delta.make_editor(editor, pool)
+ del e_ptr, e_baton
+ self.assertNotEqual(editor_ref(), None)
+ del pool
+ self.assertNotEqual(editor_ref(), None)
+ del editor
+ self.assertEqual(editor_ref(), None)
+
def suite():
return unittest.defaultTestLoader.loadTestsFromTestCase(DeltaTestCase)