~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testhashcache.py

  • Committer: Martin Pool
  • Date: 2005-09-13 01:37:23 UTC
  • Revision ID: mbp@sourcefrog.net-20050913013723-7e0026b48cbf08ff
- BROKEN: start refactoring fetch code to work well with weaves

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
 
26
26
def pause():
27
 
    if False:
28
 
        # enable this to get more accurate testing
29
 
        import time
30
 
        # allow it to stabilize
31
 
        start = int(time.time())
32
 
        while int(time.time()) == start:
33
 
            time.sleep(0.2)
 
27
    import time
 
28
    # allow it to stabilize
 
29
    start = int(time.time())
 
30
    while int(time.time()) == start:
 
31
        time.sleep(0.2)
34
32
    
35
33
 
36
34
class TestHashCache(TestCaseInTempDir):
56
54
        # check we hit without re-reading
57
55
        self.assertEquals(hc.get_sha1('foo'),
58
56
                          'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d')
59
 
        ##self.assertEquals(hc.miss_count, 1)
60
 
        ##self.assertEquals(hc.hit_count, 1)
 
57
        self.assertEquals(hc.miss_count, 1)
 
58
        self.assertEquals(hc.hit_count, 1)
61
59
 
62
60
        # check again without re-reading
63
61
        self.assertEquals(hc.get_sha1('foo'),
64
62
                          'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d')
65
 
        ##self.assertEquals(hc.miss_count, 1)
66
 
        ##self.assertEquals(hc.hit_count, 2)
 
63
        self.assertEquals(hc.miss_count, 1)
 
64
        self.assertEquals(hc.hit_count, 2)
67
65
 
68
66
        # write new file and make sure it is seen
69
67
        file('foo', 'wb').write('goodbye')
70
68
        pause()
71
69
        self.assertEquals(hc.get_sha1('foo'),
72
70
                          '3c8ec4874488f6090a157b014ce3397ca8e06d4f')
73
 
        ##self.assertEquals(hc.miss_count, 2)
 
71
        self.assertEquals(hc.miss_count, 2)
74
72
 
75
73
        # quickly write new file of same size and make sure it is seen
76
74
        # this may rely on detection of timestamps that are too close
96
94
 
97
95
        # should now be safe to cache it if we reread them
98
96
        self.assertEquals(hc.get_sha1('foo'), sha1('g00dbye'))
99
 
        ##self.assertEquals(len(hc._cache), 1)
 
97
        self.assertEquals(len(hc._cache), 1)
100
98
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))
101
 
        ##self.assertEquals(len(hc._cache), 2)
 
99
        self.assertEquals(len(hc._cache), 2)
102
100
 
103
101
        # write out, read back in and check that we don't need to
104
102
        # re-read any files
108
106
        hc = HashCache('.')
109
107
        hc.read()
110
108
 
111
 
        ##self.assertEquals(len(hc._cache), 2)
 
109
        self.assertEquals(len(hc._cache), 2)
112
110
        self.assertEquals(hc.get_sha1('foo'), sha1('g00dbye'))
113
 
        ##self.assertEquals(hc.hit_count, 1)
114
 
        ##self.assertEquals(hc.miss_count, 0)
 
111
        self.assertEquals(hc.hit_count, 1)
 
112
        self.assertEquals(hc.miss_count, 0)
115
113
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))