Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

Commit

Permalink
Merge e553387 into 5b2b6c0
Browse files Browse the repository at this point in the history
  • Loading branch information
mboersma committed Jun 25, 2014
2 parents 5b2b6c0 + e553387 commit 6b531b9
Show file tree
Hide file tree
Showing 147 changed files with 18,133 additions and 130 deletions.
17 changes: 14 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,20 @@ status: check-fleet
stop: check-fleet
$(FLEETCTL) stop -block-attempts=600 $(strip $(call deis_units,launched,active))

tests:
cd test && bundle install && bundle exec rake
test: test-components test-integration

test-components:
@$(foreach C,$(ALL_COMPONENTS), \
echo \\nTesting deis/$(C) ; \
$(MAKE) -C $(C) test ; \
)

test-integration:
$(MAKE) -C tests/ test

test-smoke:
$(MAKE) -C tests/ test-smoke

uninstall: check-fleet stop
$(FLEETCTL) unload $(call deis_units,launched,.)
$(FLEETCTL) unload -block-attempts=600 $(call deis_units,launched,.)
$(FLEETCTL) destroy $(strip $(call deis_units,.,.))
8 changes: 8 additions & 0 deletions builder/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,11 @@ clean: uninstall

full-clean: clean
$(call ssh_all,'sudo docker rmi deis/builder')

test: test-unit test-functional

test-unit:
@echo no unit tests

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v -timeout 15m ./tests/...
67 changes: 67 additions & 0 deletions builder/tests/builderComponent_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package verbose

import (
"fmt"
"testing"
"time"

"github.com/deis/deis/tests/dockercliutils"
"github.com/deis/deis/tests/etcdutils"
"github.com/deis/deis/tests/utils"
)

func runDeisBuilderTest(
t *testing.T, testSessionUID string, etcdPort string, servicePort string) {
cli, stdout, stdoutPipe := dockercliutils.GetNewClient()
done := make(chan bool, 1)
dockercliutils.BuildDockerfile(t, "../", "deis/builder:"+testSessionUID)
dockercliutils.RunDeisDataTest(t, "--name", "deis-builder-data",
"-v", "/var/lib/docker", "deis/base", "/bin/true")
//docker run --name deis-builder -p 2223:22 -e PUBLISH=22
// -e HOST=${COREOS_PRIVATE_IPV4} -e PORT=2223
// --volumes-from deis-builder-data --privileged deis/builder
IPAddress := utils.GetHostIPAddress()
done <- true
go func() {
<-done
dockercliutils.RunContainer(t, cli, "--name",
"deis-builder-"+testSessionUID,
"-p", servicePort+":22",
"-e", "PUBLISH=22",
"-e", "STORAGE_DRIVER=devicemapper",
"-e", "HOST="+IPAddress,
"-e", "ETCD_PORT="+etcdPort,
"-e", "PORT="+servicePort,
"--volumes-from", "deis-builder-data",
"--privileged", "deis/builder:"+testSessionUID)
}()
time.Sleep(5000 * time.Millisecond)
dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running")
}

func TestBuild(t *testing.T) {
setkeys := []string{"/deis/registry/protocol",
"deis/registry/host",
"/deis/registry/port",
"/deis/cache/host",
"/deis/cache/port"}
setdir := []string{"/deis/controller",
"/deis/cache",
"/deis/database",
"/deis/registry",
"/deis/domains"}
var testSessionUID = utils.NewUuid()
fmt.Println("UUID for the session Builder Test :" + testSessionUID)
etcdPort := utils.GetRandomPort()
servicePort := utils.GetRandomPort()
dockercliutils.RunEtcdTest(t, testSessionUID, etcdPort)
Builderhandler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
etcdutils.Publishvalues(t, Builderhandler)
fmt.Println("starting Builder Component test")
runDeisBuilderTest(t, testSessionUID, etcdPort, servicePort)
// TODO: builder needs a few seconds to wake up here--fixme!
time.Sleep(5000 * time.Millisecond)
dockercliutils.DeisServiceTest(
t, "deis-builder-"+testSessionUID, servicePort, "tcp")
dockercliutils.ClearTestSession(t, testSessionUID)
}
8 changes: 8 additions & 0 deletions cache/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,11 @@ clean: uninstall

full-clean: clean
$(call ssh_all,'sudo docker rmi deis/cache')

test: test-unit test-functional

test-unit:
@echo no unit tests

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v ./tests/...
43 changes: 43 additions & 0 deletions cache/tests/cacheComponent_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package verbose

import (
"fmt"
"testing"

"github.com/deis/deis/tests/dockercliutils"
"github.com/deis/deis/tests/utils"
)

