diff --git a/integration-cli/build_tests/TestBuildAddTar/1/Dockerfile b/integration-cli/build_tests/TestBuildAddTar/1/Dockerfile new file mode 100644 index 0000000000..2091b0e4d9 --- /dev/null +++ b/integration-cli/build_tests/TestBuildAddTar/1/Dockerfile @@ -0,0 +1,3 @@ +FROM busybox +ADD test.tar /test.tar +RUN cat /test.tar/test/foo diff --git a/integration-cli/build_tests/TestBuildAddTar/1/test.tar b/integration-cli/build_tests/TestBuildAddTar/1/test.tar new file mode 100644 index 0000000000..33639c6476 Binary files /dev/null and b/integration-cli/build_tests/TestBuildAddTar/1/test.tar differ diff --git a/integration-cli/build_tests/TestBuildAddTar/2/Dockerfile b/integration-cli/build_tests/TestBuildAddTar/2/Dockerfile new file mode 100644 index 0000000000..830e9ddbee --- /dev/null +++ b/integration-cli/build_tests/TestBuildAddTar/2/Dockerfile @@ -0,0 +1,3 @@ +FROM busybox +ADD test.tar / +RUN cat /test/foo diff --git a/integration-cli/build_tests/TestBuildAddTar/2/test.tar b/integration-cli/build_tests/TestBuildAddTar/2/test.tar new file mode 100644 index 0000000000..33639c6476 Binary files /dev/null and b/integration-cli/build_tests/TestBuildAddTar/2/test.tar differ diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index df0cfcc88e..039423e06c 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/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) + } +}