Refactored integration tests
Added internal/rc to remote control a Syncthing process and made the "awaiting sync" determination reliable.
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
|
||||
"github.com/syncthing/protocol"
|
||||
"github.com/syncthing/syncthing/internal/config"
|
||||
"github.com/syncthing/syncthing/internal/rc"
|
||||
)
|
||||
|
||||
func TestOverride(t *testing.T) {
|
||||
@@ -61,51 +62,15 @@ func TestOverride(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
log.Println("Starting master...")
|
||||
master := syncthingProcess{ // id1
|
||||
instance: "1",
|
||||
argv: []string{"-home", "h1"},
|
||||
port: 8081,
|
||||
apiKey: apiKey,
|
||||
}
|
||||
err = master.start()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer master.stop()
|
||||
master := startInstance(t, 1)
|
||||
defer checkedStop(t, master)
|
||||
|
||||
// Wait for one scan to succeed, or up to 20 seconds... This is to let
|
||||
// startup, UPnP etc complete and make sure the master has the full index
|
||||
// before they connect.
|
||||
for i := 0; i < 20; i++ {
|
||||
err := master.rescan("default")
|
||||
if err != nil {
|
||||
time.Sleep(time.Second)
|
||||
continue
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
log.Println("Starting slave...")
|
||||
slave := syncthingProcess{ // id2
|
||||
instance: "2",
|
||||
argv: []string{"-home", "h2"},
|
||||
port: 8082,
|
||||
apiKey: apiKey,
|
||||
}
|
||||
err = slave.start()
|
||||
if err != nil {
|
||||
master.stop()
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer slave.stop()
|
||||
slave := startInstance(t, 2)
|
||||
defer checkedStop(t, slave)
|
||||
|
||||
log.Println("Syncing...")
|
||||
|
||||
err = awaitCompletion("default", master, slave)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
rc.AwaitSync("default", master, slave)
|
||||
|
||||
log.Println("Verifying...")
|
||||
|
||||
@@ -133,8 +98,7 @@ func TestOverride(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = slave.rescan("default")
|
||||
if err != nil {
|
||||
if err := slave.Rescan("default"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -144,20 +108,13 @@ func TestOverride(t *testing.T) {
|
||||
|
||||
log.Println("Hitting Override on master...")
|
||||
|
||||
resp, err := master.post("/rest/db/override?folder=default", nil)
|
||||
if err != nil {
|
||||
if _, err := master.Post("/rest/db/override?folder=default", nil); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.Status)
|
||||
}
|
||||
|
||||
log.Println("Syncing...")
|
||||
|
||||
err = awaitCompletion("default", master, slave)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
rc.AwaitSync("default", master, slave)
|
||||
|
||||
// Verify that the override worked
|
||||
|
||||
|
||||
Reference in New Issue
Block a user