Fix benchmarks, cleanup tests

This commit is contained in:
Audrius Butkevicius 2015-03-04 23:33:48 +00:00
parent 9d1e2d9f46
commit fb649e9525
2 changed files with 62 additions and 107 deletions

View File

@ -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

View File

@ -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{