v2_http_endpoint_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package etcd
  2. import (
  3. "io/ioutil"
  4. "net/http"
  5. "strings"
  6. "testing"
  7. )
  8. func TestMachinesEndPoint(t *testing.T) {
  9. es, hs := buildCluster(3)
  10. waitCluster(t, es)
  11. us := make([]string, len(hs))
  12. for i := range hs {
  13. us[i] = hs[i].URL
  14. }
  15. w := strings.Join(us, ",")
  16. for i := range hs {
  17. r, err := http.Get(hs[i].URL + v2machinePrefix)
  18. if err != nil {
  19. t.Errorf("%v", err)
  20. break
  21. }
  22. b, err := ioutil.ReadAll(r.Body)
  23. r.Body.Close()
  24. if err != nil {
  25. t.Errorf("%v", err)
  26. break
  27. }
  28. if string(b) != w {
  29. t.Errorf("machines = %v, want %v", string(b), w)
  30. }
  31. }
  32. for i := range es {
  33. es[len(es)-i-1].Stop()
  34. }
  35. for i := range hs {
  36. hs[len(hs)-i-1].Close()
  37. }
  38. afterTest(t)
  39. }
  40. func TestLeaderEndPoint(t *testing.T) {
  41. es, hs := buildCluster(3)
  42. waitCluster(t, es)
  43. us := make([]string, len(hs))
  44. for i := range hs {
  45. us[i] = hs[i].URL
  46. }
  47. // todo(xiangli) change this to raft port...
  48. w := hs[0].URL + "/raft"
  49. for i := range hs {
  50. r, err := http.Get(hs[i].URL + v2LeaderPrefix)
  51. if err != nil {
  52. t.Errorf("%v", err)
  53. break
  54. }
  55. b, err := ioutil.ReadAll(r.Body)
  56. r.Body.Close()
  57. if err != nil {
  58. t.Errorf("%v", err)
  59. break
  60. }
  61. if string(b) != w {
  62. t.Errorf("leader = %v, want %v", string(b), w)
  63. }
  64. }
  65. for i := range es {
  66. es[len(es)-i-1].Stop()
  67. }
  68. for i := range hs {
  69. hs[len(hs)-i-1].Close()
  70. }
  71. afterTest(t)
  72. }