func runDeisCacheTest(t *testing.T, testSessionUID string, etcdPort string, servicePort string) {
cli, stdout, stdoutPipe := dockercliutils.GetNewClient()
done := make(chan bool, 1)
dockercliutils.BuildDockerfile(t, "../", "deis/cache:"+testSessionUID)
IPAddress := utils.GetHostIPAddress()
done <- true
go func() {
<-done
//docker run --name deis-cache -p 6379:6379 -e PUBLISH=6379
// -e HOST=${COREOS_PRIVATE_IPV4} deis/cache
dockercliutils.RunContainer(t, cli, "--name",
"deis-cache-"+testSessionUID,
"-p", servicePort+":6379",
"-e", "PUBLISH="+servicePort,
"-e", "HOST="+IPAddress,
"-e", "ETCD_PORT="+etcdPort,
"deis/cache:"+testSessionUID)
}()
dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "started")
}

func TestBuild(t *testing.T) {
var testSessionUID = utils.NewUuid()
fmt.Println("UUID for the session Cache Test :" + testSessionUID)
etcdPort := utils.GetRandomPort()
servicePort := utils.GetRandomPort()
dockercliutils.RunEtcdTest(t, testSessionUID, etcdPort)
fmt.Println("starting cache component test:")
runDeisCacheTest(t, testSessionUID, etcdPort, servicePort)
dockercliutils.DeisServiceTest(
t, "deis-cache-"+testSessionUID, servicePort, "tcp")
dockercliutils.ClearTestSession(t, testSessionUID)
}
13 changes: 10 additions & 3 deletions controller/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@ clean: uninstall
full-clean: clean
$(call ssh_all,'sudo docker rmi deis/controller')

test:
python manage.py test --noinput api

runserver:
python manage.py runserver

Expand All @@ -46,3 +43,13 @@ coverage:

flake8:
flake8

test: test-unit test-functional

test-unit:
@if [ ! -d venv ]; then virtualenv venv; fi
venv/bin/pip install -q -r requirements.txt
venv/bin/python manage.py test --noinput api

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v ./tests/...
63 changes: 63 additions & 0 deletions controller/tests/controllerComponent_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package verbose

import (
"fmt"
"testing"
"time"

"github.com/deis/deis/tests/dockercliutils"
"github.com/deis/deis/tests/etcdutils"
"github.com/deis/deis/tests/mockserviceutils"
"github.com/deis/deis/tests/utils"
)

func runDeisControllerTest(t *testing.T, testSessionUID string, etcdPort string, servicePort string) {
cli, stdout, stdoutPipe := dockercliutils.GetNewClient()
done := make(chan bool, 1)
dockercliutils.BuildDockerfile(t, "../", "deis/controller:"+testSessionUID)
//docker run --name deis-controller -p 8000:8000 -e PUBLISH=8000
// -e HOST=${COREOS_PRIVATE_IPV4} --volumes-from=deis-logger deis/controller
IPAddress := utils.GetHostIPAddress()
done <- true
go func() {
<-done
dockercliutils.RunContainer(t, cli, "--name",
"deis-controller-"+testSessionUID,
"-p", servicePort+":8000",
"-e", "PUBLISH="+servicePort,
"-e", "HOST="+IPAddress,
"-e", "ETCD_PORT="+etcdPort,
"deis/controller:"+testSessionUID)
}()
time.Sleep(5000 * time.Millisecond)
dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "Booting")

}

func TestBuild(t *testing.T) {
setkeys := []string{"/deis/registry/protocol",
"deis/registry/host",
"/deis/registry/port",
"/deis/cache/host",
"/deis/cache/port"}
setdir := []string{"/deis/controller",
"/deis/cache",
"/deis/database",
"/deis/registry",
"/deis/domains"}
var testSessionUID = utils.NewUuid()
fmt.Println("UUID for the session Controller Test :" + testSessionUID)
etcdPort := utils.GetRandomPort()
servicePort := utils.GetRandomPort()
dbPort := utils.GetRandomPort()
dockercliutils.RunEtcdTest(t, testSessionUID, etcdPort)
fmt.Println("starting controller test:")
Controllerhandler := etcdutils.InitetcdValues(setdir, setkeys, etcdPort)
etcdutils.Publishvalues(t, Controllerhandler)
mockserviceutils.RunMockDatabase(t, testSessionUID, etcdPort, dbPort)
fmt.Println("starting Controller component test")
runDeisControllerTest(t, testSessionUID, etcdPort, servicePort)
dockercliutils.DeisServiceTest(
t, "deis-controller-"+testSessionUID, servicePort, "http")
dockercliutils.ClearTestSession(t, testSessionUID)
}
8 changes: 8 additions & 0 deletions database/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,11 @@ clean: uninstall

full-clean: clean
$(call ssh_all,'sudo docker rmi deis/database')

test: test-unit test-functional

test-unit:
@echo no unit tests

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v ./tests/...
48 changes: 48 additions & 0 deletions database/tests/databaseComponent_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package verbose

import (
"fmt"
"testing"

"github.com/deis/deis/tests/dockercliutils"
"github.com/deis/deis/tests/utils"
)

