github.com/sym3tri/etcd@v0.2.1-0.20140422215517-a563d82f95d6/tests/functional/join_test.go (about) 1 package test 2 3 import ( 4 "os" 5 "testing" 6 "time" 7 ) 8 9 func TestJoinThroughFollower(t *testing.T) { 10 procAttr := new(os.ProcAttr) 11 procAttr.Files = []*os.File{nil, os.Stdout, os.Stderr} 12 13 _, etcds, err := CreateCluster(2, procAttr, false) 14 if err != nil { 15 t.Fatal("cannot create cluster") 16 } 17 defer DestroyCluster(etcds) 18 19 time.Sleep(time.Second) 20 21 newEtcd, err := os.StartProcess(EtcdBinPath, []string{"etcd", "-data-dir=/tmp/node3", "-name=node3", "-addr=127.0.0.1:4003", "-peer-addr=127.0.0.1:7003", "-peers=127.0.0.1:7002", "-f"}, procAttr) 22 if err != nil { 23 t.Fatal("failed starting node3") 24 } 25 defer func() { 26 newEtcd.Kill() 27 newEtcd.Release() 28 }() 29 30 time.Sleep(time.Second) 31 32 leader, err := getLeader("http://127.0.0.1:4003") 33 if err != nil { 34 t.Fatal("failed getting leader from node3:", err) 35 } 36 if leader != "http://127.0.0.1:7001" { 37 t.Fatal("expect=http://127.0.0.1:7001 got=", leader) 38 } 39 }