Skip to content

Commit

Permalink
integration-cli/TestBuildAddTar: generate context from test
Browse files Browse the repository at this point in the history
Docker-DCO-1.1-Signed-off-by: Johan Euphrosine <proppy@google.com> (github: proppy)
  • Loading branch information
proppy committed Jul 21, 2014
1 parent 3051933 commit 24c00c8
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 5 deletions.
Binary file not shown.
50 changes: 45 additions & 5 deletions integration-cli/docker_cli_build_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package main

import (
"archive/tar"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
Expand Down Expand Up @@ -1748,11 +1751,48 @@ func TestBuildAddTar(t *testing.T) {
name := "testbuildaddtar"
defer deleteImages(name)

buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildAddTar")
buildCmd := exec.Command(dockerBinary, "build", "-t", name, ".")
buildCmd.Dir = buildDirectory
out, _, err := runCommandWithOutput(buildCmd)
errorOut(err, t, fmt.Sprintf("build failed to complete for TestBuildAddTar/%s: %v", n, err))
ctx := func() *FakeContext {
tmpDir, err := ioutil.TempDir("", "fake-context")
testTar, err := os.Create(filepath.Join(tmpDir, "test.tar"))
if err != nil {
t.Fatalf("failed to create test.tar archive: %v", err)
}
defer testTar.Close()

tw := tar.NewWriter(testTar)

if err := tw.WriteHeader(&tar.Header{
Name: "test/foo",
Size: 2,
}); err != nil {
t.Fatalf("failed to write tar file header: %v", err)
}
if _, err := tw.Write([]byte("Hi")); err != nil {
t.Fatalf("failed to write tar file content: %v", err)
}
if err := tw.Close(); err != nil {
t.Fatalf("failed to close tar archive: %v", err)
}

dockerfile, err := os.Open(filepath.Join(workingDirectory, "build_tests", "TestBuildAddTar", "Dockerfile"))
if err != nil {
t.Fatalf("failed to open source dockerfile: %v", err)
}
defer dockerfile.Close()
dest, err := os.Create(filepath.Join(tmpDir, "Dockerfile"))
if err != nil {
t.Fatalf("failed to open destination dockerfile: %v", err)
}
if _, err := io.Copy(dest, dockerfile); err != nil {
t.Fatalf("failed top copy dockerfile: %v", err)
}
defer dest.Close()
return &FakeContext{Dir: tmpDir}
}()

if _, err := buildImageFromContext(name, ctx, true); err != nil {
t.Fatalf("build failed to complete for TestBuildAddTar: %v", err)
}

logDone("build - ADD tar")
}

0 comments on commit 24c00c8

Please sign in to comment.