diff --git a/swarm/storage/mock/rpc/rpc.go b/swarm/storage/mock/rpc/rpc.go index 584ce075a0..8150ccff13 100644 --- a/swarm/storage/mock/rpc/rpc.go +++ b/swarm/storage/mock/rpc/rpc.go @@ -89,21 +89,25 @@ func (s *GlobalStore) HasKey(addr common.Address, key []byte) bool { return has } +// Keys returns a paginated list of keys on all nodes. func (s *GlobalStore) Keys(startKey []byte, limit int) (keys mock.Keys, err error) { err = s.client.Call(&keys, "mockStore_keys", startKey, limit) return keys, err } +// Nodes returns a paginated list of all known nodes. func (s *GlobalStore) Nodes(startAddr *common.Address, limit int) (nodes mock.Nodes, err error) { err = s.client.Call(&nodes, "mockStore_nodes", startAddr, limit) return nodes, err } +// NodeKeys returns a paginated list of keys on a node with provided address. func (s *GlobalStore) NodeKeys(addr common.Address, startKey []byte, limit int) (keys mock.Keys, err error) { err = s.client.Call(&keys, "mockStore_nodeKeys", addr, startKey, limit) return keys, err } +// KeyNodes returns a paginated list of nodes that contain a particular key. func (s *GlobalStore) KeyNodes(key []byte, startAddr *common.Address, limit int) (nodes mock.Nodes, err error) { err = s.client.Call(&nodes, "mockStore_keyNodes", key, startAddr, limit) return nodes, err diff --git a/swarm/storage/mock/rpc/rpc_test.go b/swarm/storage/mock/rpc/rpc_test.go index 5eb045ac3c..6c46523558 100644 --- a/swarm/storage/mock/rpc/rpc_test.go +++ b/swarm/storage/mock/rpc/rpc_test.go @@ -27,20 +27,27 @@ import ( // TestDBStore is running test for a GlobalStore // using test.MockStore function. func TestRPCStore(t *testing.T) { - serverStore := mem.NewGlobalStore() - - server := rpc.NewServer() - if err := server.RegisterName("mockStore", serverStore); err != nil { - t.Fatal(err) - } - - store := NewGlobalStore(rpc.DialInProc(server)) - defer store.Close() + store, cleanup := newTestStore(t) + defer cleanup() test.MockStore(t, store, 30) } -func TestGlobalStoreListings(t *testing.T) { +// TestRPCStoreListings is running test for a GlobalStore +// using test.MockStoreListings function. +func TestRPCStoreListings(t *testing.T) { + store, cleanup := newTestStore(t) + defer cleanup() + + test.MockStoreListings(t, store, 1000) +} + +// newTestStore creates a temporary GlobalStore +// that will be closed when returned cleanup function +// is called. +func newTestStore(t *testing.T) (s *GlobalStore, cleanup func()) { + t.Helper() + serverStore := mem.NewGlobalStore() server := rpc.NewServer() @@ -49,7 +56,9 @@ func TestGlobalStoreListings(t *testing.T) { } store := NewGlobalStore(rpc.DialInProc(server)) - defer store.Close() - - test.MockStoreListings(t, store, 1000) + return store, func() { + if err := store.Close(); err != nil { + t.Error(err) + } + } }