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