github.com/econnell/deis@v1.5.1/logger/tests/logger_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/deis/deis/tests/dockercli"
     9  	"github.com/deis/deis/tests/etcdutils"
    10  	"github.com/deis/deis/tests/utils"
    11  )
    12  
    13  func TestLogger(t *testing.T) {
    14  	var err error
    15  	tag, etcdPort := utils.BuildTag(), utils.RandomPort()
    16  	imageName := utils.ImagePrefix() + "logger" + ":" + tag
    17  
    18  	//start etcd container
    19  	etcdName := "deis-etcd-" + tag
    20  	cli, stdout, stdoutPipe := dockercli.NewClient()
    21  	dockercli.RunTestEtcd(t, etcdName, etcdPort)
    22  	defer cli.CmdRm("-f", etcdName)
    23  
    24  	host, port := utils.HostAddress(), utils.RandomPort()
    25  	fmt.Printf("--- Run %s at %s:%s\n", imageName, host, port)
    26  	name := "deis-logger-" + tag
    27  	defer cli.CmdRm("-f", name)
    28  	go func() {
    29  		_ = cli.CmdRm("-f", name)
    30  		err = dockercli.RunContainer(cli,
    31  			"--name", name,
    32  			"--rm",
    33  			"-p", port+":514/udp",
    34  			"-e", "EXTERNAL_PORT="+port,
    35  			"-e", "HOST="+host,
    36  			"-e", "ETCD_PORT="+etcdPort,
    37  			imageName)
    38  	}()
    39  	dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-logger running")
    40  	if err != nil {
    41  		t.Fatal(err)
    42  	}
    43  	// FIXME: Wait until etcd keys are published
    44  	time.Sleep(5000 * time.Millisecond)
    45  	dockercli.DeisServiceTest(t, name, port, "udp")
    46  	etcdutils.VerifyEtcdValue(t, "/deis/logs/host", host, etcdPort)
    47  	etcdutils.VerifyEtcdValue(t, "/deis/logs/port", port, etcdPort)
    48  }