1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Allow tests to be interrupted

Currently when libnetwork tests are run inside a container
you cannot interrupt them in the middle by pressing ctrl-c
even though all the tests run in foreground. Fix this by running
tests by wrapping the make invocation inside the container
with a shell scripts which installs the SIGINT handler.
Without the handler the kernel does not deliver signals
to the process with PID 1(which in this case was make itself)
and hence make could never be interrupted. With this fix
we capture SIGINT in the shell script and re-raise it in the
the child process (which is make) and that makes the make
interruptible.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
Jana Radhakrishnan 2015-09-01 21:48:09 -07:00
parent bcd996f4c3
commit ddfa448536
2 changed files with 20 additions and 9 deletions

View file

@ -3,12 +3,12 @@ SHELL=/bin/bash
build_image=libnetwork-build
dockerargs = --privileged -v $(shell pwd):/go/src/github.com/docker/libnetwork -w /go/src/github.com/docker/libnetwork
container_env = -e "INSIDECONTAINER=-incontainer=true"
docker = docker run --rm ${dockerargs} ${container_env} ${build_image}
docker = docker run --rm -it ${dockerargs} ${container_env} ${build_image}
ciargs = -e "COVERALLS_TOKEN=$$COVERALLS_TOKEN" -e "INSIDECONTAINER=-incontainer=true"
cidocker = docker run ${ciargs} ${dockerargs} golang:1.4
all: ${build_image}.created
${docker} make all-local
${docker} ./wrapmake.sh all-local
all-local: check-local build-local
@ -19,13 +19,13 @@ ${build_image}.created:
touch ${build_image}.created
build: ${build_image}.created
${docker} make build-local
${docker} ./wrapmake.sh build-local
build-local:
$(shell which godep) go build -tags libnetwork_discovery ./...
check: ${build_image}.created
${docker} make check-local
${docker} ./wrapmake.sh check-local
check-code:
@echo "Checking code... "

11
libnetwork/wrapmake.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -e
function raise()
{
kill -$1 0
}
trap "raise SIGINT" SIGINT
make $1