lib/model, cmd/syncthing: Also account for deleted files in folder summary events (ref #3496)

This should probably be reflected in the GUI somewhere as well...
This commit is contained in:
Jakob Borg
2016-09-02 10:45:30 +02:00
parent 5b37d0356c
commit 69b7f26e4c
4 changed files with 19 additions and 7 deletions

View File

@@ -564,7 +564,7 @@ func (m *Model) LocalSize(folder string) (nfiles, deleted int, bytes int64) {
}
// NeedSize returns the number and total size of currently needed files.
func (m *Model) NeedSize(folder string) (nfiles int, bytes int64) {
func (m *Model) NeedSize(folder string) (nfiles, ndeletes int, bytes int64) {
m.fmut.RLock()
defer m.fmut.RUnlock()
if rf, ok := m.folderFiles[folder]; ok {
@@ -576,7 +576,8 @@ func (m *Model) NeedSize(folder string) (nfiles int, bytes int64) {
}
fs, de, by := sizeOfFile(f)
nfiles += fs + de
nfiles += fs
ndeletes += de
bytes += by
return true
})

View File

@@ -1720,6 +1720,17 @@ func TestIssue3496(t *testing.T) {
t.Errorf("Fully complete, not possible: %.02f%%", comp.CompletionPct)
}
t.Log(comp)
// Check that NeedSize does the correct thing
files, deletes, bytes := m.NeedSize("default")
if files != 1 || bytes != 1234 {
// The one we added synthetically above
t.Errorf("Incorrect need size; %d, %d != 1, 1234", files, bytes)
}
if deletes != len(localFiles)-1 {
// The rest
t.Errorf("Incorrect need deletes; %d != %d", deletes, len(localFiles)-1)
}
}
func addFakeConn(m *Model, dev protocol.DeviceID) {