From: Matt Joiner Date: Tue, 13 Oct 2020 02:34:05 +0000 (+1100) Subject: Test both sqlite file and in-memory leecher storages X-Git-Tag: v1.18.0~6 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=07bc79dbdc039df1bd1ffa7549bb38b484df1728;p=btrtrc.git Test both sqlite file and in-memory leecher storages --- diff --git a/test/transfer_test.go b/test/transfer_test.go index 3cd788c3..7462a547 100644 --- a/test/transfer_test.go +++ b/test/transfer_test.go @@ -271,6 +271,29 @@ func TestClientTransferSmallCacheDefaultReadahead(t *testing.T) { testClientTransferSmallCache(t, false, -1) } +func sqliteClientStorageFactory(connPathMaker func(dataDir string) string) storageFactory { + return func(dataDir string) storage.ClientImplCloser { + path := connPathMaker(dataDir) + log.Printf("opening sqlite db at %q", path) + conn, err := sqlite.OpenConn(path, 0) + if err != nil { + panic(err) + } + prov, err := sqliteStorage.NewProvider(conn) + if err != nil { + panic(err) + } + return struct { + storage.ClientImpl + io.Closer + }{ + storage.NewResourcePieces(prov), + conn, + } + + } +} + func TestClientTransferVarious(t *testing.T) { // Leecher storage for _, ls := range []struct { @@ -281,25 +304,12 @@ func TestClientTransferVarious(t *testing.T) { Wrapper: fileCachePieceResourceStorage, })}, {"Boltdb", storage.NewBoltDB}, - {"Sqlite", func(dataDir string) storage.ClientImplCloser { - path := filepath.Join(dataDir, "sqlite.db") - log.Printf("creating sqlite db at %q", path) - conn, err := sqlite.OpenConn(fmt.Sprintf("file:%s", path), 0) - if err != nil { - panic(err) - } - prov, err := sqliteStorage.NewProvider(conn) - if err != nil { - panic(err) - } - return struct { - storage.ClientImpl - io.Closer - }{ - storage.NewResourcePieces(prov), - conn, - } - }}, + {"SqliteFile", sqliteClientStorageFactory(func(dataDir string) string { + return "file:" + filepath.Join(dataDir, "sqlite.db") + })}, + {"SqliteMemory", sqliteClientStorageFactory(func(dataDir string) string { + return "file:memory:?mode=memory" + })}, } { t.Run(fmt.Sprintf("LeecherStorage=%s", ls.name), func(t *testing.T) { // Seeder storage