mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-13 00:58:32 +00:00
Fix benchmarks, cleanup tests
This commit is contained in:
parent
9d1e2d9f46
commit
fb649e9525
@ -19,9 +19,11 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -32,10 +34,31 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var device1, device2 protocol.DeviceID
|
var device1, device2 protocol.DeviceID
|
||||||
|
var defaultConfig *config.Wrapper
|
||||||
|
var defaultFolderConfig config.FolderConfiguration
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
device1, _ = protocol.DeviceIDFromString("AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR")
|
device1, _ = protocol.DeviceIDFromString("AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR")
|
||||||
device2, _ = protocol.DeviceIDFromString("GYRZZQB-IRNPV4Z-T7TC52W-EQYJ3TT-FDQW6MW-DFLMU42-SSSU6EM-FBK2VAY")
|
device2, _ = protocol.DeviceIDFromString("GYRZZQB-IRNPV4Z-T7TC52W-EQYJ3TT-FDQW6MW-DFLMU42-SSSU6EM-FBK2VAY")
|
||||||
|
|
||||||
|
defaultFolderConfig = config.FolderConfiguration{
|
||||||
|
ID: "default",
|
||||||
|
Path: "testdata",
|
||||||
|
Devices: []config.FolderDeviceConfiguration{
|
||||||
|
{
|
||||||
|
DeviceID: device1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_defaultConfig := config.Configuration{
|
||||||
|
Folders: []config.FolderConfiguration{defaultFolderConfig},
|
||||||
|
Devices: []config.DeviceConfiguration{
|
||||||
|
{
|
||||||
|
DeviceID: device1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defaultConfig = config.Wrap("/tmp/test", _defaultConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
var testDataExpected = map[string]protocol.FileInfo{
|
var testDataExpected = map[string]protocol.FileInfo{
|
||||||
@ -72,10 +95,10 @@ func init() {
|
|||||||
func TestRequest(t *testing.T) {
|
func TestRequest(t *testing.T) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
|
|
||||||
m := NewModel(config.Wrap("/tmp/test", config.Configuration{}), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
|
|
||||||
// device1 shares default, but device2 doesn't
|
// device1 shares default, but device2 doesn't
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata", Devices: []config.FolderDeviceConfiguration{{DeviceID: device1}}})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
|
|
||||||
// Existing, shared file
|
// Existing, shared file
|
||||||
@ -158,8 +181,8 @@ func genFiles(n int) []protocol.FileInfo {
|
|||||||
|
|
||||||
func BenchmarkIndex10000(b *testing.B) {
|
func BenchmarkIndex10000(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
files := genFiles(10000)
|
files := genFiles(10000)
|
||||||
|
|
||||||
@ -171,8 +194,8 @@ func BenchmarkIndex10000(b *testing.B) {
|
|||||||
|
|
||||||
func BenchmarkIndex00100(b *testing.B) {
|
func BenchmarkIndex00100(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
files := genFiles(100)
|
files := genFiles(100)
|
||||||
|
|
||||||
@ -184,8 +207,8 @@ func BenchmarkIndex00100(b *testing.B) {
|
|||||||
|
|
||||||
func BenchmarkIndexUpdate10000f10000(b *testing.B) {
|
func BenchmarkIndexUpdate10000f10000(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
files := genFiles(10000)
|
files := genFiles(10000)
|
||||||
m.Index(device1, "default", files)
|
m.Index(device1, "default", files)
|
||||||
@ -198,8 +221,8 @@ func BenchmarkIndexUpdate10000f10000(b *testing.B) {
|
|||||||
|
|
||||||
func BenchmarkIndexUpdate10000f00100(b *testing.B) {
|
func BenchmarkIndexUpdate10000f00100(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
files := genFiles(10000)
|
files := genFiles(10000)
|
||||||
m.Index(device1, "default", files)
|
m.Index(device1, "default", files)
|
||||||
@ -213,8 +236,8 @@ func BenchmarkIndexUpdate10000f00100(b *testing.B) {
|
|||||||
|
|
||||||
func BenchmarkIndexUpdate10000f00001(b *testing.B) {
|
func BenchmarkIndexUpdate10000f00001(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
files := genFiles(10000)
|
files := genFiles(10000)
|
||||||
m.Index(device1, "default", files)
|
m.Index(device1, "default", files)
|
||||||
@ -271,8 +294,8 @@ func (FakeConnection) Statistics() protocol.Statistics {
|
|||||||
|
|
||||||
func BenchmarkRequest(b *testing.B) {
|
func BenchmarkRequest(b *testing.B) {
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(nil, "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
|
|
||||||
const n = 1000
|
const n = 1000
|
||||||
@ -454,12 +477,8 @@ func TestIgnores(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
fcfg := config.FolderConfiguration{ID: "default", Path: "testdata"}
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
cfg := config.Wrap("/tmp", config.Configuration{
|
m.AddFolder(defaultFolderConfig)
|
||||||
Folders: []config.FolderConfiguration{fcfg},
|
|
||||||
})
|
|
||||||
m := NewModel(cfg, "device", "syncthing", "dev", db)
|
|
||||||
m.AddFolder(fcfg)
|
|
||||||
|
|
||||||
expected := []string{
|
expected := []string{
|
||||||
".*",
|
".*",
|
||||||
@ -530,27 +549,9 @@ func TestIgnores(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRefuseUnknownBits(t *testing.T) {
|
func TestRefuseUnknownBits(t *testing.T) {
|
||||||
fcfg := config.FolderConfiguration{
|
|
||||||
ID: "default",
|
|
||||||
Path: "testdata",
|
|
||||||
Devices: []config.FolderDeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
cfg := config.Configuration{
|
|
||||||
Folders: []config.FolderConfiguration{fcfg},
|
|
||||||
Devices: []config.DeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
m.ScanFolder("default")
|
m.ScanFolder("default")
|
||||||
m.Index(device1, "default", []protocol.FileInfo{
|
m.Index(device1, "default", []protocol.FileInfo{
|
||||||
@ -585,27 +586,9 @@ func TestRefuseUnknownBits(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGlobalDirectoryTree(t *testing.T) {
|
func TestGlobalDirectoryTree(t *testing.T) {
|
||||||
fcfg := config.FolderConfiguration{
|
|
||||||
ID: "default",
|
|
||||||
Path: "testdata",
|
|
||||||
Devices: []config.FolderDeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
cfg := config.Configuration{
|
|
||||||
Folders: []config.FolderConfiguration{fcfg},
|
|
||||||
Devices: []config.DeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
b := func(isfile bool, path ...string) protocol.FileInfo {
|
b := func(isfile bool, path ...string) protocol.FileInfo {
|
||||||
var flags uint32 = protocol.FlagDirectory
|
var flags uint32 = protocol.FlagDirectory
|
||||||
@ -852,27 +835,10 @@ func TestGlobalDirectoryTree(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGlobalDirectorySelfFixing(t *testing.T) {
|
func TestGlobalDirectorySelfFixing(t *testing.T) {
|
||||||
fcfg := config.FolderConfiguration{
|
|
||||||
ID: "default",
|
|
||||||
Path: "testdata",
|
|
||||||
Devices: []config.FolderDeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
cfg := config.Configuration{
|
|
||||||
Folders: []config.FolderConfiguration{fcfg},
|
|
||||||
Devices: []config.DeviceConfiguration{
|
|
||||||
{
|
|
||||||
DeviceID: device1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
b := func(isfile bool, path ...string) protocol.FileInfo {
|
b := func(isfile bool, path ...string) protocol.FileInfo {
|
||||||
var flags uint32 = protocol.FlagDirectory
|
var flags uint32 = protocol.FlagDirectory
|
||||||
|
@ -22,7 +22,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/syncthing/protocol"
|
"github.com/syncthing/protocol"
|
||||||
"github.com/syncthing/syncthing/internal/config"
|
|
||||||
"github.com/syncthing/syncthing/internal/scanner"
|
"github.com/syncthing/syncthing/internal/scanner"
|
||||||
|
|
||||||
"github.com/syndtr/goleveldb/leveldb"
|
"github.com/syndtr/goleveldb/leveldb"
|
||||||
@ -77,8 +76,8 @@ func TestHandleFile(t *testing.T) {
|
|||||||
requiredFile.Blocks = blocks[1:]
|
requiredFile.Blocks = blocks[1:]
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", config.Configuration{}), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
// Update index
|
// Update index
|
||||||
m.updateLocal("default", existingFile)
|
m.updateLocal("default", existingFile)
|
||||||
|
|
||||||
@ -131,8 +130,8 @@ func TestHandleFileWithTemp(t *testing.T) {
|
|||||||
requiredFile.Blocks = blocks[1:]
|
requiredFile.Blocks = blocks[1:]
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", config.Configuration{}), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
m.AddFolder(defaultFolderConfig)
|
||||||
// Update index
|
// Update index
|
||||||
m.updateLocal("default", existingFile)
|
m.updateLocal("default", existingFile)
|
||||||
|
|
||||||
@ -190,12 +189,9 @@ func TestCopierFinder(t *testing.T) {
|
|||||||
requiredFile.Blocks = blocks[1:]
|
requiredFile.Blocks = blocks[1:]
|
||||||
requiredFile.Name = "file2"
|
requiredFile.Name = "file2"
|
||||||
|
|
||||||
fcfg := config.FolderConfiguration{ID: "default", Path: "testdata"}
|
|
||||||
cfg := config.Configuration{Folders: []config.FolderConfiguration{fcfg}}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
// Update index
|
// Update index
|
||||||
m.updateLocal("default", existingFile)
|
m.updateLocal("default", existingFile)
|
||||||
|
|
||||||
@ -268,12 +264,9 @@ func TestCopierCleanup(t *testing.T) {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fcfg := config.FolderConfiguration{ID: "default", Path: "testdata"}
|
|
||||||
cfg := config.Configuration{Folders: []config.FolderConfiguration{fcfg}}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
// Create a file
|
// Create a file
|
||||||
file := protocol.FileInfo{
|
file := protocol.FileInfo{
|
||||||
@ -320,12 +313,9 @@ func TestCopierCleanup(t *testing.T) {
|
|||||||
// Make sure that the copier routine hashes the content when asked, and pulls
|
// Make sure that the copier routine hashes the content when asked, and pulls
|
||||||
// if it fails to find the block.
|
// if it fails to find the block.
|
||||||
func TestLastResortPulling(t *testing.T) {
|
func TestLastResortPulling(t *testing.T) {
|
||||||
fcfg := config.FolderConfiguration{ID: "default", Path: "testdata"}
|
|
||||||
cfg := config.Configuration{Folders: []config.FolderConfiguration{fcfg}}
|
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
m := NewModel(config.Wrap("/tmp/test", cfg), "device", "syncthing", "dev", db)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m.AddFolder(fcfg)
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
// Add a file to index (with the incorrect block representation, as content
|
// Add a file to index (with the incorrect block representation, as content
|
||||||
// doesn't actually match the block list)
|
// doesn't actually match the block list)
|
||||||
@ -396,11 +386,11 @@ func TestDeregisterOnFailInCopy(t *testing.T) {
|
|||||||
defer os.Remove("testdata/" + defTempNamer.TempName("filex"))
|
defer os.Remove("testdata/" + defTempNamer.TempName("filex"))
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
cw := config.Wrap("/tmp/test", config.Configuration{})
|
|
||||||
m := NewModel(cw, "device", "syncthing", "dev", db)
|
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
|
||||||
|
|
||||||
emitter := NewProgressEmitter(cw)
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
|
m.AddFolder(defaultFolderConfig)
|
||||||
|
|
||||||
|
emitter := NewProgressEmitter(defaultConfig)
|
||||||
go emitter.Serve()
|
go emitter.Serve()
|
||||||
|
|
||||||
p := Puller{
|
p := Puller{
|
||||||
@ -484,11 +474,10 @@ func TestDeregisterOnFailInPull(t *testing.T) {
|
|||||||
defer os.Remove("testdata/" + defTempNamer.TempName("filex"))
|
defer os.Remove("testdata/" + defTempNamer.TempName("filex"))
|
||||||
|
|
||||||
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
db, _ := leveldb.Open(storage.NewMemStorage(), nil)
|
||||||
cw := config.Wrap("/tmp/test", config.Configuration{})
|
m := NewModel(defaultConfig, "device", "syncthing", "dev", db)
|
||||||
m := NewModel(cw, "device", "syncthing", "dev", db)
|
m.AddFolder(defaultFolderConfig)
|
||||||
m.AddFolder(config.FolderConfiguration{ID: "default", Path: "testdata"})
|
|
||||||
|
|
||||||
emitter := NewProgressEmitter(cw)
|
emitter := NewProgressEmitter(defaultConfig)
|
||||||
go emitter.Serve()
|
go emitter.Serve()
|
||||||
|
|
||||||
p := Puller{
|
p := Puller{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user