github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/router/tests/router_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 TestRouter(t *testing.T) { 14 var err error 15 setkeys := []string{ 16 "/deis/controller/host", 17 "/deis/controller/port", 18 "/deis/builder/host", 19 "/deis/builder/port", 20 "/deis/store/gateway/host", 21 "/deis/store/gateway/port", 22 } 23 setdir := []string{ 24 "/deis/controller", 25 "/deis/router", 26 "/deis/database", 27 "/deis/services", 28 "/deis/builder", 29 "/deis/domains", 30 "/deis/store", 31 } 32 tag, etcdPort := utils.BuildTag(), utils.RandomPort() 33 imageName := utils.ImagePrefix() + "router" + ":" + tag 34 etcdName := "deis-etcd-" + tag 35 cli, stdout, stdoutPipe := dockercli.NewClient() 36 dockercli.RunTestEtcd(t, etcdName, etcdPort) 37 defer cli.CmdRm("-f", etcdName) 38 handler := etcdutils.InitEtcd(setdir, setkeys, etcdPort) 39 etcdutils.PublishEtcd(t, handler) 40 host, port := utils.HostAddress(), utils.RandomPort() 41 fmt.Printf("--- Run %s at %s:%s\n", imageName, host, port) 42 name := "deis-router-" + tag 43 go func() { 44 _ = cli.CmdRm("-f", name) 45 err = dockercli.RunContainer(cli, 46 "--name", name, 47 "--rm", 48 "-p", port+":80", 49 "-p", utils.RandomPort()+":2222", 50 "-e", "EXTERNAL_PORT="+port, 51 "-e", "HOST="+host, 52 "-e", "ETCD_PORT="+etcdPort, 53 "-e", "LOG=debug", 54 imageName) 55 }() 56 dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-router running") 57 if err != nil { 58 t.Fatal(err) 59 } 60 // FIXME: nginx needs a couple seconds to wake up here 61 // FIXME: Wait until etcd keys are published 62 time.Sleep(5000 * time.Millisecond) 63 dockercli.DeisServiceTest(t, name, port, "http") 64 etcdutils.VerifyEtcdValue(t, "/deis/router/gzip", "on", etcdPort) 65 etcdutils.VerifyEtcdValue(t, 66 "/deis/router/hosts/"+host, 67 fmt.Sprintf("%s:%s", host, port), 68 etcdPort) 69 _ = cli.CmdRm("-f", name) 70 }