浏览代码

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 年之前
父节点
当前提交
96707bc600
共有 4 个文件被更改,包括 18 次插入6 次删除
  1. 1 0
      Makefile
  2. 15 5
      hack/make/.integration-test-helpers
  3. 1 1
      hack/make/test-integration
  4. 1 0
      integration/service/inspect_test.go

+ 1 - 0
Makefile

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

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

@@ -8,22 +8,32 @@
 
 source "$SCRIPTDIR/make/.go-autogen"
 
+# Set defaults
 : ${TEST_REPEAT:=1}
+: ${TESTFLAGS:=}
+: ${TESTDEBUG:=}
 
-integration_api_dirs=("$(
+integration_api_dirs=${TEST_INTEGRATION_DIR:-"$(
 	find ./integration -type d |
-	grep -vE '^(./integration$|./integration/util)')")
+	grep -vE '^(./integration$|./integration/util)')"}
 
 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"
 	for dir in $integration_api_dirs; do
-		(
+		if ! (
 			cd $dir
 			echo "Running $PWD"
 			test_env ./test.main $flags
-		)
+		); then exit 1; fi
 	done
+}
 
+run_test_integration_legacy_suites() {
 	(
 		flags="-check.v -check.timeout=${TIMEOUT} -test.timeout=360m $TESTFLAGS"
 		cd integration-cli
@@ -33,7 +43,7 @@ run_test_integration() {
 }
 
 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"
 		return
 	fi

+ 1 - 1
hack/make/test-integration

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

+ 1 - 0
integration/service/inspect_test.go

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