mirror of
https://github.com/octoleo/syncthing.git
synced 2024-09-19 13:19:01 +00:00
lib/model: Fail test instead of panic due to closing channel twice (#5508)
This commit is contained in:
parent
5d9d87f770
commit
af4fb97538
@ -43,6 +43,11 @@ func TestRequestSimple(t *testing.T) {
|
|||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
for _, f := range fs {
|
for _, f := range fs {
|
||||||
if f.Name == "testfile" {
|
if f.Name == "testfile" {
|
||||||
close(done)
|
close(done)
|
||||||
@ -86,6 +91,11 @@ func TestSymlinkTraversalRead(t *testing.T) {
|
|||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
for _, f := range fs {
|
for _, f := range fs {
|
||||||
if f.Name == "symlink" {
|
if f.Name == "symlink" {
|
||||||
close(done)
|
close(done)
|
||||||
@ -661,9 +671,14 @@ func TestRequestSymlinkWindows(t *testing.T) {
|
|||||||
testOs.Remove(w.ConfigPath())
|
testOs.Remove(w.ConfigPath())
|
||||||
}()
|
}()
|
||||||
|
|
||||||
first := make(chan struct{})
|
done := make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
// expected first index
|
// expected first index
|
||||||
if len(fs) != 1 {
|
if len(fs) != 1 {
|
||||||
t.Fatalf("Expected just one file in index, got %v", fs)
|
t.Fatalf("Expected just one file in index, got %v", fs)
|
||||||
@ -675,7 +690,7 @@ func TestRequestSymlinkWindows(t *testing.T) {
|
|||||||
if !f.IsInvalid() {
|
if !f.IsInvalid() {
|
||||||
t.Errorf(`File info was not marked as invalid`)
|
t.Errorf(`File info was not marked as invalid`)
|
||||||
}
|
}
|
||||||
close(first)
|
close(done)
|
||||||
}
|
}
|
||||||
fc.mut.Unlock()
|
fc.mut.Unlock()
|
||||||
|
|
||||||
@ -683,7 +698,7 @@ func TestRequestSymlinkWindows(t *testing.T) {
|
|||||||
fc.sendIndexUpdate()
|
fc.sendIndexUpdate()
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case <-first:
|
case <-done:
|
||||||
case <-time.After(time.Second):
|
case <-time.After(time.Second):
|
||||||
t.Fatalf("timed out before pull was finished")
|
t.Fatalf("timed out before pull was finished")
|
||||||
}
|
}
|
||||||
@ -772,6 +787,11 @@ func TestRequestRemoteRenameChanged(t *testing.T) {
|
|||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
if len(fs) != 2 {
|
if len(fs) != 2 {
|
||||||
t.Fatalf("Received index with %v indexes instead of 2", len(fs))
|
t.Fatalf("Received index with %v indexes instead of 2", len(fs))
|
||||||
}
|
}
|
||||||
@ -795,6 +815,11 @@ func TestRequestRemoteRenameChanged(t *testing.T) {
|
|||||||
done = make(chan struct{})
|
done = make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
close(done)
|
close(done)
|
||||||
}
|
}
|
||||||
fc.mut.Unlock()
|
fc.mut.Unlock()
|
||||||
@ -954,6 +979,11 @@ func TestRequestDeleteChanged(t *testing.T) {
|
|||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
fc.mut.Lock()
|
fc.mut.Lock()
|
||||||
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
close(done)
|
close(done)
|
||||||
}
|
}
|
||||||
fc.mut.Unlock()
|
fc.mut.Unlock()
|
||||||
@ -970,6 +1000,17 @@ func TestRequestDeleteChanged(t *testing.T) {
|
|||||||
t.Fatal("timed out")
|
t.Fatal("timed out")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fc.mut.Lock()
|
||||||
|
fc.indexFn = func(folder string, fs []protocol.FileInfo) {
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
t.Fatalf("More than one index update sent")
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
close(done)
|
||||||
|
}
|
||||||
|
fc.mut.Unlock()
|
||||||
|
|
||||||
fd, err := tfs.OpenFile(a, fs.OptReadWrite, 0644)
|
fd, err := tfs.OpenFile(a, fs.OptReadWrite, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user