From 08a3014c755dfcda78f11180af7b7061242f3d1e Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 18:18:19 +0400 Subject: [PATCH 1/9] Rewrite TestBuildSixtySteps to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 3824ec62e81d78db4dd36ffd64b17ef4c620b47f Component: engine --- .../TestBuildSixtySteps/Dockerfile | 60 ------------------- .../build_tests/TestBuildSixtySteps/foo | 1 - .../integration-cli/docker_cli_build_test.go | 20 ++++--- 3 files changed, 11 insertions(+), 70 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestBuildSixtySteps/Dockerfile delete mode 100644 components/engine/integration-cli/build_tests/TestBuildSixtySteps/foo diff --git a/components/engine/integration-cli/build_tests/TestBuildSixtySteps/Dockerfile b/components/engine/integration-cli/build_tests/TestBuildSixtySteps/Dockerfile deleted file mode 100644 index 6a2bcab301..0000000000 --- a/components/engine/integration-cli/build_tests/TestBuildSixtySteps/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -FROM scratch -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / -ADD foo / diff --git a/components/engine/integration-cli/build_tests/TestBuildSixtySteps/foo b/components/engine/integration-cli/build_tests/TestBuildSixtySteps/foo deleted file mode 100644 index 7898192261..0000000000 --- a/components/engine/integration-cli/build_tests/TestBuildSixtySteps/foo +++ /dev/null @@ -1 +0,0 @@ -a diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 95424b69cc..68b8b8e188 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -46,16 +46,18 @@ func TestBuildCacheADD(t *testing.T) { } func TestBuildSixtySteps(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestBuildSixtySteps") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "foobuildsixtysteps", ".") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "foobuildsixtysteps" + defer deleteImages(name) + ctx, err := fakeContext("FROM scratch\n"+strings.Repeat("ADD foo /\n", 60), + map[string]string{ + "foo": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("foobuildsixtysteps") - logDone("build - build an image with sixty build steps") } From 2e55c2075c22041cae0dde8882953d74efb1d9cf Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 18:23:20 +0400 Subject: [PATCH 2/9] Rewrite TestAddSingleFileToRoot to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 682fbe0134180488c1a7f2b755b6bb9ae09e9448 Component: engine --- .../TestAdd/SingleFileToRoot/Dockerfile | 9 ----- .../integration-cli/docker_cli_build_test.go | 37 ++++++++----------- 2 files changed, 16 insertions(+), 30 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToRoot/Dockerfile diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToRoot/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToRoot/Dockerfile deleted file mode 100644 index 561dbe9c55..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToRoot/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN touch /exists -RUN chown dockerio.dockerio /exists -ADD test_file / -RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /test_file | awk '{print $1}') = '-rw-r--r--' ] -RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 68b8b8e188..6dafa70d95 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -62,31 +62,26 @@ func TestBuildSixtySteps(t *testing.T) { } func TestBuildAddSingleFileToRoot(t *testing.T) { - testDirName := "SingleFileToRoot" - sourceDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd", testDirName) - buildDirectory, err := ioutil.TempDir("", "test-build-add") - defer os.RemoveAll(buildDirectory) - - err = copyWithCP(sourceDirectory, buildDirectory) - if err != nil { - t.Fatalf("failed to copy files to temporary directory: %s", err) - } - - buildDirectory = filepath.Join(buildDirectory, testDirName) - f, err := os.OpenFile(filepath.Join(buildDirectory, "test_file"), os.O_CREATE, 0644) + name := "testaddimg" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN touch /exists +RUN chown dockerio.dockerio /exists +ADD test_file / +RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /test_file | awk '{print $1}') = '-rw-r--r--' ] +RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, + map[string]string{ + "test_file": "test1", + }) if err != nil { t.Fatal(err) } - f.Close() - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", ".") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - logDone("build - add single file to root") } From 1fda8e299f66ad1854e0a72555e0a7fdf8baee5b Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 18:51:42 +0400 Subject: [PATCH 3/9] Rewrite TestAddSingleFileToWorkdir to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 5e2ea69606850cf2da1c50ec4bc32c981999aafd Component: engine --- .../TestAdd/SingleFileToWorkdir/Dockerfile | 2 - .../integration-cli/docker_cli_build_test.go | 37 +++++++++---------- 2 files changed, 18 insertions(+), 21 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToWorkdir/Dockerfile diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToWorkdir/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToWorkdir/Dockerfile deleted file mode 100644 index 3f076718f2..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToWorkdir/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM busybox -ADD test_file . diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 6dafa70d95..80b08c76b5 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -87,29 +87,28 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, // Issue #3960: "ADD src ." hangs func TestBuildAddSingleFileToWorkdir(t *testing.T) { - testDirName := "SingleFileToWorkdir" - sourceDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd", testDirName) - buildDirectory, err := ioutil.TempDir("", "test-build-add") - defer os.RemoveAll(buildDirectory) - - err = copyWithCP(sourceDirectory, buildDirectory) - if err != nil { - t.Fatalf("failed to copy files to temporary directory: %s", err) - } - - buildDirectory = filepath.Join(buildDirectory, testDirName) - f, err := os.OpenFile(filepath.Join(buildDirectory, "test_file"), os.O_CREATE, 0644) + name := "testaddsinglefiletoworkdir" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +ADD test_file .`, + map[string]string{ + "test_file": "test1", + }) if err != nil { t.Fatal(err) } - f.Close() - _, exitCode, err := dockerCmdInDirWithTimeout(5*time.Second, buildDirectory, "build", "-t", "testaddimg", ".") - if err != nil || exitCode != 0 { - t.Fatalf("build failed: %s", err) + done := make(chan struct{}) + go func() { + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) + } + close(done) + }() + select { + case <-time.After(5 * time.Second): + t.Fatal("Build with adding to workdir timed out") + case <-done: } - - deleteImages("testaddimg") - logDone("build - add single file to workdir") } From 6826b77d3fc0899962651992b169d651e1698b5d Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 19:24:14 +0400 Subject: [PATCH 4/9] Rewrite TestAddSingleFileToExistDir to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 6bb44b6d7441d1a2b7136063a73c31c946be625f Component: engine --- .../TestAdd/SingleFileToExistDir/Dockerfile | 10 ------- .../TestAdd/SingleFileToExistDir/test_file | 0 .../integration-cli/docker_cli_build_test.go | 29 +++++++++++++------ 3 files changed, 20 insertions(+), 19 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/Dockerfile delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/test_file diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/Dockerfile deleted file mode 100644 index fefbd09f0c..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN mkdir /exists -RUN touch /exists/exists_file -RUN chown -R dockerio.dockerio /exists -ADD test_file /exists/ -RUN [ $(ls -l / | grep exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] -RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /exists/exists_file | awk '{print $3":"$4}') = 'dockerio:dockerio' ] diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/test_file b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToExistDir/test_file deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 80b08c76b5..71db2eee54 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -113,16 +113,27 @@ ADD test_file .`, } func TestBuildAddSingleFileToExistDir(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", "SingleFileToExistDir") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "testaddsinglefiletoexistdir" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN mkdir /exists +RUN touch /exists/exists_file +RUN chown -R dockerio.dockerio /exists +ADD test_file /exists/ +RUN [ $(ls -l / | grep exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] +RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /exists/exists_file | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, + map[string]string{ + "test_file": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - logDone("build - add single file to existing dir") } From a1258eabee3a443396ff099d81e005dc04fa9cf2 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 19:41:13 +0400 Subject: [PATCH 5/9] Rewrite TestAddSingleFileToNonExistDir to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 139b6ed3aa81d5d3c6ceaacc5041afca4d39d75a Component: engine --- .../SingleFileToNonExistDir/Dockerfile | 9 ------ .../TestAdd/SingleFileToNonExistDir/test_file | 0 .../integration-cli/docker_cli_build_test.go | 29 ++++++++++++------- 3 files changed, 19 insertions(+), 19 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/Dockerfile delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/test_file diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/Dockerfile deleted file mode 100644 index 661990b7f4..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN touch /exists -RUN chown dockerio.dockerio /exists -ADD test_file /test_dir/ -RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] diff --git a/components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/test_file b/components/engine/integration-cli/build_tests/TestAdd/SingleFileToNonExistDir/test_file deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 71db2eee54..147d28ed7a 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -198,17 +198,26 @@ func TestBuildCopyMultipleFilesToFile(t *testing.T) { } func TestBuildAddSingleFileToNonExistDir(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", "SingleFileToNonExistDir") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "testaddsinglefiletononexistdir" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN touch /exists +RUN chown dockerio.dockerio /exists +ADD test_file /test_dir/ +RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, + map[string]string{ + "test_file": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - - logDone("build - add single file to non-existing dir") } func TestBuildAddDirContentToRoot(t *testing.T) { From 842da563684f42e152847e967f6e10d673927375 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 20:47:01 +0400 Subject: [PATCH 6/9] Rewrite TestBuildAddDirContentToRoot to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 2d802d7f23ad0d9f59abd8144f2bad094e338339 Component: engine --- .../TestAdd/DirContentToRoot/Dockerfile | 8 ------ .../DirContentToRoot/test_dir/test_file | 0 .../integration-cli/docker_cli_build_test.go | 27 ++++++++++++------- 3 files changed, 18 insertions(+), 17 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/Dockerfile delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/test_dir/test_file diff --git a/components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/Dockerfile deleted file mode 100644 index 03a9c052fd..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN touch /exists -RUN chown dockerio.dockerio exists -ADD test_dir / -RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] diff --git a/components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/test_dir/test_file b/components/engine/integration-cli/build_tests/TestAdd/DirContentToRoot/test_dir/test_file deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 147d28ed7a..6e7a271435 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -221,16 +221,25 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, } func TestBuildAddDirContentToRoot(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", "DirContentToRoot") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "testadddircontenttoroot" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN touch /exists +RUN chown dockerio.dockerio exists +ADD test_dir / +RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, + map[string]string{ + "test_dir/test_file": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - logDone("build - add directory contents to root") } From 82b1f11dadeef72207b03498e5026a4d19c46936 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 21:21:39 +0400 Subject: [PATCH 7/9] Rewrite TestBuildAddDirContentToExistDir to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: c58391bbd03a6dd71096fb2d7541e10fa9123e27 Component: engine --- .../TestAdd/DirContentToExistDir/Dockerfile | 10 ------- .../DirContentToExistDir/test_dir/test_file | 0 .../integration-cli/docker_cli_build_test.go | 29 +++++++++++++------ 3 files changed, 20 insertions(+), 19 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/Dockerfile delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/test_dir/test_file diff --git a/components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/Dockerfile deleted file mode 100644 index 6ab0e98f49..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN mkdir /exists -RUN touch /exists/exists_file -RUN chown -R dockerio.dockerio /exists -ADD test_dir/ /exists/ -RUN [ $(ls -l / | grep exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] -RUN [ $(ls -l /exists/exists_file | awk '{print $3":"$4}') = 'dockerio:dockerio' ] -RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ] diff --git a/components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/test_dir/test_file b/components/engine/integration-cli/build_tests/TestAdd/DirContentToExistDir/test_dir/test_file deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 6e7a271435..fbc5feea83 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -244,16 +244,27 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, } func TestBuildAddDirContentToExistDir(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", "DirContentToExistDir") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "testadddircontenttoexistdir" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN mkdir /exists +RUN touch /exists/exists_file +RUN chown -R dockerio.dockerio /exists +ADD test_dir/ /exists/ +RUN [ $(ls -l / | grep exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] +RUN [ $(ls -l /exists/exists_file | awk '{print $3":"$4}') = 'dockerio:dockerio' ] +RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ]`, + map[string]string{ + "test_dir/test_file": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - logDone("build - add directory contents to existing dir") } From 02962cb6cede942ee75a51f9647412e9688a72d7 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 21:26:51 +0400 Subject: [PATCH 8/9] Rewrite TestBuildAddEtcToRoot to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 570f1153b9b09fc8b23b86a15fd6f37c2f873a67 Component: engine --- .../build_tests/TestAdd/EtcToRoot/Dockerfile | 2 -- .../integration-cli/docker_cli_build_test.go | 21 ++++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/EtcToRoot/Dockerfile diff --git a/components/engine/integration-cli/build_tests/TestAdd/EtcToRoot/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/EtcToRoot/Dockerfile deleted file mode 100644 index 58c75b00f3..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/EtcToRoot/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM scratch -ADD . / diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index fbc5feea83..54ceb4ba81 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -301,16 +301,21 @@ func TestBuildAddWholeDirToRoot(t *testing.T) { logDone("build - add whole directory to root") } +// Testing #5941 func TestBuildAddEtcToRoot(t *testing.T) { - buildDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd") - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", "EtcToRoot") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + name := "testaddetctoroot" + defer deleteImages(name) + ctx, err := fakeContext(`FROM scratch +ADD . /`, + map[string]string{ + "etc/test_file": "test1", + }) + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") logDone("build - add etc directory to root") } From 733cfbef1c5d80e896b3033643b826d47e68faa1 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 21:36:43 +0400 Subject: [PATCH 9/9] Rewrite TestBuildAddWholeDirToRoot to not use fixtures Signed-off-by: Alexandr Morozov Upstream-commit: 0c899cefdd2f1826d16bd979651003a9502888e9 Component: engine --- .../TestAdd/WholeDirToRoot/Dockerfile | 11 ----- .../integration-cli/docker_cli_build_test.go | 43 ++++++++----------- 2 files changed, 18 insertions(+), 36 deletions(-) delete mode 100644 components/engine/integration-cli/build_tests/TestAdd/WholeDirToRoot/Dockerfile diff --git a/components/engine/integration-cli/build_tests/TestAdd/WholeDirToRoot/Dockerfile b/components/engine/integration-cli/build_tests/TestAdd/WholeDirToRoot/Dockerfile deleted file mode 100644 index 03e9ac0b1c..0000000000 --- a/components/engine/integration-cli/build_tests/TestAdd/WholeDirToRoot/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM busybox -RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd -RUN echo 'dockerio:x:1001:' >> /etc/group -RUN touch /exists -RUN chown dockerio.dockerio exists -ADD test_dir /test_dir -RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l / | grep test_dir | awk '{print $1}') = 'drwxr-xr-x' ] -RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ] -RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '-rw-r--r--' ] -RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ] diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 54ceb4ba81..1ecaeb8e1f 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -269,35 +269,28 @@ RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ]`, } func TestBuildAddWholeDirToRoot(t *testing.T) { - testDirName := "WholeDirToRoot" - sourceDirectory := filepath.Join(workingDirectory, "build_tests", "TestAdd", testDirName) - buildDirectory, err := ioutil.TempDir("", "test-build-add") - defer os.RemoveAll(buildDirectory) - - err = copyWithCP(sourceDirectory, buildDirectory) - if err != nil { - t.Fatalf("failed to copy files to temporary directory: %s", err) - } - - buildDirectory = filepath.Join(buildDirectory, testDirName) - test_dir := filepath.Join(buildDirectory, "test_dir") - if err := os.MkdirAll(test_dir, 0755); err != nil { - t.Fatal(err) - } - f, err := os.OpenFile(filepath.Join(test_dir, "test_file"), os.O_CREATE, 0644) + name := "testaddwholedirtoroot" + defer deleteImages(name) + ctx, err := fakeContext(`FROM busybox +RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd +RUN echo 'dockerio:x:1001:' >> /etc/group +RUN touch /exists +RUN chown dockerio.dockerio exists +ADD test_dir /test_dir +RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l / | grep test_dir | awk '{print $1}') = 'drwxr-xr-x' ] +RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ] +RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '-rw-r--r--' ] +RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, + map[string]string{ + "test_dir/test_file": "test1", + }) if err != nil { t.Fatal(err) } - f.Close() - out, exitCode, err := dockerCmdInDir(t, buildDirectory, "build", "-t", "testaddimg", ".") - errorOut(err, t, fmt.Sprintf("build failed to complete: %v %v", out, err)) - - if err != nil || exitCode != 0 { - t.Fatal("failed to build the image") + if _, err := buildImageFromContext(name, ctx, true); err != nil { + t.Fatal(err) } - - deleteImages("testaddimg") - logDone("build - add whole directory to root") }