github.com/rochacon/deis@v1.0.2-0.20150903015341-6839b592a1ff/mesos/pkg/etcd/lock_test.go (about) 1 package etcd 2 3 import ( 4 "os/exec" 5 "testing" 6 ) 7 8 func init() { 9 _, err := exec.Command("etcd", "--version").Output() 10 if err != nil { 11 log.Fatal(err) 12 } 13 } 14 15 func TestAcquireReleaseLock(t *testing.T) { 16 startEtcd() 17 defer stopEtcd() 18 19 etcdClient := NewClient([]string{"http://localhost:4001"}) 20 21 err := AcquireLock(etcdClient, "/lock", 10) 22 if err != nil { 23 t.Fatalf("Unexpected error '%v'", err) 24 } 25 26 value := Get(etcdClient, "/lock") 27 if value == "" { 28 t.Fatalf("Expected '%v' arguments but returned '%v'", "locked", value) 29 } 30 31 if value != "locked" { 32 t.Fatalf("Expected '%v' arguments but returned '%v'", "locked", value) 33 } 34 35 ReleaseLock(etcdClient) 36 37 value = Get(etcdClient, "/lock") 38 if value != "released" { 39 t.Fatalf("Expected '%v' arguments but returned '%v'", "released", value) 40 } 41 42 }