From 86faf1e165b8ffa0cb2394b1f5504caa1fa8f718 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 10 Nov 2015 10:14:05 -0800 Subject: [PATCH] Add test for builder cache with root source path Fixes #17827 Signed-off-by: Tonis Tiigi --- integration-cli/docker_cli_build_test.go | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index 979f16a976..0868772b95 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -6408,3 +6408,30 @@ func (s *DockerSuite) TestBuildSymlinkBasename(c *check.C) { c.Assert(out, checker.Matches, "bar") } + +// #17827 +func (s *DockerSuite) TestBuildCacheRootSource(c *check.C) { + testRequires(c, DaemonIsLinux) + name := "testbuildrootsource" + ctx, err := fakeContext(` + FROM busybox + COPY / /data`, + map[string]string{ + "foo": "bar", + }) + c.Assert(err, checker.IsNil) + defer ctx.Close() + + // warm up cache + _, err = buildImageFromContext(name, ctx, true) + c.Assert(err, checker.IsNil) + + // change file, should invalidate cache + err = ioutil.WriteFile(filepath.Join(ctx.Dir, "foo"), []byte("baz"), 0644) + c.Assert(err, checker.IsNil) + + _, out, err := buildImageFromContextWithOut(name, ctx, true) + c.Assert(err, checker.IsNil) + + c.Assert(out, checker.Not(checker.Contains), "Using cache") +}