docker: Don't start a container that doesn't exist
authorFam Zheng <famz@redhat.com>
Tue, 19 Jul 2016 13:20:44 +0000 (21:20 +0800)
committerFam Zheng <famz@redhat.com>
Wed, 20 Jul 2016 11:19:43 +0000 (19:19 +0800)
Image building targets are dependencies of test running targets, so when
a docker image doesn't exist, it means it's skipped (due to dependency
checks in pre script). Therefore, skip the test too.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1468934445-32183-10-git-send-email-famz@redhat.com

tests/docker/Makefile.include

index c5546ee..e7f0023 100644 (file)
@@ -105,7 +105,10 @@ docker-run-%: docker-qemu-src
        fi
        $(if $(filter $(TESTS),$(CMD)),$(if $(filter $(IMAGES),$(IMAGE)), \
                $(call quiet-command,\
-                       $(SRC_PATH)/tests/docker/docker.py run $(if $V,,--rm) \
+                       if $(SRC_PATH)/tests/docker/docker.py images \
+                               --format={{.Repository}}:{{.Tag}} | \
+                                       grep -qx qemu:$(IMAGE); then \
+                               $(SRC_PATH)/tests/docker/docker.py run $(if $V,,--rm) \
                                -t \
                                $(if $(DEBUG),-i,--net=none) \
                                -e TARGET_LIST=$(TARGET_LIST) \
@@ -117,6 +120,7 @@ docker-run-%: docker-qemu-src
                                qemu:$(IMAGE) \
                                /var/tmp/qemu/run \
                                $(CMD); \
+                       fi \
                        , "  RUN $(CMD) in $(IMAGE)")))
 
 docker-clean: