Skip to content

Commit 0717775

Browse files
committed
index: added tests for reading version 1 index files
1 parent 099ec0d commit 0717775

4 files changed

Lines changed: 19 additions & 10 deletions

File tree

pack.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ def _set_cache_(self, attr):
6666
#{ Access V1
6767

6868
def _entry_v1(self, i):
69-
""":return: tuple(offset, binsha)"""
70-
return unpack_from(">L20s", self._data, 1024 + i*24)[0]
69+
""":return: tuple(offset, binsha, 0)"""
70+
return unpack_from(">L20s", self._data, 1024 + i*24) + (0, )
7171

7272
def _offset_v1(self, i):
7373
"""see ``_offset_v2``"""
7474
return unpack_from(">L", self._data, 1024 + i*24)[0]
7575

7676
def _sha_v1(self, i):
7777
"""see ``_sha_v2``"""
78-
base = 1024 + i*24
78+
base = 1024 + (i*24)+4
7979
return self._data[base:base+20]
8080

8181
def _crc_v1(self, i):
Binary file not shown.
Binary file not shown.

test/test_pack.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313

1414
class TestPack(TestBase):
1515

16-
def test_pack_index(self):
17-
# read v2 index information
18-
index_file = fixture_path('packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx')
19-
index = PackIndex(index_file)
20-
16+
packindexfile_v2 = fixture_path('packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx')
17+
packindexfile_v1 = fixture_path('packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx')
18+
19+
def _assert_index_file(self, index, version, size):
2120
assert index.packfile_checksum != index.indexfile_checksum
22-
assert index.version == 2
23-
assert index.size == 30
21+
assert index.version == version
22+
assert index.size == size
2423

2524
# get all data of all objects
2625
for oidx in xrange(index.size):
@@ -35,4 +34,14 @@ def test_pack_index(self):
3534
assert entry[2] == index.crc(oidx)
3635
# END for each object index in indexfile
3736

37+
38+
def test_pack_index(self):
39+
# check version 1 and 2
40+
index = PackIndex(self.packindexfile_v1)
41+
self._assert_index_file(index, 1, 67)
42+
43+
index = PackIndex(self.packindexfile_v2)
44+
self._assert_index_file(index, 2, 30)
45+
46+
3847

0 commit comments

Comments
 (0)