Skip to content

Commit 102b036

Browse files
mboersmaGabriel Monroy
authored andcommitted
ref(tests): use images from "make build" in component tests
1 parent 57af648 commit 102b036

17 files changed

Lines changed: 238 additions & 473 deletions

File tree

Makefile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,10 @@ restart: stop start
4040

4141
run: install start
4242

43-
test: test-components test-integration
43+
test: test-components push test-integration
4444

4545
test-components:
46-
@$(foreach C,$(COMPONENTS), \
47-
echo \\nTesting deis/$(C) ; \
48-
$(MAKE) -C $(C) build test ;)
46+
@$(foreach C, $(COMPONENTS), $(MAKE) -C $(C) test || exit 1;)
4947

5048
test-integration:
5149
$(MAKE) -C tests/ test-full

builder/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ test-unit:
4040
@echo no unit tests
4141

4242
test-functional:
43+
@docker history deis/test-etcd >/dev/null 2>&1 || docker pull deis/test-etcd
4344
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 30m ./tests/...

builder/tests/builder_test.go

Lines changed: 30 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,8 @@ import (
1010
"github.com/deis/deis/tests/utils"
1111
)
1212

13-
func runDeisBuilderTest(
14-
t *testing.T, testID string, etcdPort string, servicePort string) {
15-
var err error
16-
dockercli.RunDeisDataTest(t, "--name", "deis-builder-data",
17-
"-v", "/var/lib/docker", "deis/base", "true")
18-
cli, stdout, stdoutPipe := dockercli.GetNewClient()
19-
go func() {
20-
err = dockercli.RunContainer(cli,
21-
"--name", "deis-builder-"+testID,
22-
"--rm",
23-
"-p", servicePort+":22",
24-
"-e", "PUBLISH=22",
25-
"-e", "STORAGE_DRIVER=aufs",
26-
"-e", "HOST="+utils.GetHostIPAddress(),
27-
"-e", "ETCD_PORT="+etcdPort,
28-
"-e", "PORT="+servicePort,
29-
"--volumes-from", "deis-builder-data",
30-
"--privileged", "deis/builder:"+testID)
31-
}()
32-
dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running")
33-
if err != nil {
34-
t.Fatal(err)
35-
}
36-
}
37-
3813
func TestBuilder(t *testing.T) {
14+
var err error
3915
setkeys := []string{
4016
"/deis/registry/protocol",
4117
"/deis/registry/host",
@@ -55,21 +31,38 @@ func TestBuilder(t *testing.T) {
5531
"/deis/domains",
5632
"/deis/services",
5733
}
58-
testID := utils.NewID()
59-
err := dockercli.BuildImage(t, "../", "deis/builder:"+testID)
34+
tag, etcdPort := utils.BuildTag(), utils.RandomPort()
35+
etcdName := "deis-etcd-" + tag
36+
cli, stdout, stdoutPipe := dockercli.NewClient()
37+
dockercli.RunTestEtcd(t, etcdName, etcdPort)
38+
defer cli.CmdRm("-f", etcdName)
39+
handler := etcdutils.InitEtcd(setdir, setkeys, etcdPort)
40+
etcdutils.PublishEtcd(t, handler)
41+
dockercli.RunDeisDataTest(t, "--name", "deis-builder-data",
42+
"-v", "/var/lib/docker", "deis/base", "true")
43+
ipaddr, port := utils.HostAddress(), utils.RandomPort()
44+
fmt.Printf("--- Run deis/builder:%s at %s:%s\n", tag, ipaddr, port)
45+
name := "deis-builder-" + tag
46+
defer cli.CmdRm("-f", name)
47+
go func() {
48+
_ = cli.CmdRm("-f", name)
49+
err = dockercli.RunContainer(cli,
50+
"--name", name,
51+
"--rm",
52+
"-p", port+":22",
53+
"-e", "PUBLISH=22",
54+
"-e", "STORAGE_DRIVER=aufs",
55+
"-e", "HOST="+ipaddr,
56+
"-e", "ETCD_PORT="+etcdPort,
57+
"-e", "PORT="+port,
58+
"--volumes-from", "deis-builder-data",
59+
"--privileged", "deis/builder:"+tag)
60+
}()
61+
dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running")
6062
if err != nil {
6163
t.Fatal(err)
6264
}
63-
etcdPort := utils.GetRandomPort()
64-
dockercli.RunEtcdTest(t, testID, etcdPort)
65-
handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
66-
etcdutils.Publishvalues(t, handler)
67-
servicePort := utils.GetRandomPort()
68-
fmt.Printf("--- Test deis-builder-%s at port %s\n", testID, servicePort)
69-
runDeisBuilderTest(t, testID, etcdPort, servicePort)
7065
// TODO: builder needs a few seconds to wake up here--fixme!
7166
time.Sleep(5000 * time.Millisecond)
72-
dockercli.DeisServiceTest(
73-
t, "deis-builder-"+testID, servicePort, "tcp")
74-
dockercli.ClearTestSession(t, testID)
67+
dockercli.DeisServiceTest(t, name, port, "tcp")
7568
}

cache/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,5 @@ test-unit:
3838
@echo no unit tests
3939

4040
test-functional:
41+
@docker history deis/test-etcd >/dev/null 2>&1 || docker pull deis/test-etcd
4142
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 20m ./tests/...

cache/tests/cache_test.go

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,32 @@ import (
88
"github.com/deis/deis/tests/utils"
99
)
1010

11-
func runDeisCacheTest(
12-
t *testing.T, testID string, etcdPort string, servicePort string) {
11+
func TestCache(t *testing.T) {
1312
var err error
14-
cli, stdout, stdoutPipe := dockercli.GetNewClient()
13+
tag := utils.BuildTag()
14+
etcdPort := utils.RandomPort()
15+
etcdName := "deis-etcd-" + tag
16+
cli, stdout, stdoutPipe := dockercli.NewClient()
17+
dockercli.RunTestEtcd(t, etcdName, etcdPort)
18+
defer cli.CmdRm("-f", etcdName)
19+
ipaddr, port := utils.HostAddress(), utils.RandomPort()
20+
fmt.Printf("--- Run deis/cache:%s at %s:%s\n", tag, ipaddr, port)
21+
name := "deis-cache-" + tag
22+
defer cli.CmdRm("-f", name)
1523
go func() {
24+
_ = cli.CmdRm("-f", name)
1625
err = dockercli.RunContainer(cli,
17-
"--name", "deis-cache-"+testID,
26+
"--name", name,
1827
"--rm",
19-
"-p", servicePort+":6379",
20-
"-e", "PUBLISH="+servicePort,
21-
"-e", "HOST="+utils.GetHostIPAddress(),
28+
"-p", port+":6379",
29+
"-e", "PUBLISH="+port,
30+
"-e", "HOST="+ipaddr,
2231
"-e", "ETCD_PORT="+etcdPort,
23-
"deis/cache:"+testID)
32+
"deis/cache:"+tag)
2433
}()
2534
dockercli.PrintToStdout(t, stdout, stdoutPipe, "started")
2635
if err != nil {
2736
t.Fatal(err)
2837
}
29-
}
30-
31-
func TestCache(t *testing.T) {
32-
testID := utils.NewID()
33-
err := dockercli.BuildImage(t, "../", "deis/cache:"+testID)
34-
if err != nil {
35-
t.Fatal(err)
36-
}
37-
etcdPort := utils.GetRandomPort()
38-
dockercli.RunEtcdTest(t, testID, etcdPort)
39-
servicePort := utils.GetRandomPort()
40-
fmt.Printf("--- Test deis-cache-%s at port %s\n", testID, servicePort)
41-
runDeisCacheTest(t, testID, etcdPort, servicePort)
42-
dockercli.DeisServiceTest(
43-
t, "deis-cache-"+testID, servicePort, "tcp")
44-
dockercli.ClearTestSession(t, testID)
38+
dockercli.DeisServiceTest(t, name, port, "tcp")
4539
}

controller/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,6 @@ test-unit: setup-venv test-style
5959
venv/bin/python manage.py test --noinput api
6060

6161
test-functional:
62+
@docker history deis/test-etcd >/dev/null 2>&1 || docker pull deis/test-etcd
63+
@docker history deis/test-postgresql >/dev/null 2>&1 || docker pull deis/test-postgresql
6264
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 20m ./tests/...

controller/tests/controller_test.go

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,8 @@ import (
1010
"github.com/deis/deis/tests/utils"
1111
)
1212

13-
func runDeisControllerTest(
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-controller-"+testID,
20-
"--rm",
21-
"-p", servicePort+":8000",
22-
"-e", "PUBLISH="+servicePort,
23-
"-e", "HOST="+utils.GetHostIPAddress(),
24-
"-e", "ETCD_PORT="+etcdPort,
25-
"deis/controller:"+testID)
26-
}()
27-
dockercli.PrintToStdout(t, stdout, stdoutPipe, "Booting")
28-
if err != nil {
29-
t.Fatal(err)
30-
}
31-
}
32-
3313
func TestController(t *testing.T) {
14+
var err error
3415
setkeys := []string{
3516
"/deis/registry/protocol",
3617
"deis/registry/host",
@@ -45,21 +26,34 @@ func TestController(t *testing.T) {
4526
"/deis/registry",
4627
"/deis/domains",
4728
}
48-
testID := utils.NewID()
49-
err := dockercli.BuildImage(t, "../", "deis/controller:"+testID)
29+
tag, etcdPort := utils.BuildTag(), utils.RandomPort()
30+
etcdName := "deis-etcd-" + tag
31+
cli, stdout, stdoutPipe := dockercli.NewClient()
32+
dockercli.RunTestEtcd(t, etcdName, etcdPort)
33+
defer cli.CmdRm("-f", etcdName)
34+
handler := etcdutils.InitEtcd(setdir, setkeys, etcdPort)
35+
etcdutils.PublishEtcd(t, handler)
36+
cli.CmdRm("-f", "deis-test-database-"+tag)
37+
mock.RunMockDatabase(t, tag, etcdPort, utils.RandomPort())
38+
defer cli.CmdRm("-f", "deis-test-database-"+tag)
39+
host, port := utils.HostAddress(), utils.RandomPort()
40+
fmt.Printf("--- Run deis/controller:%s at %s:%s\n", tag, host, port)
41+
name := "deis-controller-" + tag
42+
defer cli.CmdRm("-f", name)
43+
go func() {
44+
cli.CmdRm("-f", name)
45+
err = dockercli.RunContainer(cli,
46+
"--name", name,
47+
"--rm",
48+
"-p", port+":8000",
49+
"-e", "PUBLISH="+port,
50+
"-e", "HOST="+host,
51+
"-e", "ETCD_PORT="+etcdPort,
52+
"deis/controller:"+tag)
53+
}()
54+
dockercli.PrintToStdout(t, stdout, stdoutPipe, "Booting")
5055
if err != nil {
5156
t.Fatal(err)
5257
}
53-
etcdPort := utils.GetRandomPort()
54-
dockercli.RunEtcdTest(t, testID, etcdPort)
55-
handler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
56-
etcdutils.Publishvalues(t, handler)
57-
dbPort := utils.GetRandomPort()
58-
mock.RunMockDatabase(t, testID, etcdPort, dbPort)
59-
servicePort := utils.GetRandomPort()
60-
fmt.Printf("--- Test deis-controller-%s at port %s\n", testID, servicePort)
61-
runDeisControllerTest(t, testID, etcdPort, servicePort)
62-
dockercli.DeisServiceTest(
63-
t, "deis-controller-"+testID, servicePort, "http")
64-
dockercli.ClearTestSession(t, testID)
58+
dockercli.DeisServiceTest(t, name, port, "http")
6559
}

database/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ test-unit:
4040
@echo no unit tests
4141

4242
test-functional:
43+
@docker history deis/test-etcd >/dev/null 2>&1 || docker pull deis/test-etcd
4344
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 20m ./tests/...

database/tests/database_test.go

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,35 @@ import (
88
"github.com/deis/deis/tests/utils"
99
)
1010

11-
func runDeisDatabaseTest(
12-
t *testing.T, testID string, etcdPort string, servicePort string) {
11+
func TestDatabase(t *testing.T) {
1312
var err error
13+
tag, etcdPort := utils.BuildTag(), utils.RandomPort()
14+
etcdName := "deis-etcd-" + tag
15+
cli, stdout, stdoutPipe := dockercli.NewClient()
16+
dockercli.RunTestEtcd(t, etcdName, etcdPort)
17+
defer cli.CmdRm("-f", etcdName)
1418
dockercli.RunDeisDataTest(t, "--name", "deis-database-data",
1519
"-v", "/var/lib/postgresql", "deis/base", "true")
16-
cli, stdout, stdoutPipe := dockercli.GetNewClient()
20+
host, port := utils.HostAddress(), utils.RandomPort()
21+
fmt.Printf("--- Run deis/router:%s at %s:%s\n", tag, host, port)
22+
name := "deis-router-" + tag
23+
defer cli.CmdRm("-f", name)
1724
go func() {
25+
_ = cli.CmdRm("-f", name)
1826
err = dockercli.RunContainer(cli,
19-
"--name", "deis-database-"+testID,
27+
"--name", name,
2028
"--rm",
21-
"-p", servicePort+":5432",
22-
"-e", "PUBLISH="+servicePort,
23-
"-e", "HOST="+utils.GetHostIPAddress(),
29+
"-p", port+":5432",
30+
"-e", "PUBLISH="+port,
31+
"-e", "HOST="+host,
2432
"-e", "ETCD_PORT="+etcdPort,
2533
"--volumes-from", "deis-database-data",
26-
"deis/database:"+testID)
34+
"deis/database:"+tag)
2735
}()
2836
dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-database running")
2937
if err != nil {
3038
t.Fatal(err)
3139
}
32-
}
33-
34-
func TestDatabase(t *testing.T) {
35-
testID := utils.NewID()
36-
err := dockercli.BuildImage(t, "../", "deis/database:"+testID)
37-
if err != nil {
38-
t.Fatal(err)
39-
}
40-
etcdPort := utils.GetRandomPort()
41-
dockercli.RunEtcdTest(t, testID, etcdPort)
42-
servicePort := utils.GetRandomPort()
43-
fmt.Printf("--- Test deis-database-%s at port %s\n", testID, servicePort)
44-
runDeisDatabaseTest(t, testID, etcdPort, servicePort)
4540
dockercli.DeisServiceTest(
46-
t, "deis-database-"+testID, servicePort, "tcp")
47-
dockercli.ClearTestSession(t, testID)
41+
t, "deis-database-"+tag, port, "tcp")
4842
}

logger/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ test-unit: test-style
5252
go test -v -cover ./syslog
5353

5454
test-functional:
55+
@docker history deis/test-etcd >/dev/null 2>&1 || docker pull deis/test-etcd
5556
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 20m ./tests/...
5657

5758
coverage:

0 commit comments

Comments
 (0)