Mercurial > hgsubversion
annotate tests/test_helpers.py @ 1096:691078c03ed9
verify: use mercurials worker API to speedup stupid verify
We use mercurial internal worker api to distribute the workload
during verify. This helps with larger repositories.
with patch, intel i5 dualcore hyperthreading:
$ time hg svn verify
hg svn 169.47s user 21.27s system 373% cpu 51.050 total
before:
$ time hg svn verify
hg svn 100.48s user 11.85s system 99% cpu 1:52.97 total
This makes stupid verify as fast as subvertpy verify. We use \0 as a
separator for serializing the data as it's reserved on common fs.
author | David Soria Parra <dsp@experimentalworks.net> |
---|---|
date | Tue, 01 Oct 2013 16:55:56 +0200 |
parents | d741f536f23a |
children | 8d8fc10d0d0a |
rev | line source |
---|---|
945
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
1 import os, sys, unittest |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
2 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
3 _rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
4 sys.path.insert(0, _rootdir) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
5 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
6 from hgsubversion import editor |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
7 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
8 class TestHelpers(unittest.TestCase): |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
9 def test_filestore(self): |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
10 fs = editor.FileStore(2) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
11 fs.setfile('a', 'a') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
12 fs.setfile('b', 'b') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
13 self.assertEqual('a', fs._data.get('a')) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
14 self.assertEqual('b', fs._data.get('b')) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
15 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
16 fs.delfile('b') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
17 self.assertRaises(IOError, lambda: fs.getfile('b')) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
18 fs.setfile('bb', 'bb') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
19 self.assertTrue('bb' in fs._files) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
20 self.assertTrue('bb' not in fs._data) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
21 self.assertEqual('bb', fs.getfile('bb')) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
22 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
23 fs.delfile('bb') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
24 self.assertTrue('bb' not in fs._files) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
25 self.assertEqual([], os.listdir(fs._tempdir)) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
26 self.assertRaises(IOError, lambda: fs.getfile('bb')) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
27 |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
28 fs.setfile('bb', 'bb') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
29 self.assertEqual(1, len(os.listdir(fs._tempdir))) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
30 fs.popfile('bb') |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
31 self.assertEqual([], os.listdir(fs._tempdir)) |
bfbfc9be3faa
editor: add a pop() method to RevisionMeta to reduce resource usage
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
32 self.assertRaises(editor.EditingError, lambda: fs.getfile('bb')) |