forked from cerc-io/plugeth
swarm/network/stream: use swarm/mock/mem as mock global store (#18157)
This commit is contained in:
parent
4c181e4fb9
commit
070caec4bd
@ -38,7 +38,6 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/swarm/pot"
|
"github.com/ethereum/go-ethereum/swarm/pot"
|
||||||
"github.com/ethereum/go-ethereum/swarm/state"
|
"github.com/ethereum/go-ethereum/swarm/state"
|
||||||
"github.com/ethereum/go-ethereum/swarm/storage"
|
"github.com/ethereum/go-ethereum/swarm/storage"
|
||||||
mockdb "github.com/ethereum/go-ethereum/swarm/storage/mock/db"
|
|
||||||
"github.com/ethereum/go-ethereum/swarm/testutil"
|
"github.com/ethereum/go-ethereum/swarm/testutil"
|
||||||
colorable "github.com/mattn/go-colorable"
|
colorable "github.com/mattn/go-colorable"
|
||||||
)
|
)
|
||||||
@ -69,21 +68,6 @@ func init() {
|
|||||||
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
|
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true))))
|
||||||
}
|
}
|
||||||
|
|
||||||
func createGlobalStore() (string, *mockdb.GlobalStore, error) {
|
|
||||||
var globalStore *mockdb.GlobalStore
|
|
||||||
globalStoreDir, err := ioutil.TempDir("", "global.store")
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Error initiating global store temp directory!", "err", err)
|
|
||||||
return "", nil, err
|
|
||||||
}
|
|
||||||
globalStore, err = mockdb.NewGlobalStore(globalStoreDir)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Error initiating global store!", "err", err)
|
|
||||||
return "", nil, err
|
|
||||||
}
|
|
||||||
return globalStoreDir, globalStore, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) {
|
func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) {
|
||||||
// setup
|
// setup
|
||||||
addr := network.RandomAddr() // tested peers peer address
|
addr := network.RandomAddr() // tested peers peer address
|
||||||
|
@ -35,7 +35,8 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/swarm/pot"
|
"github.com/ethereum/go-ethereum/swarm/pot"
|
||||||
"github.com/ethereum/go-ethereum/swarm/state"
|
"github.com/ethereum/go-ethereum/swarm/state"
|
||||||
"github.com/ethereum/go-ethereum/swarm/storage"
|
"github.com/ethereum/go-ethereum/swarm/storage"
|
||||||
mockdb "github.com/ethereum/go-ethereum/swarm/storage/mock/db"
|
"github.com/ethereum/go-ethereum/swarm/storage/mock"
|
||||||
|
mockmem "github.com/ethereum/go-ethereum/swarm/storage/mock/mem"
|
||||||
"github.com/ethereum/go-ethereum/swarm/testutil"
|
"github.com/ethereum/go-ethereum/swarm/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -268,20 +269,9 @@ func runSim(conf *synctestConfig, ctx context.Context, sim *simulation.Simulatio
|
|||||||
|
|
||||||
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
||||||
// or until the timeout is reached.
|
// or until the timeout is reached.
|
||||||
var gDir string
|
var globalStore mock.GlobalStorer
|
||||||
var globalStore *mockdb.GlobalStore
|
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
globalStore = mockmem.NewGlobalStore()
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
os.RemoveAll(gDir)
|
|
||||||
err := globalStore.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Error closing global store! %v", "err", err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
REPEAT:
|
REPEAT:
|
||||||
for {
|
for {
|
||||||
@ -476,14 +466,9 @@ func testSyncingViaDirectSubscribe(t *testing.T, chunkCount int, nodeCount int)
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var gDir string
|
var globalStore mock.GlobalStorer
|
||||||
var globalStore *mockdb.GlobalStore
|
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
globalStore = mockmem.NewGlobalStore()
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(gDir)
|
|
||||||
}
|
}
|
||||||
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
// File retrieval check is repeated until all uploaded files are retrieved from all nodes
|
||||||
// or until the timeout is reached.
|
// or until the timeout is reached.
|
||||||
|
@ -35,7 +35,8 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/swarm/network/simulation"
|
"github.com/ethereum/go-ethereum/swarm/network/simulation"
|
||||||
"github.com/ethereum/go-ethereum/swarm/state"
|
"github.com/ethereum/go-ethereum/swarm/state"
|
||||||
"github.com/ethereum/go-ethereum/swarm/storage"
|
"github.com/ethereum/go-ethereum/swarm/storage"
|
||||||
mockdb "github.com/ethereum/go-ethereum/swarm/storage/mock/db"
|
"github.com/ethereum/go-ethereum/swarm/storage/mock"
|
||||||
|
mockmem "github.com/ethereum/go-ethereum/swarm/storage/mock/mem"
|
||||||
"github.com/ethereum/go-ethereum/swarm/testutil"
|
"github.com/ethereum/go-ethereum/swarm/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ func TestSyncerSimulation(t *testing.T) {
|
|||||||
testSyncBetweenNodes(t, 16, 1, dataChunkCount, true, 1)
|
testSyncBetweenNodes(t, 16, 1, dataChunkCount, true, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func createMockStore(globalStore *mockdb.GlobalStore, id enode.ID, addr *network.BzzAddr) (lstore storage.ChunkStore, datadir string, err error) {
|
func createMockStore(globalStore mock.GlobalStorer, id enode.ID, addr *network.BzzAddr) (lstore storage.ChunkStore, datadir string, err error) {
|
||||||
address := common.BytesToAddress(id.Bytes())
|
address := common.BytesToAddress(id.Bytes())
|
||||||
mockStore := globalStore.NewNodeStore(address)
|
mockStore := globalStore.NewNodeStore(address)
|
||||||
params := storage.NewDefaultLocalStoreParams()
|
params := storage.NewDefaultLocalStoreParams()
|
||||||
@ -70,8 +71,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
|||||||
sim := simulation.New(map[string]simulation.ServiceFunc{
|
sim := simulation.New(map[string]simulation.ServiceFunc{
|
||||||
"streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) {
|
"streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) {
|
||||||
var store storage.ChunkStore
|
var store storage.ChunkStore
|
||||||
var globalStore *mockdb.GlobalStore
|
var datadir string
|
||||||
var gDir, datadir string
|
|
||||||
|
|
||||||
node := ctx.Config.Node()
|
node := ctx.Config.Node()
|
||||||
addr := network.NewAddr(node)
|
addr := network.NewAddr(node)
|
||||||
@ -79,11 +79,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
|||||||
addr.OAddr[0] = byte(0)
|
addr.OAddr[0] = byte(0)
|
||||||
|
|
||||||
if *useMockStore {
|
if *useMockStore {
|
||||||
gDir, globalStore, err = createGlobalStore()
|
store, datadir, err = createMockStore(mockmem.NewGlobalStore(), node.ID(), addr)
|
||||||
if err != nil {
|
|
||||||
return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil")
|
|
||||||
}
|
|
||||||
store, datadir, err = createMockStore(globalStore, node.ID(), addr)
|
|
||||||
} else {
|
} else {
|
||||||
store, datadir, err = createTestLocalStorageForID(node.ID(), addr)
|
store, datadir, err = createTestLocalStorageForID(node.ID(), addr)
|
||||||
}
|
}
|
||||||
@ -94,13 +90,6 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck
|
|||||||
cleanup = func() {
|
cleanup = func() {
|
||||||
store.Close()
|
store.Close()
|
||||||
os.RemoveAll(datadir)
|
os.RemoveAll(datadir)
|
||||||
if *useMockStore {
|
|
||||||
err := globalStore.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Error closing global store! %v", "err", err)
|
|
||||||
}
|
|
||||||
os.RemoveAll(gDir)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
localStore := store.(*storage.LocalStore)
|
localStore := store.(*storage.LocalStore)
|
||||||
netStore, err := storage.NewNetStore(localStore, nil)
|
netStore, err := storage.NewNetStore(localStore, nil)
|
||||||
|
Loading…
Reference in New Issue
Block a user