From dda8255bbd37123a2c3c0f2afe7eb380e22812bb Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Tue, 20 Nov 2018 13:50:07 +0100 Subject: [PATCH] swarm: revert changes to mock/db --- swarm/network/stream/common_test.go | 14 ++++++++---- swarm/network/stream/snapshot_sync_test.go | 8 +++++-- swarm/network/stream/syncer_test.go | 5 +++-- swarm/storage/mock/db/db.go | 5 ++--- swarm/storage/mock/db/db_test.go | 26 +++++++++++++++++++--- 5 files changed, 44 insertions(+), 14 deletions(-) diff --git a/swarm/network/stream/common_test.go b/swarm/network/stream/common_test.go index a40ef0ccdf..c5f1fa176a 100644 --- a/swarm/network/stream/common_test.go +++ b/swarm/network/stream/common_test.go @@ -69,13 +69,19 @@ func init() { log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(*loglevel), log.StreamHandler(colorable.NewColorableStderr(), log.TerminalFormat(true)))) } -func createGlobalStore() (*mockdb.GlobalStore, error) { - globalStore, err := mockdb.NewGlobalStore() +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 "", nil, err } - return globalStore, nil + return globalStoreDir, globalStore, nil } func newStreamerTester(t *testing.T, registryOptions *RegistryOptions) (*p2ptest.ProtocolTester, *Registry, *storage.LocalStore, func(), error) { diff --git a/swarm/network/stream/snapshot_sync_test.go b/swarm/network/stream/snapshot_sync_test.go index 66647c02f3..6b92c32ae9 100644 --- a/swarm/network/stream/snapshot_sync_test.go +++ b/swarm/network/stream/snapshot_sync_test.go @@ -268,13 +268,15 @@ func runSim(conf *synctestConfig, ctx context.Context, sim *simulation.Simulatio // File retrieval check is repeated until all uploaded files are retrieved from all nodes // or until the timeout is reached. + var gDir string var globalStore *mockdb.GlobalStore if *useMockStore { - globalStore, err = createGlobalStore() + gDir, globalStore, err = createGlobalStore() 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) @@ -474,12 +476,14 @@ func testSyncingViaDirectSubscribe(t *testing.T, chunkCount int, nodeCount int) return err } + var gDir string var globalStore *mockdb.GlobalStore if *useMockStore { - globalStore, err = createGlobalStore() + gDir, globalStore, err = createGlobalStore() 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 // or until the timeout is reached. diff --git a/swarm/network/stream/syncer_test.go b/swarm/network/stream/syncer_test.go index 334499298d..fe20bab266 100644 --- a/swarm/network/stream/syncer_test.go +++ b/swarm/network/stream/syncer_test.go @@ -71,7 +71,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck "streamer": func(ctx *adapters.ServiceContext, bucket *sync.Map) (s node.Service, cleanup func(), err error) { var store storage.ChunkStore var globalStore *mockdb.GlobalStore - var datadir string + var gDir, datadir string node := ctx.Config.Node() addr := network.NewAddr(node) @@ -79,7 +79,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck addr.OAddr[0] = byte(0) if *useMockStore { - globalStore, err = createGlobalStore() + gDir, globalStore, err = createGlobalStore() if err != nil { return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil") } @@ -99,6 +99,7 @@ func testSyncBetweenNodes(t *testing.T, nodes, conns, chunkCount int, skipCheck if err != nil { log.Error("Error closing global store! %v", "err", err) } + os.RemoveAll(gDir) } } localStore := store.(*storage.LocalStore) diff --git a/swarm/storage/mock/db/db.go b/swarm/storage/mock/db/db.go index 1f85d6fa26..43bfa24f05 100644 --- a/swarm/storage/mock/db/db.go +++ b/swarm/storage/mock/db/db.go @@ -25,7 +25,6 @@ import ( "io/ioutil" "github.com/syndtr/goleveldb/leveldb" - "github.com/syndtr/goleveldb/leveldb/storage" "github.com/syndtr/goleveldb/leveldb/util" "github.com/ethereum/go-ethereum/common" @@ -41,8 +40,8 @@ type GlobalStore struct { } // NewGlobalStore creates a new instance of GlobalStore. -func NewGlobalStore() (s *GlobalStore, err error) { - db, err := leveldb.Open(storage.NewMemStorage(), nil) +func NewGlobalStore(path string) (s *GlobalStore, err error) { + db, err := leveldb.OpenFile(path, nil) if err != nil { return nil, err } diff --git a/swarm/storage/mock/db/db_test.go b/swarm/storage/mock/db/db_test.go index 1643d9dacc..782faaf35c 100644 --- a/swarm/storage/mock/db/db_test.go +++ b/swarm/storage/mock/db/db_test.go @@ -19,6 +19,8 @@ package db import ( + "io/ioutil" + "os" "testing" "github.com/ethereum/go-ethereum/swarm/storage/mock/test" @@ -27,7 +29,13 @@ import ( // TestDBStore is running a test.MockStore tests // using test.MockStore function. func TestDBStore(t *testing.T) { - store, err := NewGlobalStore() + dir, err := ioutil.TempDir("", "mock_"+t.Name()) + if err != nil { + panic(err) + } + defer os.RemoveAll(dir) + + store, err := NewGlobalStore(dir) if err != nil { t.Fatal(err) } @@ -39,13 +47,25 @@ func TestDBStore(t *testing.T) { // TestImportExport is running a test.ImportExport tests // using test.MockStore function. func TestImportExport(t *testing.T) { - store1, err := NewGlobalStore() + dir1, err := ioutil.TempDir("", "mock_"+t.Name()+"_exporter") + if err != nil { + panic(err) + } + defer os.RemoveAll(dir1) + + store1, err := NewGlobalStore(dir1) if err != nil { t.Fatal(err) } defer store1.Close() - store2, err := NewGlobalStore() + dir2, err := ioutil.TempDir("", "mock_"+t.Name()+"_importer") + if err != nil { + panic(err) + } + defer os.RemoveAll(dir2) + + store2, err := NewGlobalStore(dir2) if err != nil { t.Fatal(err) }