Adds more sequence to verify data from hash.
@@ -739,6 +739,39 @@ func Test_Snapshot(t *testing.T) {
}
}
}
+
+ if sidx < len(tt.snapshots)-1 {
+ sidx := sidx + 1
+ h := ss[sidx-1][midx].RootHash()
+ s := tt.snapshots[sidx]
+ log.Printf("Manager(%d) Snapshot(%d) Verify from Snapshot(%x)", midx, sidx, h)
+ mutable := m.NewMutable(h)
+ for _, tx := range s.tx {
+ var err error
+ if tx.v != nil {
+ err = mutable.Set(tx.k, tx.v)
+ } else {
+ err = mutable.Delete(tx.k)
+ }
+ if err != nil {
+ t.Errorf("Manager(%d).Snapshot(%d,%x).Set(%x,%x) error %v", midx, sidx, h, tx.k, tx.v, err)
+ log.Printf("Manager(%d).Snapshot(%d,%x).Set(%x,%x) error %v", midx, sidx, h, tx.k, tx.v, err)
+ }
+ }
+ sx := mutable.GetSnapshot()
+ for _, r := range s.r {
+ v, err := sx.Get(r.k)
+ if err != nil {
+ t.Errorf("Manager(%d).Snapshot(%d,%x) Key=%x Expected=%x makes error %v", midx, sidx, h, r.k, r.v, err)
+ log.Printf("Manager(%d).Snapshot(%d,%x) Key=%x Expected=%x makes error %v", midx, sidx, h, r.k, r.v, err)
+ } else {
+ if !bytes.Equal(v, r.v) {
+ t.Errorf("Manager(%d).Snapshot(%d,%x) Key=%x Expected=%x Returned=%x", midx, sidx, h, r.k, r.v, v)
+ log.Printf("Manager(%d).Snapshot(%d,%x) Key=%x Expected=%x Returned=%x", midx, sidx, h, r.k, r.v, v)
+ }
+ }
+ }
+ }
}
}
})
