Rev 3203: Fix 16 leaked tmp dirs. Probably indicates a lock handling problem with TransformPreview in file:///v/home/vila/src/bzr/bugs/123363-tmp-pollution/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Tue Jan 29 13:27:42 GMT 2008
At file:///v/home/vila/src/bzr/bugs/123363-tmp-pollution/
------------------------------------------------------------
revno: 3203
revision-id:v.ladeuil+lp at free.fr-20080129132736-nai2jpv02r2wltgc
parent: v.ladeuil+lp at free.fr-20080129115331-n7nl3ljtkepljzwi
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 123363-tmp-pollution
timestamp: Tue 2008-01-29 14:27:36 +0100
message:
Fix 16 leaked tmp dirs. Probably indicates a lock handling problem with TransformPreview
* bzrlib/tests/test_transform.py:
(addPreviewCleanup): New method cleaning the TransformPreview
limbdodir leaked by the tests.
* bzrlib/transform.py:
(TransformPreview.__init__): Use a specific prefix for the
limbodir to make leaks more obvious.
modified:
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
-------------- next part --------------
=== modified file 'bzrlib/tests/test_transform.py'
--- a/bzrlib/tests/test_transform.py 2008-01-17 02:16:39 +0000
+++ b/bzrlib/tests/test_transform.py 2008-01-29 13:27:36 +0000
@@ -22,6 +22,7 @@
from bzrlib import (
errors,
generate_ids,
+ osutils,
progress,
revision as _mod_revision,
symbol_versioning,
@@ -1832,20 +1833,31 @@
def get_empty_preview(self):
repository = self.make_repository('repo')
tree = repository.revision_tree(_mod_revision.NULL_REVISION)
- return TransformPreview(tree)
+ preview = TransformPreview(tree)
+ self.addPreviewCleanup(preview)
+ return preview
+
+ def addPreviewCleanup(self, preview):
+ # This probably indicates a problem in the TransformPreview
+ # API. finalize() can't be called in tests unsing addPreviewCleanup
+ # because no lock is held.
+ self.addCleanup(lambda: osutils.rmtree(preview._limbodir))
def test_transform_preview(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
def test_transform_preview_tree(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
preview.get_preview_tree()
def test_transform_new_file(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
preview.new_file('file2', preview.root, 'content B\n', 'file2-id')
preview_tree = preview.get_preview_tree()
self.assertEqual(preview_tree.kind('file2-id'), 'file')
@@ -1855,6 +1867,7 @@
def test_diff_preview_tree(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
preview.new_file('file2', preview.root, 'content B\n', 'file2-id')
preview_tree = preview.get_preview_tree()
out = StringIO()
@@ -1867,6 +1880,7 @@
def test_transform_conflicts(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
preview.new_file('a', preview.root, 'content 2')
resolve_conflicts(preview)
trans_id = preview.trans_id_file_id('a-id')
@@ -1875,6 +1889,7 @@
def get_tree_and_preview_tree(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
a_trans_id = preview.trans_id_file_id('a-id')
preview.delete_contents(a_trans_id)
preview.create_file('b content', a_trans_id)
@@ -1932,6 +1947,7 @@
def test_kind(self):
revision_tree = self.create_tree()
preview = TransformPreview(revision_tree)
+ self.addPreviewCleanup(preview)
preview.new_file('file', preview.root, 'contents', 'file-id')
preview.new_directory('directory', preview.root, 'dir-id')
preview_tree = preview.get_preview_tree()
=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py 2008-01-16 13:09:30 +0000
+++ b/bzrlib/transform.py 2008-01-29 13:27:36 +0000
@@ -1321,7 +1321,7 @@
"""
def __init__(self, tree, pb=DummyProgress(), case_sensitive=True):
- limbodir = tempfile.mkdtemp()
+ limbodir = tempfile.mkdtemp(prefix='bzr-limbo-')
TreeTransformBase.__init__(self, tree, limbodir, pb, case_sensitive)
def canonical_path(self, path):
More information about the bazaar-commits
mailing list