simple_multi_node_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // +build ignore
  2. package test
  3. import (
  4. "os"
  5. "testing"
  6. "time"
  7. "github.com/coreos/etcd/third_party/github.com/coreos/go-etcd/etcd"
  8. )
  9. func TestSimpleMultiNode(t *testing.T) {
  10. templateTestSimpleMultiNode(t, false)
  11. }
  12. func TestSimpleMultiNodeTls(t *testing.T) {
  13. templateTestSimpleMultiNode(t, true)
  14. }
  15. // Create a three nodes and try to set value
  16. func templateTestSimpleMultiNode(t *testing.T, tls bool) {
  17. procAttr := new(os.ProcAttr)
  18. procAttr.Files = []*os.File{nil, os.Stdout, os.Stderr}
  19. clusterSize := 3
  20. _, etcds, err := CreateCluster(clusterSize, procAttr, tls)
  21. if err != nil {
  22. t.Fatalf("cannot create cluster: %v", err)
  23. }
  24. defer DestroyCluster(etcds)
  25. time.Sleep(time.Second)
  26. c := etcd.NewClient(nil)
  27. if c.SyncCluster() == false {
  28. t.Fatal("Cannot sync cluster!")
  29. }
  30. // Test Set
  31. result, err := c.Set("foo", "bar", 100)
  32. if err != nil {
  33. t.Fatal(err)
  34. }
  35. node := result.Node
  36. if node.Key != "/foo" || node.Value != "bar" || node.TTL < 95 {
  37. t.Fatalf("Set 1 failed with %s %s %v", node.Key, node.Value, node.TTL)
  38. }
  39. time.Sleep(time.Second)
  40. result, err = c.Set("foo", "bar", 100)
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. node = result.Node
  45. if node.Key != "/foo" || node.Value != "bar" || node.TTL < 95 {
  46. t.Fatalf("Set 2 failed with %s %s %v", node.Key, node.Value, node.TTL)
  47. }
  48. }