integration: fix upgrade test

Upgrade test listens on a fixed port, which may fail with 'bind address
already in use' if the port was just used to send tcp sockets.

The commit makes it listen on a random available port to avoid this.
This commit is contained in:
Yicheng Qin 2015-03-30 23:31:46 -07:00
parent 9ad2eaf16c
commit f3baf4517b

View File

@ -15,8 +15,6 @@
package integration
import (
"github.com/coreos/etcd/pkg/types"
"net"
"os/exec"
"testing"
)
@ -24,25 +22,16 @@ import (
func TestUpgradeMember(t *testing.T) {
defer afterTest(t)
m := mustNewMember(t, "integration046")
newPeerListeners := make([]net.Listener, 0)
newPeerListeners = append(newPeerListeners, newListenerWithAddr(t, "127.0.0.1:59892"))
m.PeerListeners = newPeerListeners
urls, err := types.NewURLs([]string{"http://127.0.0.1:59892"})
if err != nil {
t.Fatal(err)
}
m.PeerURLs = urls
m.NewCluster = true
c := &cluster{}
c.Members = []*member{m}
fillClusterForMembers(c.Members, "etcd-cluster")
cmd := exec.Command("cp", "-r", "testdata/integration046_data/conf", "testdata/integration046_data/log", "testdata/integration046_data/snapshot", m.DataDir)
err = cmd.Run()
err := cmd.Run()
if err != nil {
t.Fatal(err)
}
if err := m.Launch(); err != nil {
t.Fatal(err)
}
defer m.Terminate(t)
m.WaitOK(t)
c.Launch(t)
defer c.Terminate(t)
clusterMustProgress(t, c.Members)
clusterMustProgress(t, []*member{m})
}