]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix transfer tests involving sqlite memory storage
authorMatt Joiner <anacrolix@gmail.com>
Tue, 19 Jan 2021 04:10:33 +0000 (15:10 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 25 Jan 2021 04:54:37 +0000 (15:54 +1100)
storage/sqlite/sqlite-storage.go
test/transfer_test.go

index ca42253661b6eea58f1dce650b8f25f37e8c0174..83be6e8d566bd0bd98cc8942f528d92961f49a0e 100644 (file)
@@ -147,8 +147,8 @@ func initSchema(conn conn, pageSize int, triggers bool) error {
 
 type NewPiecesStorageOpts struct {
        NewPoolOpts
-       ProvOpts func(*ProviderOpts)
-       storage.ResourcePiecesOpts
+       ProvOpts    func(*ProviderOpts)
+       StorageOpts func(*storage.ResourcePiecesOpts)
 }
 
 // A convenience function that creates a connection pool, resource provider, and a pieces storage
@@ -166,7 +166,13 @@ func NewPiecesStorage(opts NewPiecesStorageOpts) (_ storage.ClientImplCloser, er
                conns.Close()
                return
        }
-       store := storage.NewResourcePiecesOpts(prov, opts.ResourcePiecesOpts)
+       storageOpts := storage.ResourcePiecesOpts{
+               NoSizedPuts: provOpts.NoConcurrentBlobReads,
+       }
+       if f := opts.StorageOpts; f != nil {
+               f(&storageOpts)
+       }
+       store := storage.NewResourcePiecesOpts(prov, storageOpts)
        return struct {
                storage.ClientImpl
                io.Closer
index 1ae49e15c63be8e0e2bfb8b520567725e7b3ec12..b212f0ba430f77fbb0f1600552b4181623489305 100644 (file)
@@ -278,11 +278,11 @@ func TestClientTransferSmallCacheDefaultReadahead(t *testing.T) {
        testClientTransferSmallCache(t, false, -1)
 }
 
-func sqliteClientStorageFactory(connOptsMaker func(dataDir string) sqliteStorage.NewPoolOpts) storageFactory {
+func sqliteClientStorageFactory(optsMaker func(dataDir string) sqliteStorage.NewPiecesStorageOpts) storageFactory {
        return func(dataDir string) storage.ClientImplCloser {
-               connOpts := connOptsMaker(dataDir)
-               //log.Printf("opening sqlite db: %#v", connOpts)
-               ret, err := sqliteStorage.NewPiecesStorage(sqliteStorage.NewPiecesStorageOpts{NewPoolOpts: connOpts})
+               opts := optsMaker(dataDir)
+               //log.Printf("opening sqlite db: %#v", opts)
+               ret, err := sqliteStorage.NewPiecesStorage(opts)
                if err != nil {
                        panic(err)
                }
@@ -300,14 +300,18 @@ func TestClientTransferVarious(t *testing.T) {
                        Wrapper: fileCachePieceResourceStorage,
                })},
                {"Boltdb", storage.NewBoltDB},
-               {"SqliteFile", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPoolOpts {
-                       return sqliteStorage.NewPoolOpts{
-                               Path: filepath.Join(dataDir, "sqlite.db"),
+               {"SqliteFile", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPiecesStorageOpts {
+                       return sqliteStorage.NewPiecesStorageOpts{
+                               NewPoolOpts: sqliteStorage.NewPoolOpts{
+                                       Path: filepath.Join(dataDir, "sqlite.db"),
+                               },
                        }
                })},
-               {"SqliteMemory", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPoolOpts {
-                       return sqliteStorage.NewPoolOpts{
-                               Memory: true,
+               {"SqliteMemory", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPiecesStorageOpts {
+                       return sqliteStorage.NewPiecesStorageOpts{
+                               NewPoolOpts: sqliteStorage.NewPoolOpts{
+                                       Memory: true,
+                               },
                        }
                })},
        } {