self.sha_ofs = 12 + self.entries*4
self.nsha = nsha = self._fanget(self.entries-1)
self.shatable = buffer(self.map, self.sha_ofs, nsha*20)
- self.whichlist = buffer(self.map, self.sha_ofs + nsha*20, nsha*4)
- self.idxname_ofs = self.sha_ofs + 24*nsha
- self.idxnames = str(self.map[self.idxname_ofs:]).split('\0')
+ self.which_ofs = self.sha_ofs + 20*nsha
+ self.whichlist = buffer(self.map, self.which_ofs, nsha*4)
+ self.idxnames = str(self.map[self.which_ofs + 4*nsha:]).split('\0')
def _init_failed(self):
self.bits = 0
subprocess.call(['rm','-rf', bupdir])
git.init_repo(bupdir)
git.verbose = 1
+ packdir = git.repo('objects/pack')
idxnames = []
-
- w = git.PackWriter()
hashes = []
- for i in range(2):
- hashes.append(w.new_blob(str(i)))
- log('\n')
- idxnames.append(w.close() + '.idx')
- w = git.PackWriter()
- for i in range(2,4):
- hashes.append(w.new_blob(str(i)))
- log('\n')
- idxnames.append(w.close() + '.idx')
+ for start in range(0,28,2):
+ w = git.PackWriter()
+ for i in range(start, start+2):
+ hashes.append(w.new_blob(str(i)))
+ log('\n')
+ idxnames.append(os.path.basename(w.close() + '.idx'))
- idxnames = [os.path.basename(ix) for ix in idxnames]
-
- def verify(r):
- for i in range(2):
- WVPASSEQ(r.exists(hashes[i], want_source=True), idxnames[0])
- for i in range(2,4):
- WVPASSEQ(r.exists(hashes[i], want_source=True), idxnames[1])
-
- r = git.PackIdxList('pybuptest.tmp/objects/pack')
+ r = git.PackIdxList(packdir)
WVPASSEQ(len(r.packs), 2)
- verify(r)
- del r
-
- subprocess.call([bupmain, 'midx', '-f'])
-
- r = git.PackIdxList('pybuptest.tmp/objects/pack')
- WVPASSEQ(len(r.packs), 1)
- verify(r)
+ for e,idxname in enumerate(idxnames):
+ for i in range(e*2, (e+1)*2):
+ WVPASSEQ(r.exists(hashes[i], want_source=True), idxname)
@wvtest