func runDeisDatabaseTest(
t *testing.T, testSessionUID string, etcdPort string, servicePort string) {
cli, stdout, stdoutPipe := dockercliutils.GetNewClient()
done := make(chan bool, 1)
dockercliutils.BuildDockerfile(t, "../", "deis/database:"+testSessionUID)
dockercliutils.RunDeisDataTest(t, "--name", "deis-database-data",
"-v", "/var/lib/postgresql", "deis/base", "true")
IPAddress := utils.GetHostIPAddress()
done <- true
go func() {
<-done
//docker run --name deis-database -p 5432:5432 -e PUBLISH=5432
// -e HOST=${COREOS_PRIVATE_IPV4}
// --volumes-from deis-database-data deis/database
dockercliutils.RunContainer(t, cli, "--name",
"deis-database-"+testSessionUID,
"-p", servicePort+":5432",
"-e", "PUBLISH="+servicePort,
"-e", "HOST="+IPAddress,
"-e", "ETCD_PORT="+etcdPort,
"--volumes-from", "deis-database-data",
"deis/database:"+testSessionUID)
}()
dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "deis-database running")
}

func TestBuild(t *testing.T) {
var testSessionUID = utils.NewUuid()
fmt.Println("UUID for the session Cache Test :" + testSessionUID)
etcdPort := utils.GetRandomPort()
servicePort := utils.GetRandomPort()
dockercliutils.RunEtcdTest(t, testSessionUID, etcdPort)
fmt.Println("starting Database component test:")
runDeisDatabaseTest(t, testSessionUID, etcdPort, servicePort)
dockercliutils.DeisServiceTest(
t, "deis-database-"+testSessionUID, servicePort, "tcp")
dockercliutils.ClearTestSession(t, testSessionUID)
}
8 changes: 8 additions & 0 deletions logger/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,11 @@ clean: uninstall

full-clean: clean
$(call ssh_all,'sudo docker rmi deis/logger')

test: test-unit test-functional

test-unit:
@echo no unit tests

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v ./tests/...
45 changes: 45 additions & 0 deletions logger/tests/loggerComponent_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package verbose

import (
"fmt"
"testing"

"github.com/deis/deis/tests/dockercliutils"
"github.com/deis/deis/tests/utils"
)

func runDeisLoggerTest(
t *testing.T, testSessionUID string, etcdPort string, servicePort string) {
cli, stdout, stdoutPipe := dockercliutils.GetNewClient()
done := make(chan bool, 1)
dockercliutils.BuildDockerfile(t, "../", "deis/logger:"+testSessionUID)
dockercliutils.RunDeisDataTest(t, "--name", "deis-logger-data",
"-v", "/var/log/deis", "deis/base", "true")
IPAddress := utils.GetHostIPAddress()
done <- true
go func() {
<-done
dockercliutils.RunContainer(t, cli,
"--name", "deis-logger-"+testSessionUID,
"-p", servicePort+":514/udp",
"-e", "PUBLISH="+servicePort,
"-e", "HOST="+IPAddress,
"-e", "ETCD_PORT="+etcdPort,
"--volumes-from", "deis-logger-data",
"deis/logger:"+testSessionUID)
}()
dockercliutils.PrintToStdout(t, stdout, stdoutPipe, "deis-logger running")
}

func TestBuild(t *testing.T) {
var testSessionUID = utils.NewUuid()
etcdPort := utils.GetRandomPort()
servicePort := utils.GetRandomPort()
fmt.Println("UUID for the session logger Test :" + testSessionUID)
dockercliutils.RunEtcdTest(t, testSessionUID, etcdPort)
fmt.Println("starting logger component test:")
runDeisLoggerTest(t, testSessionUID, etcdPort, servicePort)
dockercliutils.DeisServiceTest(
t, "deis-logger-"+testSessionUID, servicePort, "udp")
dockercliutils.ClearTestSession(t, testSessionUID)
}
2 changes: 2 additions & 0 deletions registry/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# test-unit temporary files
test-unit.tmp/
3 changes: 2 additions & 1 deletion registry/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ FROM deis/base:latest
MAINTAINER Gabriel Monroy <gabriel@opdemand.com>

# install required packages (copied from dotcloud/docker-registry Dockerfile)
RUN sed -i 's/main$/main universe/' /etc/apt/sources.list && apt-get update
RUN sed -i 's/main$/main universe/' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y git-core build-essential python-dev \
libevent-dev python-openssl liblzma-dev wget

Expand Down
16 changes: 16 additions & 0 deletions registry/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,19 @@ clean: uninstall

full-clean: clean
$(call ssh_all,'sudo docker rmi deis/registry')

test: test-unit test-functional

test-unit:
@if [ ! -d test-unit.tmp ]; then \
git clone -b 0.6.8 https://github.com/dotcloud/docker-registry test-unit.tmp; \
fi
@if [ ! -d venv ]; then virtualenv venv; fi
venv/bin/pip install -q -r test-unit.tmp/requirements.txt
venv/bin/pip install -q -r test-unit.tmp/test-requirements.txt
cd test-unit.tmp && \
DOCKER_REGISTRY_CONFIG=config_test.yml SETTINGS_FLAVOR=test PYTHONPATH=test \
../venv/bin/python -m unittest discover -s test

test-functional:
GOPATH=$(CURDIR)/../tests/_vendor:$(GOPATH) go test -v ./tests/...
Loading

0 comments on commit 6b531b9

Please sign in to comment.