aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJakob Borg <jakob@kastelo.net>2017-11-13 00:36:37 +0100
committerJakob Borg <jakob@kastelo.net>2017-11-13 00:36:37 +0100
commitfd5f9f89681d557069aaf8313af6bad0564bc888 (patch)
tree8c894423ad823a15bcbf2128643c8fea8cb51cb5 /test
parentd8a0a477cacfed8d08589c65b9b735b8c6295289 (diff)
downloadsyncthing-fd5f9f89681d557069aaf8313af6bad0564bc888.tar.gz
syncthing-fd5f9f89681d557069aaf8313af6bad0564bc888.zip
test: Fix reconnect test
Diffstat (limited to 'test')
-rw-r--r--test/reconnect_test.go63
1 files changed, 45 insertions, 18 deletions
diff --git a/test/reconnect_test.go b/test/reconnect_test.go
index d8602fe3a..12f3afd91 100644
--- a/test/reconnect_test.go
+++ b/test/reconnect_test.go
@@ -15,22 +15,22 @@ import (
"time"
)
-func TestRestartReceiverDuringTransfer(t *testing.T) {
- testRestartDuringTransfer(t, false, true, 0, 0)
+func TestReconnectReceiverDuringTransfer(t *testing.T) {
+ testReconnectDuringTransfer(t, false, true, 0, 0)
}
-func TestRestartSenderDuringTransfer(t *testing.T) {
- testRestartDuringTransfer(t, true, false, 0, 0)
+func TestReconnectSenderDuringTransfer(t *testing.T) {
+ testReconnectDuringTransfer(t, true, false, 0, 0)
}
-func TestRestartSenderAndReceiverDuringTransfer(t *testing.T) {
+func TestReconnectSenderAndReceiverDuringTransfer(t *testing.T) {
// Give the receiver some time to rot with needed files but
// without any peer. This triggers
// https://github.com/syncthing/syncthing/issues/463
- testRestartDuringTransfer(t, true, true, 10*time.Second, 0)
+ testReconnectDuringTransfer(t, true, true, 10*time.Second, 0)
}
-func testRestartDuringTransfer(t *testing.T, restartSender, restartReceiver bool, senderDelay, receiverDelay time.Duration) {
+func testReconnectDuringTransfer(t *testing.T, ReconnectSender, ReconnectReceiver bool, senderDelay, receiverDelay time.Duration) {
log.Println("Cleaning...")
err := removeAll("s1", "s2", "h1/index*", "h2/index*")
if err != nil {
@@ -38,7 +38,7 @@ func testRestartDuringTransfer(t *testing.T, restartSender, restartReceiver bool
}
log.Println("Generating files...")
- err = generateFiles("s1", 250, 20, "../LICENSE")
+ err = generateFiles("s1", 2500, 20, "../LICENSE")
if err != nil {
t.Fatal(err)
}
@@ -58,6 +58,20 @@ func testRestartDuringTransfer(t *testing.T, restartSender, restartReceiver bool
checkedStop(t, receiver)
}()
+ // Set rate limits
+ cfg, err := receiver.GetConfig()
+ if err != nil {
+ t.Fatal(err)
+ }
+ cfg.Options.MaxRecvKbps = 100
+ cfg.Options.MaxSendKbps = 100
+ if err := receiver.PostConfig(cfg); err != nil {
+ t.Fatal(err)
+ }
+
+ sender.ResumeAll()
+ receiver.ResumeAll()
+
var prevBytes int
for {
recv, err := receiver.Model("default")
@@ -72,32 +86,34 @@ func testRestartDuringTransfer(t *testing.T, restartSender, restartReceiver bool
// Receiver has made progress
prevBytes = recv.InSyncBytes
- if restartReceiver {
- log.Printf("Stopping receiver...")
- checkedStop(t, receiver)
+ if ReconnectReceiver {
+ log.Printf("Pausing receiver...")
+ receiver.PauseAll()
}
- if restartSender {
- log.Printf("Stopping sender...")
- checkedStop(t, sender)
+ if ReconnectSender {
+ log.Printf("Pausing sender...")
+ sender.PauseAll()
}
var wg sync.WaitGroup
- if restartReceiver {
+ if ReconnectReceiver {
wg.Add(1)
go func() {
time.Sleep(receiverDelay)
- receiver = startInstance(t, 2)
+ log.Printf("Resuming receiver...")
+ receiver.ResumeAll()
wg.Done()
}()
}
- if restartSender {
+ if ReconnectSender {
wg.Add(1)
go func() {
time.Sleep(senderDelay)
- sender = startInstance(t, 1)
+ log.Printf("Resuming sender...")
+ sender.ResumeAll()
wg.Done()
}()
}
@@ -108,6 +124,17 @@ func testRestartDuringTransfer(t *testing.T, restartSender, restartReceiver bool
time.Sleep(time.Second)
}
+ // Reset rate limits
+ cfg, err = receiver.GetConfig()
+ if err != nil {
+ t.Fatal(err)
+ }
+ cfg.Options.MaxRecvKbps = 0
+ cfg.Options.MaxSendKbps = 0
+ if err := receiver.PostConfig(cfg); err != nil {
+ t.Fatal(err)
+ }
+
checkedStop(t, sender)
checkedStop(t, receiver)