From f7987f5c931fa8b341dfd6646806f81e53bb49ee Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Tue, 17 Jun 2014 10:26:42 +0400 Subject: [PATCH] Move TestForbiddenContextPath to integration-cli Docker-DCO-1.1-Signed-off-by: Alexandr Morozov (github: LK4D4) Upstream-commit: 686786f107582c27c69a6f40655c8fc52a8e4d00 Component: engine --- .../integration-cli/docker_cli_build_test.go | 25 ++++++++++ .../engine/integration/buildfile_test.go | 48 ------------------- 2 files changed, 25 insertions(+), 48 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index 1ece73a1b6..06cd0018ec 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -1170,3 +1170,28 @@ func TestBuildEntrypointRunCleanup(t *testing.T) { } logDone("build - cleanup cmd after RUN") } + +func TestBuldForbiddenContextPath(t *testing.T) { + name := "testbuildforbidpath" + defer deleteImages(name) + ctx, err := fakeContext(`FROM scratch + ADD ../../ test/ + `, + map[string]string{ + "test.txt": "test1", + "other.txt": "other", + }) + + defer ctx.Close() + if err != nil { + t.Fatal(err) + } + if _, err := buildImageFromContext(name, ctx, true); err != nil { + if !strings.Contains(err.Error(), "Forbidden path outside the build context: ../../ (/)") { + t.Fatal("Wrong error, must be about forbidden ../../ path") + } + } else { + t.Fatal("Error must not be nil") + } + logDone("build - forbidden context path") +} diff --git a/components/engine/integration/buildfile_test.go b/components/engine/integration/buildfile_test.go index 89412f9580..14fe20b3ed 100644 --- a/components/engine/integration/buildfile_test.go +++ b/components/engine/integration/buildfile_test.go @@ -414,54 +414,6 @@ func buildImage(context testContextTemplate, t *testing.T, eng *engine.Engine, u return image, err } -func TestForbiddenContextPath(t *testing.T) { - eng := NewTestEngine(t) - defer nuke(mkDaemonFromEngine(eng, t)) - srv := mkServerFromEngine(eng, t) - - context := testContextTemplate{` - from {IMAGE} - maintainer dockerio - add ../../ test/ - `, - [][2]string{{"test.txt", "test1"}, {"other.txt", "other"}}, nil} - - httpServer, err := mkTestingFileServer(context.remoteFiles) - if err != nil { - t.Fatal(err) - } - defer httpServer.Close() - - idx := strings.LastIndex(httpServer.URL, ":") - if idx < 0 { - t.Fatalf("could not get port from test http server address %s", httpServer.URL) - } - port := httpServer.URL[idx+1:] - - iIP := eng.Hack_GetGlobalVar("httpapi.bridgeIP") - if iIP == nil { - t.Fatal("Legacy bridgeIP field not set in engine") - } - ip, ok := iIP.(net.IP) - if !ok { - panic("Legacy bridgeIP field in engine does not cast to net.IP") - } - dockerfile := constructDockerfile(context.dockerfile, ip, port) - - buildfile := server.NewBuildFile(srv, ioutil.Discard, ioutil.Discard, false, true, false, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) - _, err = buildfile.Build(context.Archive(dockerfile, t)) - - if err == nil { - t.Log("Error should not be nil") - t.Fail() - } - - if err.Error() != "Forbidden path outside the build context: ../../ (/)" { - t.Logf("Error message is not expected: %s", err.Error()) - t.Fail() - } -} - func TestBuildADDFileNotFound(t *testing.T) { eng := NewTestEngine(t) defer nuke(mkDaemonFromEngine(eng, t))