join_test.go 906 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package test
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. )
  7. func TestJoinThroughFollower(t *testing.T) {
  8. procAttr := new(os.ProcAttr)
  9. procAttr.Files = []*os.File{nil, os.Stdout, os.Stderr}
  10. _, etcds, err := CreateCluster(2, procAttr, false)
  11. if err != nil {
  12. t.Fatal("cannot create cluster")
  13. }
  14. defer DestroyCluster(etcds)
  15. time.Sleep(time.Second)
  16. 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)
  17. if err != nil {
  18. t.Fatal("failed starting node3")
  19. }
  20. defer func() {
  21. newEtcd.Kill()
  22. newEtcd.Release()
  23. }()
  24. time.Sleep(time.Second)
  25. leader, err := getLeader("http://127.0.0.1:4003")
  26. if err != nil {
  27. t.Fatal("failed getting leader from node3:", err)
  28. }
  29. if leader != "http://127.0.0.1:7001" {
  30. t.Fatal("expect=http://127.0.0.1:7001 got=", leader)
  31. }
  32. }