~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_hashcache.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-05-18 13:02:52 UTC
  • mfrom: (5830.3.6 i18n-msgfmt)
  • Revision ID: pqm@pqm.ubuntu.com-20110518130252-ky96qcvzt6o0zg3f
(mbp) add build_mo command to setup.py (INADA Naoki)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2011, 2016 Canonical Ltd
 
1
# Copyright (C) 2005-2009, 2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
22
22
from bzrlib.errors import BzrError
23
23
from bzrlib.hashcache import HashCache
24
24
from bzrlib.tests import (
 
25
    OsFifoFeature,
25
26
    TestCaseInTempDir,
26
27
    )
27
 
from bzrlib.tests.features import (
28
 
    OsFifoFeature,
29
 
    )
30
28
 
31
29
 
32
30
sha1 = osutils.sha_string
54
52
        """Get correct hash from an empty hashcache"""
55
53
        hc = self.make_hashcache()
56
54
        self.build_tree_contents([('foo', 'hello')])
57
 
        self.assertEqual(hc.get_sha1('foo'),
 
55
        self.assertEquals(hc.get_sha1('foo'),
58
56
                          'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d')
59
 
        self.assertEqual(hc.miss_count, 1)
60
 
        self.assertEqual(hc.hit_count, 0)
 
57
        self.assertEquals(hc.miss_count, 1)
 
58
        self.assertEquals(hc.hit_count, 0)
61
59
 
62
60
    def test_hashcache_new_file(self):
63
61
        hc = self.make_hashcache()
64
62
        self.build_tree_contents([('foo', 'goodbye')])
65
63
        # now read without pausing; it may not be possible to cache it as its
66
64
        # so new
67
 
        self.assertEqual(hc.get_sha1('foo'), sha1('goodbye'))
 
65
        self.assertEquals(hc.get_sha1('foo'), sha1('goodbye'))
68
66
 
69
67
    def test_hashcache_nonexistent_file(self):
70
68
        hc = self.make_hashcache()
71
 
        self.assertEqual(hc.get_sha1('no-name-yet'), None)
 
69
        self.assertEquals(hc.get_sha1('no-name-yet'), None)
72
70
 
73
71
    def test_hashcache_replaced_file(self):
74
72
        hc = self.make_hashcache()
75
73
        self.build_tree_contents([('foo', 'goodbye')])
76
 
        self.assertEqual(hc.get_sha1('foo'), sha1('goodbye'))
 
74
        self.assertEquals(hc.get_sha1('foo'), sha1('goodbye'))
77
75
        os.remove('foo')
78
 
        self.assertEqual(hc.get_sha1('foo'), None)
 
76
        self.assertEquals(hc.get_sha1('foo'), None)
79
77
        self.build_tree_contents([('foo', 'new content')])
80
 
        self.assertEqual(hc.get_sha1('foo'), sha1('new content'))
 
78
        self.assertEquals(hc.get_sha1('foo'), sha1('new content'))
81
79
 
82
80
    def test_hashcache_not_file(self):
83
81
        hc = self.make_hashcache()
84
82
        self.build_tree(['subdir/'])
85
 
        self.assertEqual(hc.get_sha1('subdir'), None)
 
83
        self.assertEquals(hc.get_sha1('subdir'), None)
86
84
 
87
85
    def test_hashcache_load(self):
88
86
        hc = self.make_hashcache()
89
87
        self.build_tree_contents([('foo', 'contents')])
90
88
        pause()
91
 
        self.assertEqual(hc.get_sha1('foo'), sha1('contents'))
 
89
        self.assertEquals(hc.get_sha1('foo'), sha1('contents'))
92
90
        hc.write()
93
91
        hc = self.reopen_hashcache()
94
 
        self.assertEqual(hc.get_sha1('foo'), sha1('contents'))
95
 
        self.assertEqual(hc.hit_count, 1)
 
92
        self.assertEquals(hc.get_sha1('foo'), sha1('contents'))
 
93
        self.assertEquals(hc.hit_count, 1)
96
94
 
97
95
    def test_hammer_hashcache(self):
98
96
        hc = self.make_hashcache()
108
106
            self.log("iteration %d: %r -> %r",
109
107
                     i, last_content, last_sha1)
110
108
            got_sha1 = hc.get_sha1('foo')
111
 
            self.assertEqual(got_sha1, last_sha1)
 
109
            self.assertEquals(got_sha1, last_sha1)
112
110
            hc.write()
113
111
            hc = self.reopen_hashcache()
114
112
 
173
171
        """A new file gives the right sha1 but misses"""
174
172
        hc = self.make_hashcache()
175
173
        hc.put_file('foo', 'hello')
176
 
        self.assertEqual(hc.get_sha1('foo'), sha1('hello'))
177
 
        self.assertEqual(hc.miss_count, 1)
178
 
        self.assertEqual(hc.hit_count, 0)
 
174
        self.assertEquals(hc.get_sha1('foo'), sha1('hello'))
 
175
        self.assertEquals(hc.miss_count, 1)
 
176
        self.assertEquals(hc.hit_count, 0)
179
177
        # if we try again it's still too new;
180
 
        self.assertEqual(hc.get_sha1('foo'), sha1('hello'))
181
 
        self.assertEqual(hc.miss_count, 2)
182
 
        self.assertEqual(hc.hit_count, 0)
 
178
        self.assertEquals(hc.get_sha1('foo'), sha1('hello'))
 
179
        self.assertEquals(hc.miss_count, 2)
 
180
        self.assertEquals(hc.hit_count, 0)
183
181
 
184
182
    def test_hashcache_old_file(self):
185
183
        """An old file gives the right sha1 and hits"""
187
185
        hc.put_file('foo', 'hello')
188
186
        hc.pretend_to_sleep(20)
189
187
        # file is new; should get the correct hash but miss
190
 
        self.assertEqual(hc.get_sha1('foo'), sha1('hello'))
191
 
        self.assertEqual(hc.miss_count, 1)
192
 
        self.assertEqual(hc.hit_count, 0)
 
188
        self.assertEquals(hc.get_sha1('foo'), sha1('hello'))
 
189
        self.assertEquals(hc.miss_count, 1)
 
190
        self.assertEquals(hc.hit_count, 0)
193
191
        # and can now be hit
194
 
        self.assertEqual(hc.get_sha1('foo'), sha1('hello'))
195
 
        self.assertEqual(hc.miss_count, 1)
196
 
        self.assertEqual(hc.hit_count, 1)
 
192
        self.assertEquals(hc.get_sha1('foo'), sha1('hello'))
 
193
        self.assertEquals(hc.miss_count, 1)
 
194
        self.assertEquals(hc.hit_count, 1)
197
195
        hc.pretend_to_sleep(3)
198
196
        # and again
199
 
        self.assertEqual(hc.get_sha1('foo'), sha1('hello'))
200
 
        self.assertEqual(hc.miss_count, 1)
201
 
        self.assertEqual(hc.hit_count, 2)
 
197
        self.assertEquals(hc.get_sha1('foo'), sha1('hello'))
 
198
        self.assertEquals(hc.miss_count, 1)
 
199
        self.assertEquals(hc.hit_count, 2)
202
200
 
203
201
    def test_hashcache_invalidates(self):
204
202
        hc = self.make_hashcache()
206
204
        hc.pretend_to_sleep(20)
207
205
        hc.get_sha1('foo')
208
206
        hc.put_file('foo', 'h1llo')
209
 
        self.assertEqual(hc.get_sha1('foo'), sha1('h1llo'))
210
 
        self.assertEqual(hc.miss_count, 2)
211
 
        self.assertEqual(hc.hit_count, 0)
 
207
        self.assertEquals(hc.get_sha1('foo'), sha1('h1llo'))
 
208
        self.assertEquals(hc.miss_count, 2)
 
209
        self.assertEquals(hc.hit_count, 0)