github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/mesos/pkg/fleet/machines_test.go (about) 1 package fleet 2 3 import ( 4 "io/ioutil" 5 "os" 6 "os/exec" 7 "testing" 8 "time" 9 ) 10 11 func init() { 12 _, err := exec.Command("etcd", "--version").Output() 13 if err != nil { 14 log.Fatal(err) 15 } 16 } 17 18 var etcdServer *exec.Cmd 19 20 func startEtcd() { 21 tmpDir, err := ioutil.TempDir(os.TempDir(), "etcd-test") 22 if err != nil { 23 log.Fatal("creating temp dir:", err) 24 } 25 log.Debugf("temp dir: %v", tmpDir) 26 27 etcdServer = exec.Command("etcd", "-data-dir="+tmpDir, "-name=default") 28 etcdServer.Start() 29 time.Sleep(1 * time.Second) 30 } 31 32 func stopEtcd() { 33 etcdServer.Process.Kill() 34 } 35 36 func TestGetNodesWithMetadata(t *testing.T) { 37 startEtcd() 38 defer stopEtcd() 39 40 data, err := ParseMetadata("zookeeper=true") 41 if err != nil { 42 t.Fatalf("Unexpected error '%v'", err) 43 } 44 45 machines, err := GetNodesWithMetadata([]string{"http://172.17.8.100:4001"}, data) 46 if err != nil { 47 t.Fatalf("Expected '%v' arguments but returned '%v'", "", err) 48 } 49 50 if len(machines) <= 0 { 51 t.Fatalf("Expected at least one machines but %v were returned ", len(machines)) 52 } 53 }