integration-cli/TestBuildAddTar: generate context from test
Docker-DCO-1.1-Signed-off-by: Johan Euphrosine <proppy@google.com> (github: proppy)
This commit is contained in:
parent
30519330c7
commit
24c00c8508
Binary file not shown.
|
@ -1,7 +1,10 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"archive/tar"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -1748,11 +1751,48 @@ func TestBuildAddTar(t *testing.T) {
|
||||||
name := "testbuildaddtar"
|
name := "testbuildaddtar"
|
||||||
defer deleteImages(name)
|
defer deleteImages(name)
|
||||||
|
|
||||||
buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildAddTar")
|
ctx := func() *FakeContext {
|
||||||
buildCmd := exec.Command(dockerBinary, "build", "-t", name, ".")
|
tmpDir, err := ioutil.TempDir("", "fake-context")
|
||||||
buildCmd.Dir = buildDirectory
|
testTar, err := os.Create(filepath.Join(tmpDir, "test.tar"))
|
||||||
out, _, err := runCommandWithOutput(buildCmd)
|
if err != nil {
|
||||||
errorOut(err, t, fmt.Sprintf("build failed to complete for TestBuildAddTar/%s: %v", n, err))
|
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")
|
logDone("build - ADD tar")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue