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)
 


Reply via email to