github.com/blystad/deis@v0.11.0/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 runDeisRouterTest( 14 t *testing.T, testID string, etcdPort string, servicePort string) { 15 var err error 16 cli, stdout, stdoutPipe := dockercli.GetNewClient() 17 go func() { 18 err = dockercli.RunContainer(cli, 19 "--name", "deis-router-"+testID, 20 "--rm", 21 "-p", servicePort+":80", 22 "-p", "2222:2222", 23 "-e", "PUBLISH="+servicePort, 24 "-e", "HOST="+utils.GetHostIPAddress(), 25 "-e", "ETCD_PORT="+etcdPort, 26 "deis/router:"+testID) 27 }() 28 dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-router running") 29 if err != nil { 30 t.Fatal(err) 31 } 32 } 33 34 func TestRouter(t *testing.T) { 35 setkeys := []string{ 36 "deis/controller/host", 37 "/deis/controller/port", 38 "/deis/builder/host", 39 "/deis/builder/port", 40 } 41 setdir := []string{ 42 "/deis/controller", 43 "/deis/router", 44 "/deis/database", 45 "/deis/services", 46 "/deis/builder", 47 "/deis/domains", 48 } 49 testID := utils.NewID() 50 err := dockercli.BuildImage(t, "../", "deis/router:"+testID) 51 if err != nil { 52 t.Fatal(err) 53 } 54 etcdPort := utils.GetRandomPort() 55 dockercli.RunEtcdTest(t, testID, etcdPort) 56 handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort) 57 etcdutils.Publishvalues(t, handler) 58 servicePort := utils.GetRandomPort() 59 fmt.Printf("--- Test deis-router-%s at port %s\n", testID, servicePort) 60 runDeisRouterTest(t, testID, etcdPort, servicePort) 61 // TODO: nginx needs a few seconds to wake up here--fixme! 62 time.Sleep(5000 * time.Millisecond) 63 dockercli.DeisServiceTest( 64 t, "deis-router-"+testID, servicePort, "http") 65 dockercli.ClearTestSession(t, testID) 66 }