From de9c318436742f9d10bcfb2ebcc0383249d31c22 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Mon, 14 Apr 2014 13:41:45 -0700 Subject: [PATCH] tests: add TestJoinThroughFollower --- tests/functional/join_test.go | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/functional/join_test.go diff --git a/tests/functional/join_test.go b/tests/functional/join_test.go new file mode 100644 index 000000000..80438173c --- /dev/null +++ b/tests/functional/join_test.go @@ -0,0 +1,39 @@ +package test + +import ( + "os" + "testing" + "time" +) + +func TestJoinThroughFollower(t *testing.T) { + procAttr := new(os.ProcAttr) + procAttr.Files = []*os.File{nil, os.Stdout, os.Stderr} + + _, etcds, err := CreateCluster(2, procAttr, false) + if err != nil { + t.Fatal("cannot create cluster") + } + defer DestroyCluster(etcds) + + time.Sleep(time.Second) + + 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) + if err != nil { + t.Fatal("failed starting node3") + } + defer func() { + newEtcd.Kill() + newEtcd.Release() + }() + + time.Sleep(time.Second) + + leader, err := getLeader("http://127.0.0.1:4003") + if err != nil { + t.Fatal("failed getting leader from node3:", err) + } + if leader != "http://127.0.0.1:7001" { + t.Fatal("expect http://127.0.0.1:7001 instead of", leader) + } +}