cosmos-sdk/orm/internal/testkv/compare.go

39 lines
897 B
Go

package testkv
import (
"bytes"
"gotest.tools/v3/assert"
"github.com/cosmos/cosmos-sdk/orm/model/ormtable"
"github.com/cosmos/cosmos-sdk/orm/types/kv"
)
func AssertBackendsEqual(t assert.TestingT, b1, b2 ormtable.Backend) {
it1, err := b1.CommitmentStoreReader().Iterator(nil, nil)
assert.NilError(t, err)
it2, err := b2.CommitmentStoreReader().Iterator(nil, nil)
assert.NilError(t, err)
AssertIteratorsEqual(t, it1, it2)
it1, err = b1.IndexStoreReader().Iterator(nil, nil)
assert.NilError(t, err)
it2, err = b2.IndexStoreReader().Iterator(nil, nil)
assert.NilError(t, err)
AssertIteratorsEqual(t, it1, it2)
}
func AssertIteratorsEqual(t assert.TestingT, it1, it2 kv.Iterator) {
for it1.Valid() {
assert.Assert(t, it2.Valid())
assert.Assert(t, bytes.Equal(it1.Key(), it2.Key()))
assert.Assert(t, bytes.Equal(it1.Value(), it2.Value()))
it1.Next()
it2.Next()
}
}