浏览代码

Merge pull request #26 from tiborvass/fix-add-tar-test

Tests for ADD tar
Michael Crosby 11 年之前
父节点
当前提交
f2a5b1fc37

+ 3 - 0
integration-cli/build_tests/TestBuildAddTar/1/Dockerfile

@@ -0,0 +1,3 @@
+FROM busybox
+ADD test.tar /test.tar
+RUN cat /test.tar/test/foo

二进制
integration-cli/build_tests/TestBuildAddTar/1/test.tar


+ 3 - 0
integration-cli/build_tests/TestBuildAddTar/2/Dockerfile

@@ -0,0 +1,3 @@
+FROM busybox
+ADD test.tar /
+RUN cat /test/foo

二进制
integration-cli/build_tests/TestBuildAddTar/2/test.tar


+ 32 - 0
integration-cli/docker_cli_build_test.go

@@ -1731,3 +1731,35 @@ RUN [ "$(cat /testfile)" = 'test!' ]`
 	}
 	logDone("build - add and run script")
 }
+
+func TestBuildAddTar(t *testing.T) {
+
+	checkOutput := func(out string) {
+		n := -1
+		x := ""
+		for i, line := range strings.Split(out, "\n") {
+			if strings.HasPrefix(line, "Step 2") {
+				n = i + 2
+				x = line[strings.Index(line, "cat ")+4:]
+			}
+			if i == n {
+				if line != "Hi" {
+					t.Fatalf("Could not find contents of %s (expected 'Hi' got '%s'", x, line)
+				}
+				n = -2
+			}
+		}
+		if n > -2 {
+			t.Fatalf("Could not find contents of %s in build output", x)
+		}
+	}
+
+	for _, n := range []string{"1", "2"} {
+		buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildAddTar", n)
+		buildCmd := exec.Command(dockerBinary, "build", "-t", "testbuildaddtar", ".")
+		buildCmd.Dir = buildDirectory
+		out, _, err := runCommandWithOutput(buildCmd)
+		errorOut(err, t, fmt.Sprintf("build failed to complete for TestBuildAddTar/%s: %v", n, err))
+		checkOutput(out)
+	}
+}