Commit a87cc6de authored by Kirill Smelkov's avatar Kirill Smelkov

X rebuild: tests: Don't recompute trackSet(keys1R2) several times

68s -> 63s
parent 271d953d
...@@ -363,12 +363,12 @@ func (S PPTreeSubSet) verify() { ...@@ -363,12 +363,12 @@ func (S PPTreeSubSet) verify() {
}() }()
// recompute {} oid -> children and verify .nchild against it // recompute {} oid -> children and verify .nchild against it
children := map[zodb.Oid]SetOid{} children := make(map[zodb.Oid]SetOid, len(S))
for oid, t := range S { for oid, t := range S {
if t.parent != zodb.InvalidOid { if t.parent != zodb.InvalidOid {
cc, ok := children[t.parent] cc, ok := children[t.parent]
if !ok { if !ok {
cc = SetOid{} cc = make(SetOid, 1)
children[t.parent] = cc children[t.parent] = cc
} }
cc.Add(oid) cc.Add(oid)
......
...@@ -1001,6 +1001,9 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1001,6 +1001,9 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
} }
} }
Tkeys1 := t1.xkv.trackSet(keys1)
Tkeys1_0 := t1.xkv.trackSet(keys1_0)
t.Run(fmt.Sprintf(" T%s;R", keys1), func(t *testing.T) { t.Run(fmt.Sprintf(" T%s;R", keys1), func(t *testing.T) {
δbtail := NewΔBtail(t0.at, db) δbtail := NewΔBtail(t0.at, db)
...@@ -1016,10 +1019,10 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1016,10 +1019,10 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
// after Track(keys1) // after Track(keys1)
keys1, keys1,
/*trackSet=*/ ø, /*trackSet=*/ ø,
/*trackNew=*/ t1.xkv.trackSet(keys1), /*trackNew=*/ Tkeys1,
// after rebuild // after rebuild
/*trackSet=*/ t1.xkv.trackSet(keys1_0), /*trackSet=*/ Tkeys1_0,
/*vδT=*/ δkv1_1) /*vδT=*/ δkv1_1)
t.Run((" →" + t2.tree), func(t *testing.T) { t.Run((" →" + t2.tree), func(t *testing.T) {
...@@ -1048,8 +1051,10 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1048,8 +1051,10 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
} }
} }
Tkeys1R2 := t2.xkv.trackSet(keys1R2)
xverifyΔBTail_rebuild_U(t, δbtail, treeRoot, t1, t2, xat, xverifyΔBTail_rebuild_U(t, δbtail, treeRoot, t1, t2, xat,
/*trackSet=*/t2.xkv.trackSet(keys1R2), /*trackSet=*/ Tkeys1R2,
/*vδT=*/ δkv1_k1R2, δkv2_k1R2) /*vδT=*/ δkv1_k1R2, δkv2_k1R2)
// tRestKeys2 = tAllKeys - keys1 // tRestKeys2 = tAllKeys - keys1
...@@ -1072,6 +1077,8 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1072,6 +1077,8 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
keys12R2 = keys12R2_ keys12R2 = keys12R2_
} }
Tkeys2 := t2.xkv.trackSet(keys2)
Tkeys12R2 := t2.xkv.trackSet(keys12R2)
/* /*
fmt.Printf("\n\n\nKKK\nkeys1=%s keys2=%s\n", keys1, keys2) fmt.Printf("\n\n\nKKK\nkeys1=%s keys2=%s\n", keys1, keys2)
fmt.Printf("keys1R2: %s\n", keys1R2) fmt.Printf("keys1R2: %s\n", keys1R2)
...@@ -1082,10 +1089,9 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1082,10 +1089,9 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
fmt.Printf("t2.xkv: %v\n", t2.xkv) fmt.Printf("t2.xkv: %v\n", t2.xkv)
fmt.Printf("kadj21: %v\n", kadj21) fmt.Printf("kadj21: %v\n", kadj21)
fmt.Printf("kadj12: %v\n", kadj12) fmt.Printf("kadj12: %v\n", kadj12)
fmt.Printf("t2.xkv.trackSet(keys2) -> %s\n", t2.xkv.trackSet(keys2)) fmt.Printf("Tkeys2 -> %s\n", Tkeys2)
fmt.Printf("t2.xkv.trackSet(keys1R2) -> %s\n", t2.xkv.trackSet(keys1R2)) fmt.Printf("Tkeys1R2 -> %s\n", Tkeys1R2)
fmt.Printf("t2.xkv.trackSet(keys2) \\ t2.xkv.trackSet(keys1R2) -> %s\n", fmt.Printf("Tkeys2 \\ Tkeys1R2 -> %s\n", Tkeys2.Difference(Tkeys1R2))
t2.xkv.trackSet(keys2).Difference(t2.xkv.trackSet(keys1R2)))
fmt.Printf("\n\n\n") fmt.Printf("\n\n\n")
*/ */
...@@ -1110,14 +1116,14 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1 ...@@ -1110,14 +1116,14 @@ func xverifyΔBTail_rebuild(t *testing.T, db *zodb.DB, treeRoot zodb.Oid, t0, t1
xverifyΔBTail_rebuild_TR(t, δbtail_, t2, treeRoot, xat, xverifyΔBTail_rebuild_TR(t, δbtail_, t2, treeRoot, xat,
// after Track(keys2) // after Track(keys2)
keys2, keys2,
/*trackSet*/ t2.xkv.trackSet(keys1R2), /*trackSet*/ Tkeys1R2,
/*trackNew*/ t2.xkv.trackSet(keys2).Difference( /*trackNew*/ Tkeys2.Difference(
// trackNew should not cover ranges that are // trackNew should not cover ranges that are
// already in trackSet // already in trackSet
t2.xkv.trackSet(keys1R2)), Tkeys1R2),
// after rebuild // after rebuild
/* trackSet=*/ t2.xkv.trackSet(keys12R2), /* trackSet=*/ Tkeys12R2,
/*vδT=*/ δkv1_k12R2, δkv2_k12R2) /*vδT=*/ δkv1_k12R2, δkv2_k12R2)
//}) //})
} }
......
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