mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Add testcases for ADD caching, closes #880.
This commit is contained in:
parent
3f9416b58d
commit
15a6854119
1 changed files with 94 additions and 28 deletions
|
@ -425,16 +425,10 @@ func TestBuildEntrypointRunCleanup(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestBuildImageWithCache(t *testing.T) {
|
||||
func checkCacheBehavior(t *testing.T, template testContextTemplate, expectHit bool) {
|
||||
eng := NewTestEngine(t)
|
||||
defer nuke(mkRuntimeFromEngine(eng, t))
|
||||
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
`,
|
||||
nil, nil}
|
||||
|
||||
img, err := buildImage(template, t, eng, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -443,43 +437,115 @@ func TestBuildImageWithCache(t *testing.T) {
|
|||
imageId := img.ID
|
||||
|
||||
img = nil
|
||||
img, err = buildImage(template, t, eng, true)
|
||||
img, err = buildImage(template, t, eng, expectHit)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if imageId != img.ID {
|
||||
t.Logf("Image ids should match: %s != %s", imageId, img.ID)
|
||||
hit := imageId == img.ID
|
||||
if hit != expectHit {
|
||||
t.Logf("Cache misbehavior, got hit=%t, expected hit=%t: (first: %s, second %s)",
|
||||
hit, expectHit, imageId, img.ID)
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildImageWithoutCache(t *testing.T) {
|
||||
eng := NewTestEngine(t)
|
||||
defer nuke(mkRuntimeFromEngine(eng, t))
|
||||
|
||||
func TestBuildImageWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
img, err := buildImage(template, t, eng, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
imageId := img.ID
|
||||
func TestBuildImageWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
`,
|
||||
nil, nil}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
img = nil
|
||||
img, err = buildImage(template, t, eng, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
func TestBuildADDLocalFileWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
nil}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
if imageId == img.ID {
|
||||
t.Logf("Image ids should not match: %s == %s", imageId, img.ID)
|
||||
t.Fail()
|
||||
}
|
||||
func TestBuildADDLocalFileWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
nil}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDRemoteFileWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
nil,
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildADDRemoteFileWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
nil,
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestBuildADDLocalAndRemoteFilesWithCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, true)
|
||||
}
|
||||
|
||||
func TestBuildADDLocalAndRemoteFilesWithoutCache(t *testing.T) {
|
||||
template := testContextTemplate{`
|
||||
from {IMAGE}
|
||||
maintainer dockerio
|
||||
run echo "first"
|
||||
add foo /usr/lib/bla/bar
|
||||
add http://{SERVERADDR}/baz /usr/lib/baz/quux
|
||||
run echo "second"
|
||||
`,
|
||||
[][2]string{{"foo", "hello"}},
|
||||
[][2]string{{"/baz", "world!"}}}
|
||||
checkCacheBehavior(t, template, false)
|
||||
}
|
||||
|
||||
func TestForbiddenContextPath(t *testing.T) {
|
||||
|
|
Loading…
Reference in a new issue