Commit 4d0947ec authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 98d18081
This diff is collapsed.
...@@ -242,12 +242,12 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) { ...@@ -242,12 +242,12 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) {
// update vδf + co for t1 // update vδf + co for t1
vδf = append(vδf, &ΔFile{Rev: t1.At, Epoch: true}) vδf = append(vδf, &ΔFile{Rev: t1.At, Epoch: true})
vδE = append(vδE, _ΔFileEpoch{ vδE = append(vδE, _ΔFileEpoch{
Rev: t1.At, Rev: t1.At,
oldRoot: zodb.InvalidOid, oldRoot: zodb.InvalidOid,
newRoot: t.Root(), newRoot: t.Root(),
oldBlkSize: -1, oldBlkSize: -1,
newBlkSize: blksize, newBlkSize: blksize,
oldTrackSetZBlk: nil, oldZinblk: nil,
}) })
epochv = append(epochv, t1.At) epochv = append(epochv, t1.At)
for blk, zblk := range δt1 { for blk, zblk := range δt1 {
...@@ -423,12 +423,12 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) { ...@@ -423,12 +423,12 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) {
δE.oldBlkSize = -1 δE.oldBlkSize = -1
δE.newBlkSize = blksize δE.newBlkSize = blksize
} }
oldTrackSetZBlk := map[zodb.Oid]setI64{} oldZinblk := map[zodb.Oid]setI64{}
for zblk, inblk := range ZinblkPrev { for zblk, inblk := range ZinblkPrev {
oid, _ := commit.XGetBlkByName(zblk) oid, _ := commit.XGetBlkByName(zblk)
oldTrackSetZBlk[oid] = inblk oldZinblk[oid] = inblk
} }
δE.oldTrackSetZBlk = oldTrackSetZBlk δE.oldZinblk = oldZinblk
vδE = append(vδE, δE) vδE = append(vδE, δE)
} }
...@@ -445,26 +445,64 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) { ...@@ -445,26 +445,64 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) {
retrackAll() retrackAll()
} }
// verify δFtail.trackSetZBlk // verify byRoot, Zinroot
trackZinblk := map[string]setI64{} trackZinroot := map[string]setOid{}
for oid, zt := range δFtail.trackSetZBlk { trackRfiles := map[zodb.Oid]setOid{}
zblki := commit.ZBlkTab[oid] for root, rt := range δFtail.byRoot {
for root, blocks := range zt.inroot { trackRfiles[root] = rt.files
if root != t.Root() { for zoid := range rt.Zinblk {
t.Errorf(".trackSetZBlk: zblk %s points to unexpected blktab %s", zblki.Name, t.Root()) zblki := commit.ZBlkTab[zoid]
continue inroot, ok := trackZinroot[zblki.Name]
if !ok {
inroot = setOid{}
trackZinroot[zblki.Name] = inroot
} }
inroot.Add(root)
}
}
inblk, ok := trackZinblk[zblki.Name] Zinroot := map[string]setOid{}
if !ok { for zblk := range Zinblk {
inblk = setI64{} inroot := setOid{}; inroot.Add(t.Root())
trackZinblk[zblki.Name] = inblk Zinroot[zblk] = inroot
}
if !reflect.DeepEqual(trackZinroot, Zinroot) {
t.Errorf("Zinroot:\n~have: %v\n want: %v", trackZinroot, Zinroot)
}
filesOK := setOid{}
if !delfile {
filesOK.Add(foid)
}
RfilesOK := map[zodb.Oid]setOid{
t.Root(): filesOK,
}
if !reflect.DeepEqual(trackRfiles, RfilesOK) {
t.Errorf("Rfiles:\n~have: %v\n want: %v", trackRfiles, RfilesOK)
}
// verify Zinblk
trackZinblk := map[string]setI64{}
switch {
case len(δFtail.byRoot) == 0:
// ok
case len(δFtail.byRoot) == 1:
rt, ok := δFtail.byRoot[t.Root()]
if !ok {
t.Errorf(".byRoot points to unexpected blktab")
} else {
for zoid, inblk := range rt.Zinblk {
zblki := commit.ZBlkTab[zoid]
trackZinblk[zblki.Name] = inblk.Clone() // XXX clone needed?
} }
inblk.Update(blocks)
} }
default:
t.Errorf("len(.byRoot) != (0,1) ; byRoot: %v", δFtail.byRoot)
} }
if !reflect.DeepEqual(trackZinblk, Zinblk) { if !reflect.DeepEqual(trackZinblk, Zinblk) {
t.Errorf(".trackSetZBlk:\n~have: %v\n want: %v", trackZinblk, Zinblk) t.Errorf("Zinblk:\n~have: %v\n want: %v", trackZinblk, Zinblk)
} }
// ForgetPast configured threshold // ForgetPast configured threshold
...@@ -485,16 +523,6 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) { ...@@ -485,16 +523,6 @@ func testΔFtail(t_ *testing.T, testq chan ΔFTestEntry) {
vδE = vδE[icut:] vδE = vδE[icut:]
} }
// verify δFtail.filesByRoot
filesByRootOK := map[zodb.Oid]setOid{}
if !delfile {
__ := setOid{}; __.Add(foid)
filesByRootOK[t.Root()] = __
}
if !reflect.DeepEqual(δFtail.filesByRoot, filesByRootOK) {
t.Errorf("filesByRoot:\nhave: %v\nwant: %v", δFtail.filesByRoot, filesByRootOK)
}
// verify δftail.root // verify δftail.root
δftail := δFtail.byFile[foid] δftail := δFtail.byFile[foid]
rootOK := t.Root() rootOK := t.Root()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment