From 69dcf767fd6b4c54c219c20f87b2fdbb173b7f1c Mon Sep 17 00:00:00 2001 From: unclejack Date: Mon, 19 May 2014 19:46:25 +0300 Subject: [PATCH] integcli: test container removal for failed builds Docker-DCO-1.1-Signed-off-by: Cristian Staretu (github: unclejack) --- .../build_tests/TestBuildForceRm/Dockerfile | 3 +++ integration-cli/docker_cli_build_test.go | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 integration-cli/build_tests/TestBuildForceRm/Dockerfile diff --git a/integration-cli/build_tests/TestBuildForceRm/Dockerfile b/integration-cli/build_tests/TestBuildForceRm/Dockerfile new file mode 100644 index 0000000000..8468edd4ce --- /dev/null +++ b/integration-cli/build_tests/TestBuildForceRm/Dockerfile @@ -0,0 +1,3 @@ +FROM busybox +RUN true +RUN thiswillfail diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index c4d6f12925..ff6db58b47 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -207,6 +207,33 @@ func TestBuildWithInaccessibleFilesInContext(t *testing.T) { logDone("build - ADD from context with accessible links must work") } +func TestBuildForceRm(t *testing.T) { + containerCountBefore, err := getContainerCount() + if err != nil { + t.Fatalf("failed to get the container count: %s", err) + } + + buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildForceRm") + buildCmd := exec.Command(dockerBinary, "build", "--force-rm", ".") + buildCmd.Dir = buildDirectory + _, exitCode, err := runCommandWithOutput(buildCmd) + + if err == nil || exitCode == 0 { + t.Fatal("failed to build the image") + } + + containerCountAfter, err := getContainerCount() + if err != nil { + t.Fatalf("failed to get the container count: %s", err) + } + + if containerCountBefore != containerCountAfter { + t.Fatalf("--force-rm shouldn't have left containers behind") + } + + logDone("build - ensure --force-rm doesn't leave containers behind") +} + // TODO: TestCaching // TODO: TestADDCacheInvalidation