github.com/rochacon/deis@v1.0.2-0.20150903015341-6839b592a1ff/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  }