Browse Source

Fix integration suite and propagate failures

Failures from the integration suite were not propagating to the outter shell
for some reason. Handle the failure with an if exit 1.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 7 năm trước cách đây
mục cha
commit
96707bc600

+ 1 - 0
Makefile

@@ -35,6 +35,7 @@ DOCKER_ENVS := \
 	-e DOCKER_REMAP_ROOT \
 	-e DOCKER_REMAP_ROOT \
 	-e DOCKER_STORAGE_OPTS \
 	-e DOCKER_STORAGE_OPTS \
 	-e DOCKER_USERLANDPROXY \
 	-e DOCKER_USERLANDPROXY \
+	-e TEST_INTEGRATION_DIR \
 	-e TESTDIRS \
 	-e TESTDIRS \
 	-e TESTFLAGS \
 	-e TESTFLAGS \
 	-e TIMEOUT \
 	-e TIMEOUT \

+ 15 - 5
hack/make/.integration-test-helpers

@@ -8,22 +8,32 @@
 
 
 source "$SCRIPTDIR/make/.go-autogen"
 source "$SCRIPTDIR/make/.go-autogen"
 
 
+# Set defaults
 : ${TEST_REPEAT:=1}
 : ${TEST_REPEAT:=1}
+: ${TESTFLAGS:=}
+: ${TESTDEBUG:=}
 
 
-integration_api_dirs=("$(
+integration_api_dirs=${TEST_INTEGRATION_DIR:-"$(
 	find ./integration -type d |
 	find ./integration -type d |
-	grep -vE '^(./integration$|./integration/util)')")
+	grep -vE '^(./integration$|./integration/util)')"}
 
 
 run_test_integration() {
 run_test_integration() {
+	[[ "$TESTFLAGS" != *-check.f* ]] && run_test_integration_suites
+	run_test_integration_legacy_suites
+}
+
+run_test_integration_suites() {
 	local flags="-test.v -test.timeout=${TIMEOUT} $TESTFLAGS"
 	local flags="-test.v -test.timeout=${TIMEOUT} $TESTFLAGS"
 	for dir in $integration_api_dirs; do
 	for dir in $integration_api_dirs; do
-		(
+		if ! (
 			cd $dir
 			cd $dir
 			echo "Running $PWD"
 			echo "Running $PWD"
 			test_env ./test.main $flags
 			test_env ./test.main $flags
-		)
+		); then exit 1; fi
 	done
 	done
+}
 
 
+run_test_integration_legacy_suites() {
 	(
 	(
 		flags="-check.v -check.timeout=${TIMEOUT} -test.timeout=360m $TESTFLAGS"
 		flags="-check.v -check.timeout=${TIMEOUT} -test.timeout=360m $TESTFLAGS"
 		cd integration-cli
 		cd integration-cli
@@ -33,7 +43,7 @@ run_test_integration() {
 }
 }
 
 
 build_test_suite_binaries() {
 build_test_suite_binaries() {
-	if [ $DOCKER_INTEGRATION_TESTS_VERIFIED ]; then
+	if [ ${DOCKER_INTEGRATION_TESTS_VERIFIED-} ]; then
 		echo "Skipping building test binaries; as DOCKER_INTEGRATION_TESTS_VERIFIED is set"
 		echo "Skipping building test binaries; as DOCKER_INTEGRATION_TESTS_VERIFIED is set"
 		return
 		return
 	fi
 	fi

+ 1 - 1
hack/make/test-integration

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
-set -e
+set -e -o pipefail
 
 
 source "${MAKEDIR}/.go-autogen"
 source "${MAKEDIR}/.go-autogen"
 source hack/make/.integration-test-helpers
 source hack/make/.integration-test-helpers

+ 1 - 0
integration/service/inspect_test.go

@@ -18,6 +18,7 @@ import (
 )
 )
 
 
 func TestInspect(t *testing.T) {
 func TestInspect(t *testing.T) {
+	defer setupTest(t)()
 	d := newSwarm(t)
 	d := newSwarm(t)
 	defer d.Stop(t)
 	defer d.Stop(t)
 	client, err := request.NewClientForHost(d.Sock())
 	client, err := request.NewClientForHost(d.Sock())