subspace query tests, changelog

This commit is contained in:
rigelrozanski 2018-05-08 16:15:35 -04:00
parent d464779d34
commit 1d82cdbbbc
2 changed files with 38 additions and 12 deletions

View File

@ -28,6 +28,8 @@ FEATURES:
* New genesis account keys are automatically added to the client keybase (introduce `--client-home` flag) * New genesis account keys are automatically added to the client keybase (introduce `--client-home` flag)
* Initialize with genesis txs using `--gen-txs` flag * Initialize with genesis txs using `--gen-txs` flag
* Context now has access to the application-configured logger * Context now has access to the application-configured logger
* Add (non-proof) subspace query helper functions
* Add more staking query functions: candidates, delegator-bonds
BUG FIXES BUG FIXES
* Gaia now uses stake, ported from github.com/cosmos/gaia * Gaia now uses stake, ported from github.com/cosmos/gaia

View File

@ -263,43 +263,63 @@ func TestIAVLStoreQuery(t *testing.T) {
tree := iavl.NewVersionedTree(db, cacheSize) tree := iavl.NewVersionedTree(db, cacheSize)
iavlStore := newIAVLStore(tree, numHistory) iavlStore := newIAVLStore(tree, numHistory)
k, v := []byte("wind"), []byte("blows") k1, v1 := []byte("aaa"), []byte("val1")
k2, v2 := []byte("water"), []byte("flows") k2, v2 := []byte("bbb"), []byte("val2")
v3 := []byte("is cold") v3 := []byte("val3")
// k3, v3 := []byte("earth"), []byte("soes")
// k4, v4 := []byte("fire"), []byte("woes") ksub = []byte("w")
KVs1, KVs2 := []KV{v1, v2}, []KV{v3, v2}
valExpSub1 := cdc.MustMarshalBinary(KVs1)
valExpSub2 := cdc.MustMarshalBinary(KVs2)
cid := iavlStore.Commit() cid := iavlStore.Commit()
ver := cid.Version ver := cid.Version
query := abci.RequestQuery{Path: "/key", Data: k, Height: ver} query := abci.RequestQuery{Path: "/key", Data: k1, Height: ver}
querySub := abci.RequestQuery{Path: "/subspace", Data: ksub, Height: ver}
// set data without commit, doesn't show up // set data without commit, doesn't show up
iavlStore.Set(k, v) iavlStore.Set(k1, v1)
qres := iavlStore.Query(query) qres := iavlStore.Query(query)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Nil(t, qres.Value) assert.Nil(t, qres.Value)
qres = iavlStore.Query(querySub)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Nil(t, qres.Value)
// commit it, but still don't see on old version // commit it, but still don't see on old version
cid = iavlStore.Commit() cid = iavlStore.Commit()
qres = iavlStore.Query(query) qres = iavlStore.Query(query)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Nil(t, qres.Value) assert.Nil(t, qres.Value)
qres = iavlStore.Query(querySub)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Nil(t, qres.Value)
// but yes on the new version // but yes on the new version
query.Height = cid.Version query.Height = cid.Version
qres = iavlStore.Query(query) qres = iavlStore.Query(query)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, v, qres.Value) assert.Equal(t, v1, qres.Value)
// and for the subspace
qres = iavlStore.Query(querySub)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, valExpSub1, qres.Value)
// modify // modify
iavlStore.Set(k2, v2) iavlStore.Set(k2, v2)
iavlStore.Set(k, v3) iavlStore.Set(k1, v3)
cid = iavlStore.Commit() cid = iavlStore.Commit()
// query will return old values, as height is fixed // query will return old values, as height is fixed
qres = iavlStore.Query(query) qres = iavlStore.Query(query)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, v, qres.Value) assert.Equal(t, v1, qres.Value)
// and for the subspace
qres = iavlStore.Query(querySub)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, valExpSub1, qres.Value)
// update to latest in the query and we are happy // update to latest in the query and we are happy
query.Height = cid.Version query.Height = cid.Version
@ -310,10 +330,14 @@ func TestIAVLStoreQuery(t *testing.T) {
qres = iavlStore.Query(query2) qres = iavlStore.Query(query2)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, v2, qres.Value) assert.Equal(t, v2, qres.Value)
// and for the subspace
qres = iavlStore.Query(querySub)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, valExpSub2, qres.Value)
// default (height 0) will show latest -1 // default (height 0) will show latest -1
query0 := abci.RequestQuery{Path: "/store", Data: k} query0 := abci.RequestQuery{Path: "/store", Data: k1}
qres = iavlStore.Query(query0) qres = iavlStore.Query(query0)
assert.Equal(t, uint32(sdk.CodeOK), qres.Code) assert.Equal(t, uint32(sdk.CodeOK), qres.Code)
assert.Equal(t, v, qres.Value) assert.Equal(t, v1, qres.Value)
} }