diff --git a/swarm/network/stream/common_test.go b/swarm/network/stream/common_test.go index c5f1fa176a..a40ef0ccdf 100644 --- a/swarm/network/stream/common_test.go +++ b/swarm/network/stream/common_test.go @@ -69,19 +69,13 @@ func init() { 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) +func createGlobalStore() (*mockdb.GlobalStore, error) { + globalStore, err := mockdb.NewGlobalStore() if err != nil { log.Error("Error initiating global store!", "err", err) - return "", nil, err + return nil, err } - return globalStoreDir, globalStore, nil + return 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 6b92c32ae9..66647c02f3 100644 --- a/swarm/network/stream/snapshot_sync_test.go +++ b/swarm/network/stream/snapshot_sync_test.go @@ -268,15 +268,13 @@ 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 { - gDir, globalStore, err = createGlobalStore() + 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) @@ -476,14 +474,12 @@ func testSyncingViaDirectSubscribe(t *testing.T, chunkCount int, nodeCount int) return err } - var gDir string var globalStore *mockdb.GlobalStore if *useMockStore { - gDir, globalStore, err = createGlobalStore() + 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 fe20bab266..334499298d 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 gDir, datadir string + var 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 { - gDir, globalStore, err = createGlobalStore() + globalStore, err = createGlobalStore() if err != nil { return nil, nil, fmt.Errorf("Something went wrong; using mockStore enabled but globalStore is nil") } @@ -99,7 +99,6 @@ 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/state/dbstore.go b/swarm/state/dbstore.go index b0aa92e272..486935857d 100644 --- a/swarm/state/dbstore.go +++ b/swarm/state/dbstore.go @@ -22,6 +22,7 @@ import ( "errors" "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/opt" ) // ErrNotFound is returned when no results are returned from the database @@ -35,9 +36,11 @@ type DBStore struct { db *leveldb.DB } +const openFileLimit = 32 + // NewDBStore creates a new instance of DBStore. func NewDBStore(path string) (s *DBStore, err error) { - db, err := leveldb.OpenFile(path, nil) + db, err := leveldb.OpenFile(path, &opt.Options{OpenFilesCacheCapacity: openFileLimit}) if err != nil { return nil, err } diff --git a/swarm/storage/mock/db/db.go b/swarm/storage/mock/db/db.go index 43bfa24f05..1f85d6fa26 100644 --- a/swarm/storage/mock/db/db.go +++ b/swarm/storage/mock/db/db.go @@ -25,6 +25,7 @@ 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" @@ -40,8 +41,8 @@ type GlobalStore struct { } // NewGlobalStore creates a new instance of GlobalStore. -func NewGlobalStore(path string) (s *GlobalStore, err error) { - db, err := leveldb.OpenFile(path, nil) +func NewGlobalStore() (s *GlobalStore, err error) { + db, err := leveldb.Open(storage.NewMemStorage(), 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 782faaf35c..1643d9dacc 100644 --- a/swarm/storage/mock/db/db_test.go +++ b/swarm/storage/mock/db/db_test.go @@ -19,8 +19,6 @@ package db import ( - "io/ioutil" - "os" "testing" "github.com/ethereum/go-ethereum/swarm/storage/mock/test" @@ -29,13 +27,7 @@ import ( // TestDBStore is running a test.MockStore tests // using test.MockStore function. func TestDBStore(t *testing.T) { - dir, err := ioutil.TempDir("", "mock_"+t.Name()) - if err != nil { - panic(err) - } - defer os.RemoveAll(dir) - - store, err := NewGlobalStore(dir) + store, err := NewGlobalStore() if err != nil { t.Fatal(err) } @@ -47,25 +39,13 @@ func TestDBStore(t *testing.T) { // TestImportExport is running a test.ImportExport tests // using test.MockStore function. func TestImportExport(t *testing.T) { - dir1, err := ioutil.TempDir("", "mock_"+t.Name()+"_exporter") - if err != nil { - panic(err) - } - defer os.RemoveAll(dir1) - - store1, err := NewGlobalStore(dir1) + store1, err := NewGlobalStore() if err != nil { t.Fatal(err) } defer store1.Close() - dir2, err := ioutil.TempDir("", "mock_"+t.Name()+"_importer") - if err != nil { - panic(err) - } - defer os.RemoveAll(dir2) - - store2, err := NewGlobalStore(dir2) + store2, err := NewGlobalStore() if err != nil { t.Fatal(err) }