Author: futatuki
Date: Sun Sep 24 06:55:18 2023
New Revision: 1912503
URL: http://svn.apache.org/viewvc?rev=1912503&view=rev
Log:
swig-py: Add test for `delta.make_editor()` with `repos.ChangeCollector()`
* subversion/bindings/swig/python/tests/repository.py
(SubversionRepositoryTestCase.test_editor_leak_with_change_collector): New
Patch by: jun66j5
(tweak by me.)
Modified:
subversion/trunk/subversion/bindings/swig/python/tests/repository.py
Modified: subversion/trunk/subversion/bindings/swig/python/tests/repository.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/tests/repository.py?rev=1912503&r1=1912502&r2=1912503&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/python/tests/repository.py
(original)
+++ subversion/trunk/subversion/bindings/swig/python/tests/repository.py Sun
Sep 24 06:55:18 2023
@@ -18,7 +18,7 @@
# under the License.
#
#
-import unittest, setup_path, os, sys
+import unittest, setup_path, os, sys, weakref
from sys import version_info # For Python version check
from io import BytesIO
from svn import core, repos, fs, delta
@@ -301,6 +301,23 @@ class SubversionRepositoryTestCase(unitt
repos.dir_delta(prev_root, b'', b'', this_root, b'', e_ptr, e_baton,
_authz_callback, 1, 1, 0, 0)
+ def test_delta_editor_leak_with_change_collector(self):
+ pool = Pool()
+ subpool = Pool(pool)
+ root = fs.revision_root(self.fs, self.rev, subpool)
+ editor = repos.ChangeCollector(self.fs, root, subpool)
+ editor_ref = weakref.ref(editor)
+ e_ptr, e_baton = delta.make_editor(editor, subpool)
+ repos.replay(root, e_ptr, e_baton, subpool)
+
+ fs.close_root(root)
+ del root
+ self.assertNotEqual(None, editor_ref())
+
+ del e_ptr, e_baton, editor
+ del subpool
+ self.assertEqual(None, editor_ref())
+
def test_retrieve_and_change_rev_prop(self):
"""Test playing with revprops"""
self.assertEqual(repos.fs_revision_prop(self.repos, self.rev, b"svn:log",