Fix statestore.List

This commit is contained in:
Łukasz Magiera 2019-11-05 19:19:57 +01:00
parent bcf9778b18
commit 3020f7a203
2 changed files with 39 additions and 1 deletions

View File

@ -136,7 +136,7 @@ func (st *StateStore) List(out interface{}) error {
return err
}
rout.Set(reflect.Append(rout.Elem(), elem.Elem()))
rout.Elem().Set(reflect.Append(rout.Elem(), elem.Elem()))
}
return nil

View File

@ -0,0 +1,38 @@
package statestore
import (
"testing"
"github.com/ipfs/go-datastore"
"github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/lib/cborrpc"
)
func TestList(t *testing.T) {
ds := datastore.NewMapDatastore()
e, err := cborrpc.Dump(types.NewInt(7))
if err != nil {
t.Fatal(err)
}
if err := ds.Put(datastore.NewKey("/2"), e); err != nil {
t.Fatal(err)
}
st := &StateStore{ds:ds}
var out []types.BigInt
if err := st.List(&out); err != nil {
t.Fatal(err)
}
if len(out) != 1 {
t.Fatal("wrong len")
}
if out[0].Int64() != 7 {
t.Fatal("wrong data")
}
}